Na lição de hoje, vamos falar sobre enumeração. Agora a enumeração é basicamente uma lista ordenada completa de todos os itens em uma coleção ou conjunto. Assim, por exemplo, Segunda-feira terça-feira quarta-feira, Quinta sexta sábado domingo, seria uma lista completa de dias da semana. Vermelho, laranja, amarelo, verde, azul, índigo e violeta pode ou não ser um conjunto completo dependendo do que você está falando. Se forem as cores do espectro, as cores ROYGBIV, então sim é. Se significa todas as cores, bem, não, não é. Vamos dar uma olhada em como a enumeração é usada em um programa. Eu puxei a linha 11 para ilustrar como você declararia uma enumeração chamada planetas. E se você olhar para o topo da tela você pode ver que eu tenho planetas enum públicos e então os nove planetas. Sim, ainda estou incluindo Plutão como planeta. Os nove planetas do nosso sistema solar. A linha 11 é seguida por nossa rotina principal onde simplesmente temos um loop for que imprime todos os planetas acessando cada um individualmente. Então, na linha 15, eu tenho quatro planetas, P, e estou associando a enumeração do planeta, e especificamente os valores dessa lista, e estou imprimindo um P. E este é um tipo diferente de loop for, porque estou usando P como controle para qual planeta eu gostaria de acessar. Quando executo o programa, como você pode ver lá embaixo, Eu tenho todos os planetas em ordem porque P gira para cada um dos planetas na enumeração. As últimas três linhas mostram que você pode acessar o valor do planeta terra, significando a palavra terra, ou os números ordinais de qualquer um dos planetas. Plutão, Marte. E você pode escolher um. E apenas no caso de você estar se perguntando onde estamos no sistema solar, A Terra está aqui. Nos planetas internos somos os maiores. Mas quando você olha para os planetas exteriores, a terra está aqui e nós somos os menores. Vamos dar outro exemplo de enumeração. Suponha que eu queira jogar um jogo de pedra, papel e tesoura. Tudo que eu preciso fazer é ter uma enumeração que eu vou chamar de sinal de mão, porque pedra papel tesoura é um jogo de mão. Então eu tenho três possibilidades, tesoura, papel e pedra, e não importa a ordem em que eu os coloco. Quando escrevo um programa Eu tenho a linha 12 que mostra aqui é minha enumeração. O programa tem uma rotina para limpar a tela criando uma sequência de escape, e posso usar system.out.print e use esta combinação de caracteres. O \033 é o caractere de escape. Quando o \033 é combinado com o colchete aberto, o 033H nos permite mover no canto superior esquerdo da tela, e o 2J nos permite limpar a tela. Então, juntando esses personagens Eu posso limpar a tela de qualquer coisa que esteja lá, seguido por um flush da saída do sistema para se livrar de qualquer lixo que ainda está na impressão de saída do sistema. Então eu declaro alguns números aleatórios, o que já fizemos antes. Eu tenho alguns números inteiros para calcular quantos jogos são jogados, quantas vezes o computador ganha, quantas vezes o jogador ganha, e quantos laços existem. E então eu entro na lógica do jogo. E sabe de uma coisa? Vamos passar para a execução real do jogo e veja como isso funciona. O que vamos conseguir é algo parecido com isso. Mas vamos ver isso acontecer ao vivo. Estou usando o compilador GDB online, e eu vou executar este programa para mostrar a você como eu vou jogar o jogo. Novamente, todo o código está aqui. Muito disso não tem que fazer especificamente com a configuração da enumeração, mas tem a ver com como acessamos os itens que estão nessa enumeração. Espero que todos conheçam as regras para usar tesouras de papel. Eu começo com um loop while que emite o comando que diz ao usuário o que fazer. Digite um S para tesoura, P para papel, R para rock ou Q para sair do jogo quando terminar de jogar. Eu converto a entrada para minúscula e, em seguida, avaliar através de uma instrução switch qual letra eles apertaram. Se eles tivessem uma carta inválida, Eu dou a eles uma mensagem e continuo o loop novamente. Movendo para baixo, Eu tenho algum código que irá gerar um número aleatório que será o movimento do computador, e uma linha imprime o computador e seu movimento, o jogador e seu movimento. Então é hora de descobrir quem ganhou o jogo. Se os dois movimentos são iguais, é um empate. Se o movimento do computador for uma tesoura e o movimento do jogador é papel, bem sabemos que tesoura corta papel então o computador ganha. Eu passo por todas as possibilidades de fazer o computador vencer, e depois as possibilidades de o jogador ganhar. Por fim, na parte inferior da tela, Eu descubro as porcentagens de quantas vezes o computador ganhou, quantas vezes o jogador ganhou, e quantas vezes houve empate, e imprima essa informação. Mas a parte da enumeração aqui tem a ver com esta tesoura de sinal de mão, pedra de sinal de mão e papel de sinal de mão. E isso me permite voltar e verifique quais eram os valores desses itens. Vamos jogar o jogo. Quando rodamos o jogo, ele me diz as instruções, que este é o jogo de pedra, papel e tesoura. Vou escolher um R para rock. E isso me diz que era um empate porque o computador também escolheu uma pedra. Agora escolha uma pedra novamente. Desta vez o computador escolheu uma tesoura e eu venci. Outra pedra. O computador escolheu uma tesoura. Eu ganhei novamente. Outra pedra. Oh, o computador escolheu papel. Ele pegou no meu jogo. Agora o computador vence. Então eu vou escolher o papel. Desta vez o computador escolheu uma tesoura, e a tesoura corta o papel. Agora lembre-se que existe um gerador aleatório, e o gerador aleatório descobre o que acontece. Vou escolher a tesoura de novo e depois desisto do programa. E produz, joguei seis jogos. Duas vezes o computador ganhou. Duas vezes eu ganhei. E havia dois empates. Uma boa maneira de aprender sobre enumeração é dar uma olhada em coisas com as quais estamos familiarizados. Neste caso, a ordem dos planetas em nosso sistema solar. Dê uma olhada na linha 12. Essa é a lista padrão de planetas em ordem à medida que se afastam do sol. Mercúrio, Vênus, Terra, Marte, Júpiter, Saturno. Colocamos esses nomes de planetas dentro de uma enumeração chamada planetas. E a partir daí eu posso imprimir a lista. Vamos executar o programa. Quando executo o programa, recebo toda a lista de planetas. No fundo eu recebo o valor da terra é terra. O índice de Plutão é oito, e o índice de Marte é três. O que está acontecendo aqui é este loop for imprimirá o valor, ou neste caso o nome, de cada planeta na enumeração. Então eu imprimo o valor de um planeta específico, chamando-o pelo nome. E posso imprimir o número ordinal, que é o índice. Porque você vai lembrar que começa do zero. Agora todos nós sabemos que a terra é o terceiro planeta a partir do sol. é meio confuso para ver Marte listado como planeta número três. Todos sabemos que a terra é a terceira rocha a partir do sol, então o que eu preciso fazer não é imprimir o número ordinal, mas imprima a posição do planeta no enum. Eu faço isso, mas com duas linhas. A primeira linha será para criar um inteiro chamado planeta, e eu vou colocá-lo para o planeta do valor da terra. E vou adicionar um ao número ordinal. Então a terra, que tem um índice de dois. Mercúrio é zero. Vênus é um e a terra é dois. Se adicionarmos um ao ordinal, ou ao índice, teremos a terra como o terceiro planeta. E então eu posso imprimir a Terra é o planeta número três. Vamos executar o programa, e veremos que a terra realmente surge como planeta número três. Agora você sabe que ao criar uma enumeração simples você pode extrair quaisquer valores que sejam um conjunto completo, e use esses valores em seu programa.