
I was asked to write this a few month’s back and it took me 2 or 3 evenings. It’s 312 lines long in just one file. Hopefully there are enough sensible function and variable names to make sense of it.
It runs in a terminal. It was compiled with Visual Studio but should not need many changes to compile with gcc/clang. (I hope!).
I made extensive use of pointers. For instance this function uses pointers in a for-loop.
int InDanger(char piece, int * x, int * y) {
for (*y = 0; *y < 3; (*y)++) {
if (CountRows(piece, y,0)==2) return 1;
}
for (*x = 0; *x < 3; (*x)++) {
if (CountCols(piece, x,0) == 2) return 2;
}
*x = 0;
if (CountDiagonal(piece, x,0) == 2) return 3;
*x = 2;
if (CountDiagonal(piece, x,0) == 2) return 4;
return 0; // no danger
}
I’ve added this to the GitHub C games repository and updated the C games source page.
(Visited 162 times, 1 visits today)