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

标签 c++ tic-tac-toe

您好,我是初学者,在我尝试在 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/

相关文章:

c++ - 使用集合计算素数,C++

c++ - 将新值写入数组

javascript - 如何在不使用 jquery 的情况下使用 Angular 在 div 中添加内容

machine-learning - Tic Tac Toe 的 Q 学习算法

c++ - :c++ template function 中的错误

c++ - 内部类的模板编译错误

C++ 模板<运算符>

javascript - 需要帮助在 p5.js 中为 Tic Tac Toe 绘制 X

c# - 井字游戏递归算法

python - Pygame 井字游戏逻辑?我该怎么做