55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
#include <stdio.h>
|
|
|
|
int so(void len) {
|
|
return sizeof(len) / sizeof(len[0]);
|
|
}
|
|
|
|
void printBoard (char[][] arr, int p1score, int p2score) {
|
|
for (int i = 0; i < so(arr); i++) {
|
|
for (int j = 0; j < so(arr[0]); j++) {
|
|
printf("%c ", arr[i][j]);
|
|
}
|
|
printf("\n");
|
|
}
|
|
}
|
|
|
|
int checkP(char[][] arr, int x, int y, char c) {
|
|
if (x >= 0 && x < so(arr) && y >= 0 && y < so(arr[0]))
|
|
return arr[x][y] == c;
|
|
return 0;
|
|
}
|
|
|
|
int points(char[][] arr, int x, int y) {
|
|
if (arr[x][y] == 's')
|
|
return
|
|
checkP(arr, x, y + 1, 'o') && checkP(arr, x, y + 2, 's') + // top
|
|
checkP(arr, x + 1, y + 1, 'o') && checkP(arr, x + 2, y + 2, 's') + // top right
|
|
checkP(arr, x + 1, y, 'o') && checkP(arr, x + 2, y, 's') + // right
|
|
checkP(arr, x + 1, y - 1, 'o') && checkP(arr, x + 2, y - 2, 's') + // bottom right
|
|
checkP(arr, x, y - 1, 'o') && checkP(arr, x, y - 2, 's') + // bottom
|
|
checkP(arr, x - 1, y + 1, 'o') && checkP(arr, x - 2, y + 2, 's') + // bottom left
|
|
checkP(arr, x - 1, y, 'o') && checkP(arr, x - 2, y, 's') + // left
|
|
checkP(arr, x - 1, y - 1, 'o') && checkP(arr, x - 2, y - 2, 's');
|
|
return
|
|
checkP(arr, x - 1, y, 's') && checkP(arr, x + 1, y, 's') +
|
|
checkP(arr, x - 1, y - 1, 's') && checkP(arr, x + 1, y + 1) +
|
|
checkP(arr, x + 1, y - 1, 's') && checkP(arr, x - 1, y + 1, 's') +
|
|
checkP(arr, x, y + 1, 's') && checkP(arr, x, y - 1, 's');
|
|
}
|
|
|
|
void initBoard (char[][] arr, int ncol, int nrow) {
|
|
arr = calloc(ncol, sizeof(char) * nrow);
|
|
for (int i = 0; i < ncol; i++) {
|
|
arr[i] = calloc(nrow, sizeof(char));
|
|
for (int j = 0; j < so(arr[0]); j++) {
|
|
arr[i][j] = '-';
|
|
}
|
|
}
|
|
}
|
|
|
|
int main () {
|
|
char[][] arr;
|
|
initBoard(arr, 5, 5);
|
|
|
|
}
|