9 개의 함수가 더 많이 호출되는 주요 함수가 있습니다. 내 목적이 무엇인지 이해하기 위해 다른 기능을 보여 드리겠습니다. 기능 check_draw의 문이 True 인 경우while while break while loop
int main() {
char B[rows][columns];
char answer;
int newgame;
printf("Are you ready to play? Answer with y (or Y) for yes or n (or N) for no\n");
scanf("\n%c",&answer);
while(answer!='N' && answer!='n'){
fillArray(B);
printArray(B);
answer='y';
while(answer!='N' && answer!='n'){
vasilhs(B);
printArray(B);
check_draw(B);//I will place an if statement after the check_draw function
check_vertical_win(B);
check_horizontal_win(B);
check_right_diagonal_win(B);
check_left_diagonal_win(B);
antipalos_paikths(B);
printArray(B);
check_draw(B);
check_vertical_win(B);
check_horizontal_win(B);
check_right_diagonal_win(B);
check_left_diagonal_win(B);
}
printf("Do you want to play again?\n");
scanf("\n\n%c",&answer);
}
}//end of main function
//function check_draw
void check_draw(char A[rows][columns]){
int i,j;
int newgame;
//if statement will check in an matrix if the following elements are equal to '-'
if(A[0][0]!='-' && A[0][1]!='-' && A[0][2]!='-' && A[0][3]!='-' && A[0][4]!='-' && A[0][5]!='-' && A[0][6]!='-'){
printf("The result is a draw");
newgame=10;
}
}
그래서 변수 newgame는 값 10
if(newgame==10){
break;
}
을 얻을 때
선언문 check_draw 통화 후 만약 내가이를 배치 할 때, 그것은을 중단하지 않는 이유는, while 루프? 코드 구현에서
한 함수의 로컬 변수에 다른 함수에서 직접 액세스 할 수 없습니다! – CinCout
'check_draw '는 main에있는 것과는 다른'newgame'의 복사본을 가지고 있기 때문에. true/false (1/0) 값을 리턴하고 main에서'if (checkDraw (B)) break;를 수행하면'check_draw' (및 다른 유사한 함수)를 사용하는 것이 더 나을 것입니다. – TripeHound
'rows'와'columns'은 어디에 정의되어 있습니까? – Marievi