Tracks
/
Haskell
Haskell
/
Ejercicios
/
Ataque de la reina
Ataque de la reina

Ataque de la reina

Intermedia

Instrucciones

Dadas las posiciones de dos damas en un tablero de ajedrez, indica si están colocadas de modo que puedan atacarse entre sí o no.

En el juego del ajedrez, una dama puede atacar piezas que estén en la misma fila, columna o diagonal.

Un tablero de ajedrez se puede representar con un array de 8 por 8.

Así que si te dicen que la dama blanca está en c5 (con índices desde cero: columna 2, fila 3) y la dama negra en f2 (con índices desde cero: columna 5, fila 6), entonces sabes que la disposición es así:

Un tablero de ajedrez con dos damas. Las flechas que salen de la dama en c5 indican las posibles direcciones de captura a lo largo de la columna, la fila y la diagonal.

También puedes responder si las damas pueden atacarse entre sí. En este caso, la respuesta sería que sí, que pueden, porque ambas piezas comparten una diagonal.

Créditos

La imagen del tablero de ajedrez fue creada por habere-et-dispertire con LaTeX y el paquete chessboard de Ulrike Fischer.

Pistas

Para completar este ejercicio, debes implementar las siguientes funciones:

  • boardString
  • canAttack

Las firmas de tipo ya están puestas, pero definir las funciones depende de ti.

Las posiciones se especifican como tuplas de dos elementos:

  • El primer elemento es la fila (el rank, en términos de ajedrez).
  • El segundo elemento es la columna (el file, en términos de ajedrez).
  • (0, 0) es la esquina superior izquierda del tablero, (0, 7) es la superior derecha,
  • (7, 0) es la inferior izquierda y (7, 7) es la inferior derecha.
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
Haskell Exercism

¿Todo listo para empezar Ataque de la reina?

Regístrate en Exercism para aprender y dominar Haskell con 107 ejercicios y mentoría humana real, todo gratis.