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.

A interface do usuário para um programa de Tic-Tac-Toe.
A interface do usuário para um programa de Tic-Tac-Toe.

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.

A classe TicTacToeBoard
ConstrutorDescrição
TicTacToeBoardCria um novo TicTacToeBoard com todos os quadrados em branco.
MétodoDescriçã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!

menu