Spiral matrix: Difference between revisions

Realize in MiniZinc
No edit summary
(Realize in MiniZinc)
Line 2,910:
[13, 12, 11, 10, 9]) */</lang>
 
=={{header|MiniZinc}}==
<lang MiniZinc>
%Spiral Matrix. Nigel Galloway, February 3rd., 2020
int: Size;
array [1..Size,1..Size] of var 1..Size*Size: spiral;
constraint spiral[1,1..]=1..Size;
constraint forall(n in 2..(Size+1) div 2)(forall(g in n..Size+1-n)(spiral[n,g]=spiral[n,g-1]+1));
constraint forall(n in 1..(Size+1) div 2)(forall(g in n+1..Size+1-n)(spiral[g,Size-n+1]=spiral[g-1,Size-n+1]+1));
constraint forall(n in 1..Size div 2)(forall(g in n..Size-n)(spiral[Size-n+1,g]=spiral[Size-n+1,g+1]+1)) /\ forall(n in 1..Size div 2)(forall(g in n+1..Size-n)(spiral[g,n]=spiral[g+1,n]+1));
output [show2d(spiral)];
</lang>
{{out}}
<pre>
minizinc -DSize= spiral.mzn
 
[| 1, 2, 3, 4 |
12, 13, 14, 5 |
11, 16, 15, 6 |
10, 9, 8, 7 |]
----------
 
minizinc -DSize=5 zigzag.mzn
 
[| 1, 2, 3, 4, 5 |
16, 17, 18, 19, 6 |
15, 24, 25, 20, 7 |
14, 23, 22, 21, 8 |
13, 12, 11, 10, 9 |]
----------
 
minizinc -DSize=6 zigzag.mzn
 
[| 1, 2, 3, 4, 5, 6 |
20, 21, 22, 23, 24, 7 |
19, 32, 33, 34, 25, 8 |
18, 31, 36, 35, 26, 9 |
17, 30, 29, 28, 27, 10 |
16, 15, 14, 13, 12, 11 |]
----------
</pre>
=={{header|NetRexx}}==
{{Trans|ooRexx}}
2,171

edits