safe safe Queen Others safe Others noattack Queen

  • Slides: 6
Download presentation

Ν Βασίλισσες (συνέχεια) • safe ([]) safe ([Queen | Others]) : safe (Others), noattack

Ν Βασίλισσες (συνέχεια) • safe ([]) safe ([Queen | Others]) : safe (Others), noattack (Queen, Others, 1). • noattack (Queen, [], XPosition). noattack (Y, [Y 1 | Rest], Xdist) : Y 1 – Y ≠ Xdist, Y – Y 1 ≠ Xdist, Dist = Xdist + 1, noattack (Y, Rest, Dist). • permutation ([], []). • permutation ([X | L], P) : - permutation (L, L 1), insert (X, L 1, P).

Ν Βασίλισσες (συνέχεια) • % noattack (Queen. Position, List. Queens. Positions) noattack (Queen, []).

Ν Βασίλισσες (συνέχεια) • % noattack (Queen. Position, List. Queens. Positions) noattack (Queen, []). noattack (pos (X, Y), [post (X 1, Y 1) | Rest]) : X ≠ X 1, Y ≠ Y 1, Y 1 – Y ≠ X 1 –X, Y – Y 1 ≠ X – X 1, noattack (pos (X, Y), Rest). • solution (X) : - template (X), correct (X). template ([pos (1, Y 1), pos (2, Y 2), …, pos (8, Y 8)]). ? solution (X)