Okie dokie, 여기에 처음 게시하는 것이므로 형식이 좋지 않으면 용서해주세요. 저는 현재 두 번째 C ++ 클래스에 있으며 1D 배열을 사용하여 tic tac toe 게임을 만드는 것이 과제였습니다. 우리 교수가 원했던 방식은 배열이 정수보다는 문자를 사용하도록 요구했습니다. 게임에 대한 코드가 작동하지만 누군가이기거나 동점을 얻은 후에 새로운 게임을 플레이 할 수 있기를 원합니다. 이렇게하려면 현재 내 배열에 저장된 X와 O를 제거해야합니다. 내 문제는 문자 값을 적절하게 다시 할당하는 루프를 만드는 것입니다.
나는 배열의 개념에 완전히 익숙하지 않으며, 내 이해는 여전히 미약합니다. 이것을 단순화 할 무언가를 완전히 놓치고 있다면 제발 도와주세요! 현재는 숫자가 문자로 해석되어야한다는 것을 모르기 때문에 임의의 ASCII 문자 만 인쇄합니다. 어떤 아이디어? :)
업데이트 : 값을 재 할당하는 무차별 대입 방법을 찾았지만 더 나은 방법이있는 것 같습니다.
// This is the initial board setup
char theBoard[SIZE] = {'0', '1', '2', '3', '4', '5', '6', '7', '8'};
// It is re-assigned values of 'X's and 'O's throughout the game
// By the end it looks more like : {X, O, X, O, O, X, X, X} if you can imagine
// My brute force method looks like this:
void initializeBoard(char theBoard[], int SIZE)
{
theBoard[0] = '0';
theBoard[1] = '1';
theBoard[2] = '2';
theBoard[3] = '3';
theBoard[4] = '4';
theBoard[5] = '5';
theBoard[6] = '6';
theBoard[7] = '7';
theBoard[8] = '8';
}
// And the for loop I was trying to use looked like this:
void initializeBoard(char theBoard[], int SIZE)
{
for(int i = 0; i < SIZE; i++)
{
theBoard[i] = i;
}
}
C ++에서 0
와 '0'
다른 두 가지입니다. 하나는 정수 값 0이고 하나는 정수 값 48이며 문자 '0'에 대한 ASCII 코드와 동일합니다.
작성하려는 루프는 다음과 같습니다.
void initializeBoard(char theBoard[], int SIZE)
{
for(int i = 0; i < SIZE; i++)
{
theBoard[i] = '0' + i;
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다