检查数组中的元素是否已被占用

Checking if element in array is already occupied

本文关键字:是否 元素 数组 检查      更新时间:2023-10-16

我正在制作一个双人井字游戏,玩家在 1-9 网格中输入一个数字。玩家 X 使用变量 XP 进入所需位置。玩家O也这样做。但是,我无法做出 if 语句来检查玩家是否进入了已经占用的网格位置。

#include <iostream>
using namespace std;
void showBoard(char board[], int turn, int Xp, int Op);
void winning(char board[]);

int main()
{
 int Xp=0, Op=0, turn=0;
 char board[9] = {'1','2','3','4','5','6','7','8','9'};
showBoard(board, turn, Xp, Op);
return 0;
}
void showBoard(char board[], int turn, int Xp, int Op)
{
cout << "Please enter a number on the board that is the spot you wish to use" << endl;
cout << "Board:n";
cout << board[0] << " " << board[1] << " " << board[2] << endl;
cout << board[3] << " " << board[4] << " " << board[5] << endl;
cout << board[6] << " " << board[7] << " " << board[8] << endl;
do
{
for (turn=1; turn<10; turn++)
    if (!(turn % 2) == 0)
    {
        cout << "nPlayer X's turn." << endl;
        cin >> Xp;
        if(Xp=Op) //HERE IS THE CHECKER
        {
            cout << "Spot is taken! Enter new spot: ";
            cin >> Xp;
            board[Xp-1] = 'X';
        }
        else
        {
        board[Xp-1] = 'X';
        }       //WHERE IT ENDS
cout << "Current Board:n";
cout << board[0] << " " << board[1] << " " << board[2] << endl;
cout << board[3] << " " << board[4] << " " << board[5] << endl;
cout << board[6] << " " << board[7] << " " << board[8] << endl;
winning(board);
    }
    else
    {
        cout << "nPlayer O's turn." << endl;
        cin >> Op;
        board[Op-1] = 'O';
cout << "Current Board:n";
cout << board[0] << " " << board[1] << " " << board[2] << endl;
cout << board[3] << " " << board[4] << " " << board[5] << endl;
cout << board[6] << " " << board[7] << " " << board[8] << endl;
winning(board);
    }
}while(turn<10);
cout << "No one won.n";
return;
}
将所有

内容初始化为虚拟值

#define DUMMY_CHAR '.'

并为Xp和Op都选择了字符

#define XP_CHAR 'X'
#define OP_CHAR 'O'

在你的支票中,做

if (board[Xp] != DUMMY_CHAR) // Your checker 

首先,您是在分配,而不是检查相等性。

其次,Xp == Op仍然没有任何意义。用 o 点检查 x 点?更好的方法是检查正方形是否不是X也不是O

if(board[Xp - 1] != 'X' || board[Xp - 1] != 'O')
相关文章: