Implementation of Magic Square · GeekWorkCode/AlgorithmVisualizer@4d439bf · GitHub
Skip to content

Commit 4d439bf

Browse files
committed
Implementation of Magic Square
1 parent f8789c0 commit 4d439bf

4 files changed

Lines changed: 71 additions & 2 deletions

File tree

algorithm/category.json

Lines changed: 3 additions & 2 deletions
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
var i = Math.floor (n/2);
2+
var j = n-1;
3+
4+
for ( var num = 1; num <= n*n; ) {
5+
logTracer._print ( 'i = ' + i );
6+
logTracer._print ( 'j = ' + j );
7+
8+
if( i == -1 && j == n ) {
9+
j = n - 2;
10+
i = 0;
11+
12+
logTracer._print ( 'Changing : ' );
13+
logTracer._print ( 'i = ' + i );
14+
logTracer._print ( 'j = ' + j );
15+
} else {
16+
if ( j == n ) {
17+
j = 0;
18+
logTracer._print ( 'Changing : ' + 'j = ' + j);
19+
}
20+
if ( i < 0 ) {
21+
i = n-1;
22+
logTracer._print ( 'Changing : ' + 'i = ' + i );
23+
}
24+
}
25+
26+
if ( A[i][j] > 0 ) {
27+
logTracer._print ( ' Cell already filled : Changing ' + ' i = ' + i + ' j = ' + j );
28+
j -= 2;
29+
i++;
30+
continue;
31+
} else {
32+
A[i][j] = num++;
33+
tracer._notify( i, j, A[i][j] )._wait ();
34+
tracer._denotify ( i, j );
35+
tracer._select ( i, j )._wait ();
36+
}
37+
j++;
38+
i--;
39+
}
40+
41+
logTracer._print ( 'Magic Constant is ' + n*(n*n+1)/2 );
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
var n = 7;
2+
var A = new Array (n);
3+
for (var i = n - 1; i >= 0; i--) {
4+
A[i] = new Array (n);
5+
}
6+
7+
for ( var i = n -1; i >= 0; i-- ) {
8+
for ( var j = n - 1; j >= 0; j-- ) {
9+
A[i][j] = 0;
10+
}
11+
}
12+
13+
var tracer = new Array2DTracer ('Magic Square')._setData(A);
14+
var logTracer = new LogTracer ( 'Console' );
Lines changed: 13 additions & 0 deletions

0 commit comments

Comments
 (0)