플레이어가 1-9 그리드에 숫자를 입력하는 두 사람의 tic tac toe 게임을 만들고 있습니다. 플레이어 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;
}
가'에 배열에 모든 것을 초기화 '그것의 다음 경우, 0''''은 'hasn 촬영되었습니다. –
'if (Xp = Op)'나는 그것이 당신이 생각하는 것을하지 않는다는 것을 확신합니다. try'==' – WhozCraig
또한 두 플레이어 모두 동일한 코드를 사용하십시오. – Deduplicator