bool CheckFive(int user)
{
int i, j;
for (i = 0; i < 19; i++)
{
for (j = 0; j < 19; j++)
{
//가로범위 체크
if (Plate[i][j] == user)
{
if (Plate[i][j + 1] == user && Plate[i][j + 2] == user && Plate[i][j + 3] == user && Plate[i][j + 4] == user)
return true;
}
//세로범위 체크
else if (Plate[j][i] == user)
{
if (Plate[j + 1][i] == user && Plate[j + 2][i] == user && Plate[j + 3][i] == user && Plate[j + 4][i] == user)
return true;
}
//대각선(↘)범위 체크
else if (Plate[i][j] == user)
{
if (Plate[i + 1][j + 1] == user && Plate[i + 2][j + 2] == user && Plate[i + 3][j + 3] == user && Plate[i + 4][j + 4] == user)
return true;
}
//대각선(↙) 범위 체크
else if (Plate[i][j] == user)
{
if (Plate[i + 1][j - 1] == user && Plate[i + 2][j - 2] == user && Plate[i + 3][j - 3] == user && Plate[i + 4][j - 4] == user)
return true;
}
}
}
return false;
}
대충 int Plate[19][19] 라는 배열이있고 여기엔 다 0이 채워져있습니다.
그리고 플레이어 1,2가 자기차례에 x,y 좌표값을 입력합니다.
그럼 플레이어 1이 x,y 좌표값을 입력하면 그에 맞는 x,y좌표값 배열에 1을 저장하고 플레이어2가 입력하면 2를 저장합니다.
저 함수의 user 매개변수에는 1또는 2가전달됩니다.
오목이맞다면 true를 반환합니다
그런데 대각선은 인식을하지못하는데 이유가뭔지궁급합니다.
야이 미친 세로는 인식되더냐?? ㅋㅋ
?? 뭐지
아니 if (Plate[i][j] == user) 여기서 다 걸러지니깐 else 까지 안가져
조건이 똑같은데;
가로 세로는 인식함..
세로는 왜되는거지
아 코로모님 ㅅㅂ 감사
그게문제인듯 한번바꿔봄
첨자를 뒤집어놨구나
와... 고쳤다 싀바 코로모행님 감사합니다
2016//ㅇㅇ 그런듯
좀더 손봐보는게 어떰
이 코드에서는 육목 안 걸릴텐데요
육목은 귀찮아서.. 삼삼도 귀찮아서..
어차피 19 19니 인식되는건가 ㅎㄷㄷ
근대 저대로하면 가장자리에서 오목날경우 오류뜨지 않아?