19 lines
376 B
Prolog
19 lines
376 B
Prolog
% This example is adapted from http://eclipse.crosscoreop.com/examples/puzzle1.pl.txt
|
|
|
|
:- use_module(library('clpfd')).
|
|
|
|
solve(Board) :-
|
|
Board = [NW,N,NE,W,E,SW,S,SE],
|
|
domains(Board,0..12),
|
|
sum(Board, #=, 12),
|
|
NW + N + NE #= 5,
|
|
NE + E + SE #= 5,
|
|
NW + W + SW #= 5,
|
|
SW + S + SE #= 5,
|
|
label(Board).
|
|
|
|
domains([],_).
|
|
domains([Pos|Board],D) :-
|
|
Pos in D,
|
|
domains(Board,D).
|