기록/공부기록👩🏻‍💻

[공부기록]100일_63일차

lingk 2020. 11. 8. 23:34

오델로 규칙 생각보다 까다롭다,,,,

 

놓으려는 돌에 대해서 여덟 방향에 다른 색의 돌이 있으면, 그 돌의 방향으로 같은 색의 돌이 있을 때까지 가본다.

같은 색의 돌이 있다면 그 사이에 있는 다른 색의 돌은 모두 뒤집을 수 있다.

다음은 돌을 놓는 함수이다.

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