This repository has been archived on 2022-03-31. You can view files and clone it, but cannot push or open issues or pull requests.
heyawake-prolog/resolveur.pl

37 lines
1.3 KiB
Perl
Raw Normal View History

2021-03-06 19:31:08 +01:00
% zone noire
aire(X, Y, X, Y, 1) :- case(X, Y, 1).
2021-02-25 21:33:15 +01:00
2021-03-06 19:31:08 +01:00
% zone blanche
2021-03-06 19:40:55 +01:00
aire(X1, Y1, X2, Y2, 0, T) :- X1 \= X2, case(X1, Y1, 0), NX is X1 + 1, aire(NX, Y1, X2, Y2, 0, T).
aire(X, Y1, X, Y2, 0, T) :- Y1 \= Y2, case(X, Y1, 0), NY is Y1 + 1, airereverse(X, NY, X, Y2, 0, T).
% zone : E = Etat, T = Taille
2021-03-15 21:17:59 +01:00
aire(X1, Y1, X2, Y2, E, T) :- E \= 0, write("\n"), write(X1),
write(" "), write(Y1),
write(" "), write(X2),
write(" "), write(Y2),
write(" "), write(E),
write(" "), write(T).
2021-03-06 19:40:55 +01:00
2021-03-06 19:31:08 +01:00
airereverse(X1, Y1, X2, Y2, 0, T) :- case(X1, Y1, 0), NX is X1 - 1, NX \= T, airereverse(NX, Y1, X2, Y2, 0, T);
NX = T, aire(NX, Y1, X2, Y2, 0, T).
2021-02-25 21:33:15 +01:00
2021-03-06 19:31:08 +01:00
% cellule
2021-03-15 21:17:59 +01:00
case(X, Y, C) :- write("\n"), write("Coordonnées: X="), write(X),
write(", Y="), write(Y),
write(" | Couleur: "), write(C).
2021-03-06 19:31:08 +01:00
run([]) :- write('0: case blanc, 1: case noire').
2021-03-06 19:40:55 +01:00
run([[X1, Y1, X2, Y2, E] | Q]) :- T is X2 - X1, aire(X1, Y1, X2, Y2, E, T), run(Q).
2021-02-25 21:33:15 +01:00
2021-02-25 20:55:01 +01:00
/*
2021-03-06 19:31:08 +01:00
run([[0,0,1,1,2],
[2,0,2,2,-1],
[3,0,5,1,-1],
[0,2,0,4,-1],
[1,2,1,3,0],
[3,2,5,2,0],
[1,4,1,4,1],
[2,3,5,5,4],
[0,5,1,5,-1]]).
2021-02-25 20:55:01 +01:00
*/