Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,31 +1,31 @@
|
|||
zig_zag(N) :-
|
||||
zig_zag(N, N).
|
||||
zig_zag(N, N).
|
||||
|
||||
% compute zig_zag for a matrix of Lig lines of Col columns
|
||||
zig_zag(Lig, Col) :-
|
||||
length(M, Lig),
|
||||
maplist(init(Col), M),
|
||||
fill(M, 0, 0, 0, Lig, Col, up),
|
||||
% display the matrix
|
||||
maplist(print_line, M).
|
||||
length(M, Lig),
|
||||
maplist(init(Col), M),
|
||||
fill(M, 0, 0, 0, Lig, Col, up),
|
||||
% display the matrix
|
||||
maplist(print_line, M).
|
||||
|
||||
|
||||
fill(M, Cur, L, C, NL, NC, _) :-
|
||||
L is NL - 1,
|
||||
C is NC - 1,
|
||||
nth0(L, M, Line),
|
||||
nth0(C, Line, Cur).
|
||||
L is NL - 1,
|
||||
C is NC - 1,
|
||||
nth0(L, M, Line),
|
||||
nth0(C, Line, Cur).
|
||||
|
||||
fill(M, Cur, L, C, NL, NC, Sens) :-
|
||||
nth0(L, M, Line),
|
||||
nth0(C, Line, Cur),
|
||||
Cur1 is Cur + 1,
|
||||
compute_next(NL, NC, L, C, Sens, L1, C1, Sens1),
|
||||
fill(M, Cur1, L1, C1, NL, NC, Sens1).
|
||||
nth0(L, M, Line),
|
||||
nth0(C, Line, Cur),
|
||||
Cur1 is Cur + 1,
|
||||
compute_next(NL, NC, L, C, Sens, L1, C1, Sens1),
|
||||
fill(M, Cur1, L1, C1, NL, NC, Sens1).
|
||||
|
||||
|
||||
init(N, L) :-
|
||||
length(L, N).
|
||||
length(L, N).
|
||||
|
||||
% compute_next
|
||||
% arg1 : Number of lnes of the matrix
|
||||
|
|
@ -37,41 +37,41 @@ init(N, L) :-
|
|||
% arg7 : next column
|
||||
% arg8 : next direction of movement
|
||||
compute_next(_NL, NC, 0, Col, up, 0, Col1, down) :-
|
||||
Col < NC - 1,
|
||||
Col1 is Col+1.
|
||||
Col < NC - 1,
|
||||
Col1 is Col+1.
|
||||
|
||||
compute_next(_NL, NC, 0, Col, up, 1, Col, down) :-
|
||||
Col is NC - 1.
|
||||
Col is NC - 1.
|
||||
|
||||
compute_next(NL, _NC, Lig, 0, down, Lig1, 0, up) :-
|
||||
Lig < NL - 1,
|
||||
Lig1 is Lig+1.
|
||||
Lig < NL - 1,
|
||||
Lig1 is Lig+1.
|
||||
|
||||
compute_next(NL, _NC, Lig, 0, down, Lig, 1, up) :-
|
||||
Lig is NL - 1.
|
||||
Lig is NL - 1.
|
||||
|
||||
compute_next(NL, _NC, Lig, Col, down, Lig1, Col1, down) :-
|
||||
Lig < NL - 1,
|
||||
Lig1 is Lig + 1,
|
||||
Col1 is Col-1.
|
||||
Lig < NL - 1,
|
||||
Lig1 is Lig + 1,
|
||||
Col1 is Col-1.
|
||||
|
||||
compute_next(NL, _NC, Lig, Col, down, Lig, Col1, up) :-
|
||||
Lig is NL - 1,
|
||||
Col1 is Col+1.
|
||||
Lig is NL - 1,
|
||||
Col1 is Col+1.
|
||||
|
||||
compute_next(_NL, NC, Lig, Col, up, Lig1, Col1, up) :-
|
||||
Col < NC - 1,
|
||||
Lig1 is Lig - 1,
|
||||
Col1 is Col+1.
|
||||
Col < NC - 1,
|
||||
Lig1 is Lig - 1,
|
||||
Col1 is Col+1.
|
||||
|
||||
compute_next(_NL, NC, Lig, Col, up, Lig1, Col, down) :-
|
||||
Col is NC - 1,
|
||||
Lig1 is Lig + 1.
|
||||
Col is NC - 1,
|
||||
Lig1 is Lig + 1.
|
||||
|
||||
|
||||
print_line(L) :-
|
||||
maplist(print_val, L),
|
||||
nl.
|
||||
maplist(print_val, L),
|
||||
nl.
|
||||
|
||||
print_val(V) :-
|
||||
writef('%3r ', [V]).
|
||||
writef('%3r ', [V]).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue