Skip to content

Instantly share code, notes, and snippets.

@ipefixe
Last active August 29, 2015 14:16
Show Gist options
  • Save ipefixe/314b9d0e20ae064cecf3 to your computer and use it in GitHub Desktop.
Save ipefixe/314b9d0e20ae064cecf3 to your computer and use it in GitHub Desktop.
p2013_exo2.pro
/* -*- Mode:Prolog; coding:UTF-8; -*- */
depart(P) :-
P = [v, v, v, v, p, v, v, v, p, p, p, v, v, v, v, v, p, v, v, v, v, v, v, p, v, v, v, v, v, v, v, v, v].
arrivee(P) :-
P = [v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, p, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v].
conversionLCN(Ligne, Col, Num) :-
Ligne >= 0,
Ligne =< 1,
Col >= 2,
Col =< 4,
Num is Col - 2 mod 3 + Ligne * 3.
conversionLCN(Ligne, Col, Num) :-
Ligne >= 2,
Ligne =< 4,
Col >= 0,
Col =< 6,
Num is Col mod 7 + (Ligne - 2) * 7 + 6.
conversionLCN(Ligne, Col, Num) :-
Ligne >= 5,
Ligne =< 6,
Col >= 2,
Col =< 4,
Num is Col - 2 mod 3 + (Ligne - 5) * 3 + 12.
conversionNLC(Num, Ligne, Col) :-
Num >= 0,
Num =< 5,
Ligne is Num div 3,
Col is Num mod 3 + 2.
conversionNLC(Num, Ligne, Col) :-
Num >= 6,
Num =< 26,
Ligne is (Num - 6) div 7 + 2,
Col is (Num - 6) mod 7.
conversionNLC(Num, Ligne, Col) :-
Num >= 27,
Num =< 32,
Ligne is (Num - 27) div 3 + 5,
Col is (Num - 27) mod 3 + 2.
chercherPion([], _Num, LCoord) :-
print(LCoord). /* DEBUG */
chercherPion([p | Pr], Num, LCoord) :-
conversionNLC(Num, Ligne, Col),
chercherPion(Pr, Num + 1, [[Ligne, Col] | LCoord]).
chercherPion([v | Pr], Num, LCoord) :-
chercherPion(Pr, Num + 1, LCoord).
/* chercherPion([v, v, v, v, p, v, v, v, p, p, p, v, v, v, v, v, p, v, v, v, v, v, v, p, v, v, v, v, v, v, v, v, v], 0, LCoord).
RESULTAT : [[4,3],[3,3],[2,4],[2,3],[2,2],[1,3]|_92] */
/* Haut */
deplacerPion([X, Y], LCoord, LNumMaj, Coup) :-
/* Bas */
deplacerPion(Coord, LCoord, LNumMaj, Coup) :-
/* Gauche */
deplacerPion(Coord, LCoord, LNumMaj, Coup) :-
/* Droite */
deplacerPion(Coord, LCoord, LNumMaj, Coup) :-
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment