if 문에서 데이터를 처리하는 중이고 해당 데이터를 로캘이 아닌 변수로 유지하려고하므로 문 외부에서 호출 할 수 있습니다. 여기에 실제 코드가 있습니다. 조심하십시오. 그것은 거의 아이디어의 추방이지만, 모든 아이디어 나 더 나은 솔루션을 환영 할 것입니다. (제안 사항이 현재 수준에서 너무 앞서지 않았다면) ...if 문에서 데이터 반환
코드 생성 및 다차원 문자 배열 (2 차원), 채 웁니다. 나중에 호출하려고 할 때 할당되지 않은 배열 값에 도달하면 프로그램이 충돌합니다. 여기
do
{
destRow = (rand() % ROWS) + 1; // assigning random placement for destroyer ship
destCol = (rand() % COLLUMS) + 1;
destDir = (rand() % 2) + 1;
if (destDir == 1) { //Destroyer: 1 = right
if (destCol + 1 > COLLUMS) {
continue;
} else {
char enemyDestroyer[DESTROYER_SIZE][2] = { { board[destCol][0] , board[0][destRow] }, { board[destCol + 1][0] , board[0][destRow] } };
}
} else if (destDir == 2) { //Destroyer: 2 = down
if (destRow + 1 > ROWS) {
continue;
} else {
char enemyDestroyer[DESTROYER_SIZE][2] = { { board[destCol][0] , board[0][destRow] }, { board[destCol][0] , board[0][destRow + 1] } };
}
}
destSucces = true;
} while (!destSucces);
그것은 할당이 경우 문
if ((input[0] == enemyDestroyer[0][0] && input[1] == enemyDestroyer[0][1]) || (input[0] == enemyDestroyer[1][0] && input[1] == enemyDestroyer[1][1])) {
cout << "Hit!" << endl;
board[posY][posX] = '!';
getchar();
//setting display damage
if (input[1] == enemyDestroyer[0][1]) {
enmDesDisp[0] = '!';
} else if (input[1] == enemyDestroyer[1][1]) {
enmDesDisp[1] = '!';
}
} else {
cout << endl << "Splash!" << endl;
}
에 생긴 때문에 실제로 아무것도 설정되어 있지 않은 상기 데이터 세트와 (다른 지점에서 수집 된) 플레이어의 입력, 검사
사용중인 언어로 질문에 태그를 답장하십시오. – Blorgbeard
ofc, sry bout 그 –