Ajedrez

Debes escribir un programa que analice diversas posiciones de ajedrez, muy simplificadas. En concreto, el jugador negro sólo dispone de su rey, mientras que el jugador blanco sólo dispone de torres, alfiles y damas. Recuerda que los reyes se mueven horizontal, vertical, y diagonalmente, dando un solo paso. Las otras fichas se pueden mover más de una casilla a la vez: las torres, horizontal y verticalmente; los alfiles, diagonalmente; las damas, horizontal, vertical, y diagonalmente.

Tu programa debe determinar todas las posiciones a las que se puede mover el rey negro, esto es, todas las posiciones vecinas del rey negro que no están amenazadas por ninguna pieza blanca. (Si el rey tiene una pieza enemiga a su alrededor, y ésta no está defendida, el rey puede moverse a esa posición “matando” a la pieza enemiga.) Si el rey negro no tiene ningun movimiento válido, debes escribir “jaque mate” si la posición donde se encuentra el rey está amenazada, y “ahogado” si no lo está.

Entrada

La entrada comienza con el número de tableros nn. Siguen nn tableros. Cada tablero consiste en la posición del rey negro, seguida del número de piezas blancas mm (entre 0 y 63), seguido de mm piezas, cada una de las cuales definida con su tipo (T, A o D) y su posición. Las posiciones se definen con una columna (una letra entre a y h) y una fila (un número entre 1 y 8). Todas las piezas de un tablero se encuentran en posiciones diferentes.

Salida

Para cada tablero, escribe su número empezando en 1, seguido de todas las posiciones a las que se puede mover el rey negro, en orden alfabético. Si no hay ningún movimiento posible, escribe “jaque mate” o “ahogado” según sea el caso.

Puntuación

Información del problema

Autoría: Salvador Roura

Generación: 2026-01-25T11:15:30.057Z

© Jutge.org, 2006–2026.
https://jutge.org