Track
/
Prolog
Prolog
/
Esercizi
/
Puzzle binario
Puzzle binario

Puzzle binario

Medio

Introduzione

Di recente tua nonna ha sviluppato un vivo interesse per la risoluzione dei puzzle binari. Sta diventando sempre più brava, ma si blocca abbastanza spesso. Da bravo nipote quale sei, decidi di realizzare una piccola applicazione in grado di risolvere qualsiasi puzzle binario. Così potrai dare a tua nonna qualche suggerimento per la sua prossima mossa.

Istruzioni

Il tuo compito è risolvere un puzzle binario. Ogni puzzle binario ha esattamente una soluzione, che si trova applicando queste regole:

  1. Ogni cella deve contenere uno zero o un uno.
  2. Più di due cifre uguali non possono essere adiacenti. Quindi, se due celle adiacenti contengono la stessa cifra, le celle accanto a quelle cifre devono contenere l'altra cifra.
  3. Ogni riga ed ogni colonna devono contenere lo stesso numero di zeri ed uni.
  4. Ogni riga ed ogni colonna è unica.

Riceverai un puzzle incompleto sotto forma di righe di zeri ed uni, con dei segnaposto (_) per i valori sconosciuti. L'obiettivo è definire le regole del puzzle binario, che permetteranno ai test di ricavare i valori dei segnaposto (non sei tu a farlo). L'implementazione deve usare il Constraint Logic Programming over Finite Domains (CLP(FD)) di Prolog, perfetto per questo tipo di attività.

Note

Per aiutarti a iniziare, il file stub include già la libreria clpfd tramite:

:- use_module(library(clpfd)).
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Prolog Exercism

Vuoi iniziare Puzzle binario?

Iscriviti a Exercism per imparare e padroneggiare Prolog con 109 esercizi e il mentoring di persone reali, tutto gratis.