所以我工作的一个井字棋游戏,我输入功能我得到的球员作出存储在一个二维数组的整数的举动,输入使用参考指针的一维数组得到到二维数组中的位置。使用指向2D数组的指针的一维数组?
但我的问题是,当我似乎通过使用指针来设置多维数组广场的东西的价值,没有任何反应。
这里是输入功能:
void Game::input(Board b){
int *spots[9]; // Possible spots for the input
bool validInput = false;
spots[0] = &b.board[2][0];
spots[1] = &b.board[2][1];
spots[2] = &b.board[2][2];
spots[3] = &b.board[1][0];
spots[4] = &b.board[1][1];
spots[5] = &b.board[1][2];
spots[6] = &b.board[0][0];
spots[7] = &b.board[0][1];
spots[8] = &b.board[0][2];
redo:
cout << ">> " << endl;
int input; // Input
cin >> input; // Get the input
validInput = cin;
if(!validInput){
cout << "Numbers only please!" << endl;
cin.clear();
while(cin.get() != '\n');
goto redo;
}
if(input > 9 || input <= 0){
cout << "Invalid move!" << endl;
goto redo;
}
input--; // Subtract 1 for array location
if(*spots[input] != 0){
cout << "Square is already being used!" << endl;
goto redo;
}
*spots[input] = 1;
}
现在,说我输入数字7,这应该设置b.board [0] [0]为1然而,这似乎并没有发生。当我以后运行一个单位案例时,board [0] [0]似乎没有设置为1,并且它不反映在我的数组中。我在这里搞点关于指针的东西吗?
你应该养成使用遍历'goto'的习惯。此外,你没有通过参考通过董事会,你传递了一些随机副本。 – chris 2012-07-27 20:38:56
您可以选择使用矢量,地图还是for-loop? – andre 2012-07-27 20:41:04
不要紧,这已经解决了,不敢相信我错过了参考。 – Annabelle 2012-07-27 20:41:38