Rutas
/
MIPS Assembly
MIPS Assembly
/
Ejercicios
/
Estado del tres en raya
Estado del tres en raya

Estado del tres en raya

Media

Instrucciones

En este ejercicio vas a implementar un programa que determina el estado de una partida de tic-tac-toe. (También es posible que conozcas este juego como «tres en raya» o «equis y ceros».)

El juego se juega en una cuadrícula de 3×3. Los jugadores se turnan para colocar las X y las O en la cuadrícula. El juego termina cuando un jugador gana al colocar tres de sus marcas en una fila, una columna o una diagonal de la cuadrícula, o cuando esta se llena por completo.

En este ejercicio, supondremos que empieza X.

Tu tarea es determinar en qué estado se encuentra una partida dada.

Hay 3 estados posibles de partida:

  • La partida está ongoing.
  • La partida terminó en draw.
  • La partida terminó en win.

Si el tablero dado no es válido, lanza un error adecuado.

Un tablero no es válido si cumple las siguientes condiciones:

  • No se puede llegar al tablero dado si los turnos se juegan en el orden correcto (recuerda que empieza X).
  • Se jugó después de que la partida ya hubiera terminado.

Ejemplos

Partida en curso

   |   |
 X |   |
___|___|___
   |   |
   | X | O
___|___|___
   |   |
 O | X |
   |   |

Empate

   |   |
 X | O | X
___|___|___
   |   |
 X | X | O
___|___|___
   |   |
 O | X | O
   |   |

Victoria

   |   |
 X | X | X
___|___|___
   |   |
   | O | O
___|___|___
   |   |
   |   |
   |   |

No válido

Orden de turnos incorrecto
   |   |
 O | O | X
___|___|___
   |   |
   |   |
___|___|___
   |   |
   |   |
   |   |
Continuar jugando después de ganar
   |   |
 X | X | X
___|___|___
   |   |
 O | O | O
___|___|___
   |   |
   |   |
   |   |

Formato del tablero

El tablero se representa como un string terminado en nulo, con un carácter de nueva línea al final de cada fila.

Un ejemplo sería "X \n XO\nOX \n"

Registros

Registro Uso Tipo Descripción
$a0 entrada dirección string de entrada terminado en nulo
$v0 salida entero estado del juego (1 = ongoing, 2 = draw, 3 = win, -1 = error)
$t0-9 temporal cualquiera para almacenamiento temporal
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
MIPS Assembly Exercism

¿Listo para empezar Estado del tres en raya?

Regístrate en Exercism para aprender y dominar MIPS Assembly con 70 ejercicios y mentoría humana real, todo gratis.