Een krant vraagt je een kruiswoordraadsel samen te stellen met een raster zoals gegeven in de volgende figuur:
Deze vooraanstaande krant heeft een lijst met toegestane woorden, en levert die aan als prolog feiten (zoals ieder logische krant met een beetje zelfrespect). Het volgende voorbeeld toont een deel van die data set:
word(eerroof,e,e,r,r,o,o,f).
word(haargel,h,a,a,r,g,e,l).
word(kogelas,k,o,g,e,l,a,s).
word(infomap,i,n,f,o,m,a,p).
word(lasagne,l,a,s,a,g,n,e).
word(gameboy,g,a,m,e,b,o,y).
Schrijf een predicaat crossword/6
dat zijn argumenten unificeert met woorden die in het rooster passen. De eerste 3 argumenten geven de verticale woorden aan van links naar rechts, de laatste 3 geven de horizontale woorden aan van boven naar onder. (dus crossword(V1,V2,V3,H1,H2,H3)
).
Om je code te testen kun je beginnen met de enkel de code hierboven (deze database1), vervolgens kun je het eens proberen met database van alle Nederlandse 7-letter woorden (7nl.pl2), hoewel het niet vereist is voor deze oefening is het leuk om ervoor te zorgen dat alle woorden verschillend zijn.