Java desafío de programación: un simple juego de tic-tac-toe

Su misión, si decide aceptarla, es la creación de un programa Java que puede jugar un juego de Tic-Tac-Toe con el usuario.

Como usted probablemente sabe, Tic-Tac-Toe es un juego simple por lo general juega con papel y lápiz. En primer lugar, se hace una sencilla cuadrícula de 3 x 3 en el papel. Entonces dos jugadores alternativo gira mediante el marcado de Xs y Os en los espacios vacíos en la cuadrícula. El primer jugador que hace que tres de sus marcas en horizontal, vertical o diagonal gana fila. Si todos los espacios en la red están llenos antes de que cualquier jugador marca tres en una fila, el juego es un empate.

Estas son las reglas y las instrucciones para este reto:

  1. El equipo juega contra el ser humano. El ser humano se mueve primero y es X. El equipo está O.

  2. El programa debe comenzar mediante la visualización de un mensaje de bienvenida corta y, a continuación, debería incitar al jugador por su primer movimiento. Por ejemplo:

    Video: Visual Basic Tic Tac Toe : Jugador VS Jugador

    Bienvenido a Tic-Tac-Toe. Por favor, introduzca su primer movimiento:
  3. Para designar los cuadrados de la cuadrícula, utilice las letras A, B, y C para las columnas y los numerales 1, 2, y 3 para las filas, como este:

    Video: Juego del gato (TicTacToe) usando sockets en Java

     A1 B1 B2 C1A2 C2A3 B3 C3

    Por lo tanto, para colocar una X en el cuadrado superior izquierdo, el jugador humano se introduzca el texto A1 cuando el programa le pide al jugador por un movimiento.

    Después de que el ser humano entra en un movimiento, el programa debe mostrar el estado actual de la junta en la consola.

  4. Utilice X para marcar las obras de lo humano y O para marcar los juegos de ordenador. Utilizar caracteres de barra vertical (que se encuentran en el teclado con la barra invertida, justo por encima de la tecla Enter) y guiones para dibujar el tablero en una cuadrícula sencilla.

    Por ejemplo, si el usuario ha introducido A1 como su primer movimiento, el programa mostrará lo siguiente:

     X | | --- | --- | --- | | --- | --- | --- | |
  5. Después de la medida del ser humano, el programa determina su movimiento, lo anuncia al usuario, muestra una junta actualizada, y luego solicita la medida del usuario.

    Por ejemplo, es posible que vea esto:

    Voy a jugar A2: X | O | --- | --- | --- | | --- | --- | --- | | Introduzca su siguiente movimiento:
  6. El juego continúa hasta que un jugador ha anotado tres en una fila o todas las plazas se han llenado sin ganador. Su programa debe ser capaz de determinar si cualquier jugador ha anotado tres en una fila y ganó el juego. (Esta es la parte más difícil de este desafío de programación.)

  7. Cuando el juego ha terminado, el programa muestra un mensaje que indica el resultado del juego: “Me ganaste!” Si el jugador humano gana “te gané!” Si el jugador equipo gana, o “Es un empate!” Si el juego termina en empate.

    Video: Totito en Java

  8. Los jugadores humanos e informáticos pueden jugar sólo en aquellas plazas que no están ya ocupados por cualquiera de los jugadores.

  9. El programa termina cuando se gana el juego por cualquier jugador o el juego es un empate. Si desea jugar de nuevo, debe ejecutar el programa de nuevo.

Tenga en cuenta que usted es libre de utilizar cualquier método que desea determinar cómo el equipo debe hacer sus movimientos. Yo sugeriría que tiene el equipo siempre juega en la primera casilla vacía. Esto obviamente no es la mejor manera de jugar Tic-Tac-Toe, y usted no tendrá problemas para vencer a la computadora cada vez que juegue. Pero la elección de esta estrategia de juego sencilla le permite centrarse en otros aspectos de la programación, tales como la forma de representar internamente la red y cómo determinar cuando un jugador ha ganado el juego o cuando el juego ha terminado en empate.

(En “Programación Java Desafío: Adición de matrices para el Programa de Tic-Tac-Toe simple” se le pregunta para llegar a una mejor estrategia para el programa para determinar sus obras.)

Aquí está un ejemplo de la pantalla de la consola para un juego completo:

Bienvenido a Tic-Tac-Toe. Por favor, introduzca su primer movimiento: A1X | | --- | --- | --- | | --- | --- | --- | | Jugaré en A2: X | O | --- | --- | --- | | --- | --- | --- | | Introduzca su siguiente movimiento: B1X | O | --- | --- | --- X | | --- | --- | --- | | Jugaré en A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Introduzca su siguiente movimiento: do1X | O | O --- | --- | --- X | | --- | --- | --- X | | Me ganaste!

Aquí hay algunos consejos para ayudarle a empezar:

  • La mejor manera de representar la cuadrícula es con una matriz. Por ahora, utilizar nueve variables, denominadas A1, A2, A3, B1, B2, B3, C1, C2, y C3.

  • Si se utiliza el int escriba para las variables de la red, a continuación, puede utilizar 1 para indicar que un cuadrado contiene una X y 2 para indicar que un cuadrado contiene un O.

  • Ocho filas posibles pueden conducir a una victoria. Un jugador gana si cualquiera de las siguientes combinaciones de los cuadrados son o bien 1 (para X) o 2 (para O):

    A1 - A2 - A3A1 - B1 - C1A1 - B2 - C3B1 - B2 - b3a2 - B2 - C2A3 - B2 - c1c1 - C2 - C3A3 - B3 - C3
  • Hay dos maneras de determinar si el juego es un empate. La primera es para comprobar todos los nueve cuadrados: Si ninguno de los cuadros está vacío y ningún jugador ha ganado, el juego es un empate. El segundo es contar los movimientos: Si se han realizado nueve movimientos y ningún jugador ha ganado, el juego es un empate.

Se puede encontrar una solución a este reto en la programación 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