Kis házi feladat: számkeresztrejtvény

A feladat

A keresztrejtvény Prolog ábrázolása

Példa:
pelda(mini, [[x\ x,11\x,21\x, 8\x],
             [x\24,   _,   _,   _],
             [x\10,   _,   _,   _],
             [x\6,    _,   _, x\x]], 9).

A megirandó Prolog eljárás

% szamker(SzK, Max): SzK az 1..Max számokkal
% helyesen kitöltött számkeresztrejtvény.
A szamker/2 egy a fentiekben leírt keresztrejtvény-mintát és a maximális számértéket kapja bemenetként, feladata a kockák kitöltése, azaz a mintában levő változók behelyettesítése. Egy példafutás:
| ?- pelda(mini, SzK, _Max), szamker(SzK, _Max).
                SzK = [[x\x, 11\x,21\x,8\x],
                       [x\24,8,   9,   7  ],
                       [x\10,2,   7,   1  ],
                       [x\6, 1,   5,   x\x]] ? ; no

Néhány tesztadat

pelda(p1, [[x\x,  22\x, 28\x, 12\x, x\x,  29\x, 6\x,  16\x],
	   [x\24, _,    _,    _,    5\17, _,    _,    _   ],
	   [x\42, _,    _,    _,    _,    _,    _,    _   ],
	   [x\11, _,    _,    8\7,  _,    _,    14\x, 19\x],
	   [x\x,  18\11,_,    _,    17\10,_,    _,    _   ],
	   [x\17, _,    _,    _,    _,    12\16,_,    _   ],
	   [x\7,  _,    _,    x\27, _,    _,    _,    _   ],
	   [x\8,  _,    _,    x\9,  _,    _,    _,    x\x ]], 9).

pelda(p2, [[x\x,  19\x, 21\x, 9\x,  8\x,  x\x,  20\x, 14\x, 14\x, x\x ],
	   [x\19, _,    _,    _,    _,    x\21, _,    _,    _,    23\x],
	   [x\27, _,    _,    _,    _,    15\17,_,    _,    _,    _   ],
	   [x\4,  _,    _,    24\7, _,    _,    _,    9\11, _,    _   ],
	   [x\10, _,    _,    _,    21\16,_,    _,    _,    _,    _   ],
	   [x\x,  10\x, 28\34,_,    _,    _,    _,    _,    13\x, 21\x],
	   [x\29, _,    _,    _,    _,    _,    20\17,_,    _,    _   ],
	   [x\11, _,    _,    6\22, _,    _,    _,    15\11,_,    _   ],
	   [x\12, _,    _,    _,    _,    x\12, _,    _,    _,    _   ],
	   [x\x,  x\9,  _,    _,    _,    x\21, _,    _,    _,    _   ]], 9).

A feladat beadása

A feladatot megoldó CLP programot, megfelelő kommentekkel ellátva a szeredi@iqsoft.hu címre kell beküldeni. Határidő: 2000 október 30. 24:00. A helyes, jól kommentezett megoldásért 5 plusz pont jár. (A "normálisan" kapható 100 pont felett. Jegyhatárok:, jeles 85-, jó 70-84, közepes 55-69.)