Desarrollando un juego de mesa – Hex (parte 2)
Posts relacionados:
Desarrollando un juego de mesa – Hex (parte 1)
Sigo con el desarrollo de Hex, agregando lo siguiente:
- Validación del color de la ficha que se ha jugado: Si jugó el jugador negro, que haya quedado una ficha negra. Si jugó el jugador blanco, que haya quedado una ficha blanca.
- Ejecución de la regla del pastel ( :-o que nombre más raro... si alguno encuentra una mejor traducción que me avise, pls!!) en el momento correcto: Verificar que se cuando se ejecuta, la misma sea en el primer movimiento del jugador blanco, y que intercambie los colores correctamente.
- Ejecución de la regla del pastel en un momento erróneo: si no es el primer movimiento del jugador blanco, que genere una excepción.
- Estados del juego: No iniciado, Iniciado, Juego terminado
- Gana jugador blanco (con un movimiento básico de unir todo en la fila 1).
- Gana jugador negro (con un movimiento básico de unir todo en la columna A).
- Verifica cambio de estados en el juego.
- Verifica que no se pueda mover después de que haya ganado alguien.
Después de terminar todo eso, pensé en armar una función recursiva para verificar si los extremos estaban unidos, y después de pensar lo que necesitaba para eso, comencé a agregar las siguientes validaciones/funcionalidades:
- Verifica los colores de los extremos del tablero (extremo superior e inferior, negros; extremo izquierdo y derecho, blancos: Esto es para poder verificar, luego, si algún jugador conectó extremos) .
- Obtiene las celdas que están en contacto con alguna especifica del tablero (la que está en el centro, para la primer prueba) de un juego recién iniciado y verifica que estén todas vacías.
- Valido obtener el nombre de la siguiente columna (Para la columna A, la siguiente es la B).
- Valido obtener el nombre de la columna anterior (Para la columna F, la anterior es la E).
- Obtiene las celdas que están en contacto con alguna especifica del tablero (la que está en el centro, para la primer prueba) de un juego, y verifica que sean las que corresponden (alrededor de 3C están 2C, 2D, 3B, 3D, 4B, 4C).
- Obtiene las celdas que están en contacto la celda 1A (esquina superior izquierda) de un juego, y verifica que sean las que corresponden (alrededor de 1A están 1B, 2A)... ya que estamos, también verifico las otras 3 esquinas.
- Obtiene las celdas que están en contacto con alguna especifica del tablero de un juego, especificando el estado que quiere verificar de las mismas (Negro, Blanco, Vacío).
Y finalmente, una validación para poder probar la función recursiva.
Repositorio de Hex-Board Game