CS153/hw6/hw4programs/life.oat
jmug ee01a8f5b2 Change hw6 to an unsolved version.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-24 23:10:01 -08:00

62 lines
1.6 KiB
Text

global len = 4;
int check(int[][] board, int i, int j, int count) {
if ((i >= 0) & (j >= 0) & (i < len) & (j < len)) {
return count + board[i][j];
} else {
return count;
}
}
int val_at(int[][] board, int i, int j) {
var alive = board[i][j];
var count = 0;
count = check(board, i-1, j-1, count);
count = check(board, i-1, j , count);
count = check(board, i-1, j+1, count);
count = check(board, i , j-1, count);
count = check(board, i , j+1, count);
count = check(board, i+1, j-1, count);
count = check(board, i+1, j , count);
count = check(board, i+1, j+1, count);
if (alive == 1) {
if (count < 2) {
return 0;
} else if (count < 4) {
return 1;
}
return 0;
}
if (count == 3) {
return 1;
} else {
return 0;
}
return 0;
}
int program (int argc, string[] argv) {
var board = new int[][]{ new int[]{0, 0, 0, 0},
new int[]{0, 1, 1, 1},
new int[]{1, 1, 1, 0},
new int[]{0, 0, 0, 0} };
var new_board = new int[][]{ new int[]{0, 0, 0, 0},
new int[]{0, 0, 0, 0},
new int[]{0, 0, 0, 0},
new int[]{0, 0, 0, 0} };
for (var i=0; i < 4; i=i+1;) {
new_board[i] = new int[4];
for (var j=0; j < 4; j=j+1;) { new_board[i][j] = val_at(board, i,j); }
}
for (var i = 0; i < len; i = i+1;) {
for (var j = 0; j < len; j = j+1;) {
print_int(new_board[i][j]);
}
}
return 0;
}