Java desafio de programação: um simples jogo tic-tac-toe
Sua missão, se você decidir aceitá-la, é criar um programa Java que pode jogar um jogo de Tic-Tac-Toe com o usuário.
Conteúdo
Como você provavelmente sabe, Tic-Tac-Toe é um jogo simples jogado geralmente com papel e lápis. Primeiro, você faz uma simples grade de 3 x 3 sobre o papel. Em seguida, dois jogadores alternam voltas, marcando Xs e Os espaços vazios no grid. O primeiro jogador que faz três de suas marcas em uma horizontais, verticais ou diagonais vitórias de linha. Se todos os espaços na grade são preenchidos antes de qualquer jogador marca três em uma fileira, o jogo é um empate.
Aqui estão as regras e instruções para este desafio:
O computador joga contra o ser humano. O ser humano se move em primeiro lugar e é X. O computador é O.
Video: Programação C++ Jogo da velha (Tic Tac Toe) - JeysonC++
O programa deve começar com a exibição de uma mensagem curta de boas-vindas e, em seguida, deve levar o jogador para o seu primeiro movimento. Por exemplo:
Video: Java - Jogo da velha simples com métodos - parte 1
Bem-vindo ao Tic-Tac-Toe. Digite seu primeiro movimento:
Para designar os quadrados da grelha, usar as letras A, B, e C para as colunas e os numerais 1, 2, e 3 para as linhas, como este:
A1 B1 B2 C1A2 C3 C2A3 B3
Assim, para colocar um X na praça superior esquerda, o jogador humano seria digite o texto A1 quando o programa pede ao jogador para um movimento.
Video: Programação de Jogos C ++
Após o ser humano entra em um movimento, o programa deve exibir o status atual do conselho no console.
Use X para marcar peças e O do humano para marcar peças do computador. Usar caracteres de barras verticais (encontrados no teclado com o caractere de barra invertida, logo acima a tecla Enter) e hífens para desenhar a placa em uma grade simples.
Video: Jogo da Memória Simples em Linguagem C
Por exemplo, se o usuário inseriu A1 como sua primeira jogada, o programa exibirá o seguinte:
X | | --- | --- | --- | | --- | --- | --- | |
Após o movimento do ser humano, o programa determina o seu movimento, anuncia-lo para o usuário, exibe uma placa atualizado, e em seguida, pede para o movimento do usuário.
Por exemplo, você pode ver o seguinte:
Vou jogar A2: X | O | --- | --- | --- | | --- | --- | --- | | Por favor, indique o seu próximo passo:
O jogo continua até que um jogador marcou três em uma fileira ou todos os quadrados foram preenchidos com nenhum vencedor. O programa deve ser capaz de determinar se qualquer jogador marcou três em 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 bater!”, Se o jogador humano ganha, “Eu te bater!”, Se o jogador do computador ganha, ou “É um empate!” Se o jogo terminar num empate.
Os jogadores humanos e computadores pode jogar apenas as praças que ainda não estão ocupados por um ou outro jogador.
O programa termina quando o jogo é ganho por qualquer jogador ou o jogo é um empate. Se você quiser jogar novamente, você deve executar o programa novamente.
Note-se que você é livre para usar qualquer método que você deseja determinar como o computador deve fazer seus movimentos. Eu sugiro que você tenha o computador sempre jogar no primeiro quadrado vazio. Isso obviamente não é a melhor maneira de jogar Tic-Tac-Toe, e você não terá problemas para bater o computador cada vez que você jogar. Mas a escolha desta estratégia de jogo simples permite que você se concentrar em outros aspectos da programação, como forma de representar internamente a grade e como determinar quando um jogador ganhou o jogo ou quando o jogo terminou em um empate.
(Em “Programação Java Desafio: Adição de matrizes para o Programa Tic-Tac-Toe Simples” você está convidado a vir para cima com uma melhor estratégia para o programa para determinar suas peças.)
Aqui está um exemplo da apresentação da consola para um jogo completo:
Bem-vindo ao Tic-Tac-Toe. Digite seu primeiro movimento: A1X | | --- | --- | --- | | --- | --- | --- | | I vai jogar em A2: X | O | --- | --- | --- | | --- | --- | --- | | Por favor, indique o seu próximo passo: B1X | O | --- | --- | --- X | | --- | --- | --- | | I vai jogar em A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Por favor, indique o seu próximo passo: C1X | O | O --- | --- | --- X | | --- | --- | --- X | | Você me bater!
Aqui estão algumas dicas para você começar:
A melhor maneira de representar a grade é com um array. Por enquanto, use nove variáveis, chamados A1, A2, A3, B1, B2, B3, C1, C2, e C3.
Se você usar o int digite às variáveis grid, 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.
Oito linhas possíveis pode levar a uma vitória. Um jogador ganha se qualquer uma das seguintes combinações de quadrados são ou um (para X) ou dois (para S):
A1 - A2 - A3a1 - B1 - C1A1 - B2 - C3B1 - B2 - b3a2 - B2 - C2A3 - B2 - C1C1 - C2 - C3A3 - B3 - C3
Há 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. A segunda é para contar os movimentos: Se nove lances foram feitos e nenhum jogador ganhou, o jogo é um empate.
Você pode encontrar uma solução para este desafio de programação no guia Downloads do Java All-in-One For Dummies, 4ª página do produto Edition.
Boa sorte!