A tua avó despertou recentemente um grande interesse por resolver puzzles binários. Embora esteja a ficar cada vez melhor, ainda fica presa com bastante frequência. Como és um neto prestável, decides criar uma pequena aplicação capaz de resolver qualquer puzzle binário. Assim, podes dar à tua avó pistas para o próximo movimento dela.
A tua tarefa é resolver um puzzle binário. Todos os puzzles binários têm exatamente uma solução, que pode ser encontrada aplicando estas regras:
Vais receber um puzzle incompleto na forma de linhas de zeros e uns, com marcadores de posição (_) para os valores desconhecidos.
O objetivo é definires as regras do puzzle binário, o que vai permitir que os testes determinem os valores dos marcadores de posição (não és tu que o fazes).
A tua implementação tem de usar a Programação Lógica com Restrições sobre Domínios Finitos (CLP(FD)) do Prolog, que é perfeita para este tipo de tarefas.
Para te ajudar a começar, o ficheiro stub já inclui a biblioteca clpfd através de:
:- use_module(library(clpfd)).
Inscreve-te no Exercism para aprenderes e dominares Prolog com 109 exercícios, e mentoria humana real, tudo grátis.