Rutas
/
Prolog
Prolog
/
Ejercicios
/
Puzle binario
Puzle binario

Puzle binario

Media

Introducción

Tu abuela ha mostrado recientemente un gran interés por resolver puzles binarios. Aunque cada vez se le da mejor, lo cierto es que se atasca con bastante frecuencia. Como eres un nieto tan servicial, decides crear una pequeña aplicación capaz de resolver cualquier puzle binario. Así podrás darle pistas a tu abuela para su siguiente movimiento.

Instrucciones

Tu tarea es resolver un puzle binario. Todos los puzles binarios tienen exactamente una solución, que se puede encontrar aplicando estas reglas:

  1. Cada casilla debe contener un cero o un uno.
  2. No puede haber más de dos dígitos iguales adyacentes. Por lo tanto, si dos casillas adyacentes contienen el mismo dígito, las casillas contiguas a esos dígitos deben contener el otro dígito.
  3. Cada fila y cada columna deben contener el mismo número de ceros y de unos.
  4. Cada fila y cada columna son únicas.

Recibirás un puzle sin completar en forma de filas de ceros y unos, con marcadores de posición (_) para los valores desconocidos. El objetivo es definir las reglas del puzle binario, que permitirán a los tests averiguar los valores de los marcadores de posición (eso no lo haces tú). Tu implementación debe usar la programación lógica con restricciones sobre dominios finitos (CLP(FD)) de Prolog, que es perfecta para este tipo de tareas.

Note

Para ayudarte a empezar, el archivo stub ya incluye la clpfd library mediante:

:- use_module(library(clpfd)).
Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Prolog Exercism

¿Listo para empezar Puzle binario?

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