Vídeo: Snap Unit 6: Tic Tac Toe [Part1] (p3) 2024
Sua missão, se você decidir aceitá-lo, é criar um programa Java que possa jogar um jogo do Tic-Tac-Toe com o usuário.
Como você provavelmente sabe, Tic-Tac-Toe é um jogo simples, geralmente jogado com papel e lápis. Primeiro, faça uma grade simples de 3 x 3 no papel. Em seguida, dois jogadores alternam turnos marcando Xs e Os em espaços vazios na grade. O primeiro jogador que faz três de suas marcas em uma linha horizontal, vertical ou diagonal ganha. Se todos os espaços da grade forem preenchidos antes de qualquer jogador marcar três em uma linha, o jogo é um empate.
Aqui estão as regras e instruções para este desafio:
-
O computador joga contra o humano. O humano se move primeiro e é X. O computador é O.
-
O programa deve começar exibindo uma breve mensagem de boas-vindas e, em seguida, solicitar ao jogador seu primeiro movimento. Por exemplo:
Bem-vindo ao Tic-Tac-Toe. Digite seu primeiro movimento:
-
Para designar os quadrados da grade, use as letras A, B e C para as colunas e os números 1, 2 e 3 para as linhas, assim:
A1 B1 C1 A2 B2 C2 A3 B3 C3
Assim, para colocar um X no quadrado superior esquerdo, o jogador humano entraria no texto A1 quando o programa solicitar ao jogador um mover.
Depois que o humano entrar em um movimento, o programa deve exibir o status atual da placa no console.
-
Use X para marcar as peças do humano e O para marcar as peças do computador. Use caracteres de barra vertical (encontrados no teclado com o caractere de barra invertida, logo acima da tecla Enter) e guias para desenhar a placa em uma grade simples.
Por exemplo, se o usuário inseriu A1 como seu primeiro movimento, o programa exibiria o seguinte:
X | | --- --- --- --- --- | | --- --- --- --- --- | |
-
Após o movimento do humano, o programa determina seu movimento, o anuncia ao usuário, exibe uma placa atualizada e, em seguida, solicita o movimento do usuário.
Por exemplo, você pode ver isso:
Vou jogar A2: X | O | --- --- --- --- --- | | --- --- --- --- --- | | Digite seu próximo movimento:
-
O jogo continua até que um jogador tenha marcado três em uma linha ou todos os quadrados foram preenchidos sem vencedor. Seu programa deve ser capaz de determinar se qualquer jogador marcou três em uma linha e ganhou o jogo. (Esta é a parte mais difícil deste desafio de programação.)
-
Quando o jogo acabou, o programa exibe uma mensagem indicando o resultado do jogo: "Você me bateu! "Se o jogador humano ganhar", eu vencê-lo! "Se o jogador do computador ganhar, ou" É um empate! "Se o jogo terminar em um sorteio.
-
Os jogadores humanos e de computador podem tocar apenas os quadrados que ainda não estão ocupados por nenhum jogador.
-
O programa termina quando o jogo é ganho por qualquer jogador ou o jogo é um empate. Se quiser jogar novamente, você deve executar o programa novamente.
Note que você é livre para usar qualquer método que você deseja determinar como o computador deve fazer seus movimentos. Sugiro que você tenha sempre o computador no primeiro quadrado vazio. Esta não é, obviamente, a melhor maneira de jogar Tic-Tac-Toe, e você não terá problemas para vencer o computador toda vez que você jogar. Mas escolher esta estratégia de jogo simples permite que você se centre em outros aspectos da programação, como como representar internamente a grade e como determinar quando um jogador ganhou o jogo ou quando o jogo terminou em um sorteio.
(Em "Java Programming Challenge: Adicionar Arrays ao Programa Tic-Tac-Toe Simples", você é convidado a apresentar uma estratégia melhor para o programa para determinar suas jogadas.)
Aqui está um exemplo de a exibição do console para um jogo completo:
Bem-vindo ao Tic-Tac-Toe. Digite seu primeiro movimento: A1 X | | --- --- --- --- --- | | --- --- --- --- --- | | Vou jogar na A2: X | O | --- --- --- --- --- | | --- --- --- --- --- | | Digite seu próximo movimento: B1 X | O | --- --- --- --- --- X | | --- --- --- --- --- | | Vou jogar na A3: X | O | O --- --- --- --- --- X | | --- --- --- --- --- | | Digite seu próximo movimento: C 1 X | O | O --- --- --- --- --- X | | --- --- --- --- --- X | | Você me bateu!
Aqui estão algumas dicas para você começar:
-
A melhor maneira de representar a grade é com uma matriz. Por enquanto, use nove variáveis, denominadas A1, A2, A3, B1, B2, B3, C1, C2 e C3.
-
Se você usa o tipo int para as variáveis da grade, então você pode usar 1 para indicar que um quadrado contém um X e 2 para indicar que um quadrado contém um O.
-
Oitenta linhas possíveis podem levar a uma vitória. Um jogador ganha se qualquer uma das seguintes combinações de quadrados são 1 (para X) ou 2 (para O):
A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
-
Existem duas maneiras de determinar se o jogo é um empate. O primeiro é verificar todos os nove quadrados: se nenhum dos quadrados está vazio e nenhum jogador ganhou, o jogo é um empate. O segundo é contar os movimentos: se foram feitos nove movimentos e nenhum jogador ganhou, o jogo é um empate.
Você pode encontrar uma solução para este desafio de programação na guia Downloads da página de produtos Java All-in-One For Dummies, 4th Edition.
Boa sorte!