Skip to content

Instantly share code, notes, and snippets.

@unfo
Created August 20, 2012 15:26
Show Gist options
  • Select an option

  • Save unfo/3405137 to your computer and use it in GitHub Desktop.

Select an option

Save unfo/3405137 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
@ITPol
Copy link
Copy Markdown

ITPol commented Mar 9, 2013

Better solution, which doesn't use repetitions: https://gist.github.com/ITPol/f8f5418d4f95015b3586#file-crossword-prolog

@timschonborn
Copy link
Copy Markdown

Can you explain to me what the combined variables do? Like word(V1, ,V1H1,,V1H2,,V1H3,)?

@Ferdodonna
Copy link
Copy Markdown

Can you explain to me what the combined variables do? Like word(V1, ,V1H1,,V1H2,,V1H3,)?

Nothing, they are just individual variables named that way for an easier overview.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment