gpt4 book ai didi

c++ - 停留在 TicTacToe 检查移动是否有效 C++

转载 作者:行者123 更新时间:2023-11-27 23:27:54 24 4
gpt4 key购买 nike

您好,我是初学者,在我尝试在 unity3d 中完成它之前,我正在制作一个控制台井字游戏 C++,但这是另一个故事,我被困在 get_move1() 函数上,至于我如何检查是否该数组有一个 1 或一个 -1 如果它有那么它是完整的并且该函数应该说在一个无效的移动中,除了 2d 数组之外可以用任何其他方式完成,我的程序只是挂起没有错误,我还没有工作其他功能还没有,所以它们现在只是空的。感谢您的帮助。

*init_board and board_state array
get_move function to determine if the move is legal if it is then
fill board_state array and show X or O on the board with another array
check_win
*/

/* layout of board
cout << " 1 | 2 | 3 \n"
" | | \n"
" - - - - - - \n"
" 4 | 5 | 6 \n"
" | | \n"
" - - - - - - \n"
" 7 | 8 | 9 \n"
" | | \n" << endl;

cout << " " <<board_array[0] <<" | " << board_array[1] << " | " << board_array[2] << "\n"
" | | \n"
" - - - - - - \n"
" " <<board_array[3] <<" | " << board_array[4] << " | " << board_array[5] << "\n"
" | | \n"
" - - - - - - \n"
" " <<board_array[6] <<" | " << board_array[7] << " | " << board_array[8] << "\n"
" | | \n" << endl;

*/

#include <iostream>

using namespace std;

//declare global variables

int board_state[3][3] = { {0,0,0}, //here the 2d array is initialized and set to 0 for empty
{0,1,0},
{0,0,0} };

char gui_state[3][3]; //2d array to represent the X and O on the board




//declare functions

void init_board();
void get_move1();



int main()
{
init_board();
get_move1();
}

void init_board()
{
cout << " 1 | 2 | 3 \n"
" | | \n"
" - - - - - - \n"
" 4 | 5 | 6 \n"
" | | \n"
" - - - - - - \n"
" 7 | 8 | 9 \n"
" | | \n"
" **Tic Tac Toe ** " << endl;
}

void get_move1() // In this function player's moves are taken and make sure they are valid if so update arrays
{
int player1_move;
int i;
int j;
bool invalid_move;


cout << "Player 1 enter move" << endl;
cin >> player1_move;

//need to check if the players's move is valid

for (i=0; i < 3; i++) //if array is 1 or -1 then move is invalid
{
for(j = 0; j < 3; i++)
if (board_state[i][j] == 1 || board_state[i][j] == -1)
{
invalid_move = true;
}


} cout << "You entered an invalid move" << endl;

}

void get_move2()
{

}

void game_state()
{

}

void check_win()
{

}

所以我决定暂时使用一维数组来保持简单

int board_state[9] = {0,1,0,0,0,0,0,0,0};  //here the 1d array is initialized and set to 0 for empty

void get_move1() // In this function player's moves are taken and make sure they are valid if so update arrays
{
int player1_move;
int array_index;
int player1_fill = 1;


cout << "Player 1 enter move" << endl;
cin >> player1_move;

//need to check if the players's move is valid

array_index = player1_move -1;

if (board_state[array_index] == 1 || board_state[array_index] == -1)
{
cout << "Invalid move" << endl;
}

else board_state[array_index] = player1_fill;

谢谢大家的帮助。

最佳答案

这一行:

for(j = 0; j < 3; i++)

应该是:

for(j = 0; j < 3; j++)

关于c++ - 停留在 TicTacToe 检查移动是否有效 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8016951/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com