Java desafío de programación: la adición de la clase a la simple programa de tic-tac-toe

En este desafío, a mejorar su juego de Tic-Tac-Toe mediante la adición de una clase de programación Java, que permite que el programa para hacer un esfuerzo hacia rudimentaria estrategia cuando se mueve la determinación de la computadora.

En Desafío de Java de programación: A Simple Tic-Tac-Toe que está el reto de escribir un programa para jugar el juego simple de Tic-Tac-Toe. En este desafío, se modifica el código fuente para su solución anterior para ayudar al strategize ordenador.

Aunque las reglas del juego son muy simples, la creación de un programa de ordenador que puede jugar el juego puede ser complejo. Una serie de detalles complicados potencialmente necesita ser incorporado en el programa. Específicamente:

Video: Curso Programación JAVA - Clase 1

  • El programa debe tener una forma de representar internamente el estado de cada uno de los nueve cuadrados que componen la junta Tic-Tac-Toe.

  • El programa debe proporcionar una manera de registrar un movimiento de cualquiera de los jugadores, y debe asegurarse de que cada movimiento es válido (por ejemplo, un jugador no se le permite jugar en una plaza que ya está ocupada por una X o un O.

  • El programa debe ser capaz de determinar cuándo cualquiera de los jugadores ha ganado examinado los ocho posibles combinaciones de tres en raya: Los tres filas, las tres columnas, y las dos diagonales.

    Video: ¿Que es Java? Introduccion a Java, Curso de Java

  • El programa también debe ser capaz de determinar cuando el juego es un empate - es decir, cuando todos los nueve cuadrados se han jugado y ningún jugador ha ganado.

Al mismo tiempo, el programa tiene que gestionar los detalles de la interacción con el usuario, pidiendo al usuario que introduzca su movimiento, anunciando el juego del equipo, que muestra una representación actualizada de la junta después de cada juego, y declarar un ganador o anunciar un empate cuando el juego ha terminado.

Video: Tutorial Java #2 - Clases Objetos e Instancia

En este desafío, se le pedirá a separar estos dos elementos del programa Tic-Tac-Toe: la parte del programa que gestiona el estado y el progreso del juego y la parte del programa que se encarga de la interacción con el usuario. Que va a hacer que mediante la creación de una clase llamada TicTacToeBoard que proporciona métodos que pueden ser llamados a jugar un partido completo. A continuación, se le pedirá que escriba un programa que utiliza el TicTacToeBoard clase para permitir que un oponente humano para jugar un juego de Tic-Tac-Toe contra el ordenador.

Desde la perspectiva del usuario, este programa funcionará de forma idéntica al programa creado para resolver el desafío simple juego Tic-Tac-Toe, con una diferencia: Para esta versión del juego, el programa hace un esfuerzo rudimentaria hacia la estrategia a la hora de determinar movimientos de la computadora . El equipo no juega a la perfección, por lo que todavía puede derrotar fácilmente. Pero sí hacer un esfuerzo más allá de simplemente jugar en la primera casilla vacía que ve.

La tabla siguiente enumera los métodos que las TicTacToeBoard clase debe implementar. Recuerde, usted tendrá que crear dos .Java archivos para resolver este desafío. El primero, TicTacToeBoard.java, implementa el TicTacToeBoard clase. El segundo, llamado simplemente TicTacToe.java, es el programa que el usuario se ejecutará a jugar un juego de Tic-Tac-Toe contra el ordenador.

La Clase TicTacToeBoard
ConstructorDescripción
TicTacToeBoardCrea un nuevo TicTacToeBoard con todos los cuadrados vacíos.
MétodoDescripción
void reset ()Restablece el estado de cada cuadrado a vacío.
int getSquare (cuadrado String)Devuelve el estado de la plaza especificado por plaza, que debe ser una de las cadenas A1, A2, A3, B1, B2, B3, C1, C2, o C3. Devuelve 0 si el cuadrado está vacío, 1 si contiene una X, y 2 si contiene lanza una O. Argumento de excepción ilegal Si cuadrado No es uno de los valores permitidos.
playAt anular (Cadena cuadrada, reproductor int)Marca el cuadrado especificado (A1, A2, A3, B1, B2, B3, C1, C2, o C3) Para el jugador especificado (1 para X, 2 para O). lanza Argumento de excepción ilegal Si cuadrado No es uno de los valores permisibles, el jugador no es 1 o 2, o la plaza especificado no está vacía.
int isGameOver ()Determina si el juego ha terminado. Devuelve 0 si el juego no ha terminado, 1 si X ha ganado la partida, 2 si O ha ganado el juego, y 3 si el juego es un empate. Las condiciones de juego interminable son los siguientes:
1: Si cualquier fila, columna o diagonal contiene toda Xs.
2: Si cualquier fila, columna o diagonal contiene toda Os.
3: Si no hay plazas vacías y ni X ni O ha ganado.
int getNextMove ()Devuelve un entero que representa el siguiente paso para el equipo oponente. Este método debe hacer un esfuerzo rudimentaria para seleccionar un buen movimiento, de acuerdo con la siguiente estrategia:
* Si el centro (plaza B2) Está vacía, jugar a la plaza del centro.
* Si el centro no está vacío, pero ninguna de las cuatro esquinas (cuadrados A1, A3, C1, o C3) Están vacías, jugar una de las esquinas (no importa cuál).
* Si el centro no está vacío y no hay esquinas están vacías, jugar a uno de los bordes (cuadrados A2, B1, B3, o C2).
String toString ()Devuelve una cadena que representa el estado actual de la junta. La cadena incluye caracteres de nueva línea para mostrar las filas, así como líneas de separación en las líneas de consola separadas, como en este ejemplo:
O | | O
- | - | -| x | - | - | -| x |

Si no tienes ni idea, se puede encontrar la solución en el pestaña de descargas del Java Todo-en-uno para los maniquíes, 4ª Edición página del producto.

¡Buena suerte!

Artículos Relacionados