오델로 규칙 생각보다 까다롭다,,,,
놓으려는 돌에 대해서 여덟 방향에 다른 색의 돌이 있으면, 그 돌의 방향으로 같은 색의 돌이 있을 때까지 가본다.
같은 색의 돌이 있다면 그 사이에 있는 다른 색의 돌은 모두 뒤집을 수 있다.
다음은 돌을 놓는 함수이다.
void put_mine(int x, int y) {
for (int i = 0; i < 8; i++) {
int d_x = x + direction[i][0];
int d_y = y + direction[i][1];
int r_x = x;
int r_y = y;
if (d_x>=0&&d_y>=0&&(gameboard[d_x][d_y] == opposite)) {
do {
d_x += direction[i][0];
d_y += direction[i][1];
} while (gameboard[d_x][d_y] == opposite);
if (gameboard[d_x][d_y] == whoseTurn) {
do {
if (gameboard[r_x][r_y] == EMPTY)
num[whoseTurn]++;
else {
num[whoseTurn]++; num[opposite]--;
}
gameboard[r_x][r_y] = whoseTurn;
r_x += direction[i][0];
r_y += direction[i][1];
} while (gameboard[r_x][r_y] == opposite);
//return;
}
}
}
}
특별한 자료구조나 어려운 개념들은 쓰이지는 않지만 예외처리할 사항들이 많기 때문에
한번쯤 해보면 좋을 것 같다!!
-아직도 예외처리가 끝나지 않은,,,,
반응형
'기록 > 공부기록👩🏻💻' 카테고리의 다른 글
[공부기록]100일_65일차 (0) | 2020.11.10 |
---|---|
[공부기록]100일_64일차 (0) | 2020.11.09 |
[공부기록]100일_62일차 (0) | 2020.11.07 |
[공부기록]100일_61일차 (0) | 2020.11.06 |
[공부기록]100일_60일차 (0) | 2020.11.05 |