Skip to content

Instantly share code, notes, and snippets.

@0wnrepo
Forked from unfo/crossword.prolog
Created September 5, 2018 19:41
Show Gist options
  • Save 0wnrepo/7b7ea8ce202909c2ce622c67b27761ee to your computer and use it in GitHub Desktop.
Save 0wnrepo/7b7ea8ce202909c2ce622c67b27761ee to your computer and use it in GitHub Desktop.
Learn Prolog Now, Exercises 2.3 Crossword
% 2.3
word(astante, a,s,t,a,n,t,e).
word(astoria, a,s,t,o,r,i,a).
word(baratto, b,a,r,a,t,t,o).
word(cobalto, c,o,b,a,l,t,o).
word(pistola, p,i,s,t,o,l,a).
word(statale, s,t,a,t,a,l,e).
crossword(V1, V2, V3, H1, H2, H3) :-
word(V1, _,V1H1,_,V1H2,_,V1H3,_),
word(V2, _,V2H1,_,V2H2,_,V2H3,_),
word(V3, _,V3H1,_,V3H2,_,V3H3,_),
word(H1, _,V1H1,_,V2H1,_,V3H1,_),
word(H2, _,V1H2,_,V2H2,_,V3H2,_),
word(H3, _,V1H3,_,V2H3,_,V3H3,_),
V1 \= V2,
V2 \= V3,
V3 \= H1,
H1 \= H2,
H2 \= H3.
?- crossword(V1,V2,V3,H1,H2,H3).
V1 = astante,
V2 = baratto,
V3 = statale,
H1 = astante,
H2 = baratto,
H3 = statale
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment