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

Su misión, si decide aceptarla, es crear 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 generalmente jugado con papel y lápiz. En primer lugar, se hace una sencilla cuadrícula de 3 x 3 en el papel. Luego de dos jugadores alternan convierte marcando Xs y Os en los espacios vacíos en la red. El primer jugador que hace que tres de sus marcas en unas horizontales, verticales o diagonales victorias fila. Si todos los espacios en la red se llenan antes de que cualquier jugador marca tres en una fila, el juego es un empate.

Estas son las reglas y las instrucciones para este desafío:

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

  2. El programa debe comenzar por mostrar un mensaje de bienvenida a corto y, a continuación, debe impulsar el jugador para su primer movimiento. Por ejemplo:

    Bienvenido a Tic-Tac-Toe. Introduzca su primer movimiento:
  3. Para designar a 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:

     A1 B1 B2 C2A3 C1A2 B3 C3

    Por lo tanto, para colocar una X en la plaza superior izquierda, 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 directiva en la consola.

  4. Utilice X para marcar las obras de lo humano y O para marcar jugadas del equipo. Utilice caracteres de barra vertical (que se encuentran en el teclado con la barra invertida, justo encima de la tecla Enter) y guiones para dibujar el tablero en una cuadrícula simple.

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

     X | | --- | --- | --- | | --- | --- | --- | |
  5. Después de la decisión de los recursos humanos, el programa determina su movimiento, anuncia al usuario, muestra una tabla actualizada, y luego solicita la medida del usuario.

    Por ejemplo, es posible que vea esto:

    Jugaré A2: X | O | --- | --- | --- | | --- | --- | --- | | Por favor, 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 alguno de los jugadores ha marcado tres en una fila y ganó el juego. (Esta es la parte más difícil de este reto de programación.)

  7. Cuando el juego ha terminado, el programa muestra un mensaje que indica el resultado del juego: "¡Usted me golpearon" si el jugador humano gana ", le gané a ti!" si el jugador equipo gana, o "Es un empate!" si el juego termina en empate.

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

  9. El programa termina cuando el juego es ganado por cualquiera de los jugadores o el juego es un empate. Si quieres 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 sugiero que el equipo siempre juega en la primera casilla vacía. Esto no es, obviamente, 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, como la forma de representar internamente la red y cómo determinar cuando un jugador ha ganado la partida o cuando el juego ha terminado en empate.

(En "Programación Java Challenge: Adición de matrices al Programa Tic-Tac-Toe Simple" se le pedirá que subir con una mejor estrategia para el programa para determinar sus obras de teatro.)

He aquí un ejemplo de la pantalla de la consola para un juego completo:

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

Aquí hay algunos consejos para ayudarle a empezar:

  • La mejor manera de representar a la red es con una matriz. Por ahora, utilice nueve variables, nombrados A1, A2, A3, B1, B2, B3, C1, C2, y C3.

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

  • Ocho posibles filas pueden conducir a una victoria. Un jugador gana si cualquiera de las siguientes combinaciones de cuadrados son o bien 1 (para X) o 2 (por 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. El primero es comprobar todos los nueve cuadrados: Si ninguna de las plazas 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.

Usted puede encontrar una solución a este reto de programación en el Descargas pestaña de El Java All-in-One For Dummies, Página cuarto producto Edition.

¡Buena suerte!




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