Tracks
/
Prolog
Prolog
/
Ejercicios
/
Rompecabezas binario
Rompecabezas binario

Rompecabezas binario

Intermedia

Introducción

Tu abuela hace poco empezó a interesarse mucho por resolver rompecabezas binarios. Aunque cada vez se le da mejor, todavía se atasca con bastante frecuencia. Como eres alguien servicial, decides crear una pequeña aplicación que pueda resolver cualquier rompecabezas binario. Así podrás darle pistas a tu abuela para su siguiente movimiento.

Instrucciones

Tu tarea es resolver un puzzle binario. Cada puzzle binario tiene exactamente una solución, que se puede encontrar aplicando estas reglas:

  1. Cada celda debe contener un cero o un uno.
  2. No puede haber más de dos dígitos iguales adyacentes. Entonces, si dos celdas adyacentes contienen el mismo dígito, las celdas que están junto a esos dígitos deben contener el otro dígito.
  3. Cada fila y cada columna deben contener la misma cantidad de ceros y unos.
  4. Cada fila y cada columna son únicas.

Recibirás un puzzle sin completar como filas de ceros y unos, con marcadores de posición (_) para los valores desconocidos. El objetivo es definir las reglas del puzzle binario, lo que permitirá que las pruebas deduzcan 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 biblioteca clpfd mediante:

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

¿Todo listo para empezar Rompecabezas binario?

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