Programação Java Challenge: Adicionando uma GUI para o Programa de Tic-Tac-Toe
Dentro Java Desafio Programação: A Simple Tic-Tac-Toe Jogo você foram desafiados a escrever um programa baseado em console que joga o simples jogo de Tic-Tac-Toe. O desafio de programação Java aqui é usar Swing para adicionar uma interface gráfica do usuário (GUI) para o programa. A GUI deve se parecer com a mostrada aqui.
O jogo é simples. O jogador humano joga primeiro, clicando em qualquer um dos quadrados. A praça clicado pelo humana exibe um grande X. Após as execuções humanos, o programa determina se o ser humano ganhou ou forçado um empate. Se assim for, uma mensagem é exibida, o conselho é reset, e um novo jogo começa. Se não, o computador escolhe uma jogada e marca sua praça com uma grande O.
O programa então determina se o computador ganhou o jogo. Se assim for, o programa exibe uma mensagem, repõe a bordo, e inicia um novo jogo. Se não, o jogador joga humano novamente. Isto continua até que um jogador ganha ou todos os quadrados são preenchidos.
Seu programa deve usar o mesmo TicTacToeBoard classe que você criar para Desafio de programação Java: Adicionando classe ao Tic-Tac-Toe Programa Simples. Em outras palavras, ele deve implementar os exatos mesmos métodos. Para a sua conveniência, estes métodos são repetidos na tabela a seguir.
Construtor | Descrição |
---|---|
TicTacToeBoard | Cria um novo TicTacToeBoard com todos os quadrados em branco. |
Método | Descrição |
void reset () | Redefine o status de cada quadrado para vazio. |
anular playAt (String quadrado, jogador int) | Marca o quadrado especificado (A1, A2, A3, B1, B2, B3, C1, C2, ou C3) Para o jogador especificado (1 para X, para 2 O). lança IllegalArgumentException E se quadrado não é um dos valores permitidos, jogador não é 1 ou 2, ou a praça especificado não está vazio. |
int isGameOver () | Determina se o jogo acabou. Retorna 0 se o jogo não acabou, 1 se X ganhou o jogo, 2 se O ganhou o jogo, e 3 se o jogo é um empate. O jogo terminando condições são as seguintes: 1: Se alguma linha, coluna ou diagonal contém todos os Xs. 2: Se alguma linha, coluna ou diagonal contém todas Ó. 3: Se não há casas vazias e nem X nem ó ganhou. |
int getNextMove () | Retorna um inteiro que representa o próximo passo para o adversário do computador. Este método deve fazer um esforço rudimentar para selecionar uma boa jogada, de acordo com a seguinte estratégia: * Se o centro (praça B2) Está vazio, tocar o quadrado central. * Se o centro não está vazia, mas qualquer um dos quatro cantos (quadrados A1, A3, C1, ou C3) Estão vazias, jogar um dos cantos (não importa qual). * Se o centro não está vazia e sem cantos estão vazios, desempenham um dos bordos (quadrados A2, B1, B3, ou C2). |
toString String () | Retorna uma string que representa o estado atual da placa. A seqüência de caracteres inclui caracteres de nova linha para exibir as linhas, bem como linhas de separação em linhas de console separadas, como neste exemplo: O | | O ---| --- | --- | X | ---| --- | --- | X | |
Você vai encontrar a solução para este desafio na guia Downloads do Java All-in-One For Dummies, 4 página do produto Edition.
Boa sorte!