Java desafio de programação: a adição de um gui ao programa 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 jogo simples 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.

Video: Week 0

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

Video: Jogo da Velha I - Dois Jogadores

O jogo é simples. O jogador humano joga primeiro, clicando em qualquer um dos quadrados. A praça clicado pelo humano exibe um grande X. Após as jogadas humanos, o programa determina se o ser humano ganhou ou forçado um empate. Se assim for, uma mensagem é exibida, o conselho é reposto, e um novo jogo começa. Se não, o computador escolhe uma jogada e marca sua praça com um 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 humano desempenha novamente. Isso continua até que um jogador ganha ou todas as praças estão cheias.

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 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 de 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 admissíveis, jogador não é 1 ou 2, ou o quadrado 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 qualquer linha, coluna ou diagonal contém todos os X.
2: Se qualquer linha, coluna ou diagonal contém todos Ó.
3: Se não houver quadrados vazios e nem X nem O 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 centro da praça.
* Se o centro não está vazio 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á vazio e sem cantos estão vazios, jogar uma das bordas (quadrados A2, B1, B3, ou C2).
String toString ()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!


Publicações relacionadas