Existe-t-il un moyen de stocker les x et y saisis par l'utilisateur dans un emplacement pour le tableau.Stockage des emplacements dans Array en tant que variable à modifier dans une instruction if
J'ai ceci:
if (x == 1 && y == 1)
{
board[0][0] = playerMarker;
}
Je veux faire en sorte x et y sont stockés dans une variable qui correspond au nom d'une place dans un tableau.
Mais je veux essayer de le rendre plus comme ceci:
if (currentMove == '1' && squareOne == '1')
squareOne = playerMarker;
C'est un code que je l'ai vu plus haut. Le code ci-dessous est le mien.
void playerMove(char* CurrentPlayer, char (&board)[3][3], char &playerMarker)
{
bool bValidMove;
int x,y;
// Prompt the player for a move
cout << "Player " << CurrentPlayer << "'s move:" << endl;
// Loop until we get a valid move
do
{
cout << "Please enter the row number for the place you wish to mark: " << endl;
cin >> x;
cout << "Please enter the column number for the place you wish to mark" << endl;
cin >> y;
bValidMove = true;
// Check for a valid move
if (x == 1 && y == 1)
{
board[0][0] = playerMarker;
}
else if (x == 1 && y == 2)
{
board[0][1] = playerMarker;
}
else if (x == 1 && y == 3)
{
board[0][2] = playerMarker;
}
else if (x == 2 && y == 1)
{
board[1][0] = playerMarker;
}
else if (x == 2 && y == 2)
{
board[1][1] = playerMarker;
}
else if (x == 2 && y == 3)
{
board[1][2] = playerMarker;
}
else if (x == 3 && y == 1)
{
board[2][0] = playerMarker;
}
else if (x == 3 && y == 2)
{
board[2][1] = playerMarker;
}
else if (x == 3 && y == 3)
{
board[2][2] = playerMarker;
}
else
{
cout << "Invalid Move. Try again." << endl;
bValidMove = false;
}
}
while (!bValidMove);
}
C'est le code que j'essaie de faire mien.
// Ask current player for a move
cout << currentPlayer << "'s move: ";
bool validMove;
// Loop until a valid move is chosen
do
{
char currentMove;
cin >> currentMove;
validMove = true;
// Check for a valid move
if (currentMove == '1' && squareOne == '1')
squareOne = playerMarker;
else if (currentMove == '2' && squareTwo == '2')
squareTwo = playerMarker;
else if (currentMove == '3' && squareThree == '3')
squareThree = playerMarker;
else if (currentMove == '4' && squareFour == '4')
squareFour = playerMarker;
else if (currentMove == '5' && squareFive == '5')
squareFive = playerMarker;
else if (currentMove == '6' && squareSix == '6')
squareSix = playerMarker;
else if (currentMove == '7' && squareSeven == '7')
squareSeven = playerMarker;
else if (currentMove == '8' && squareEight == '8')
squareEight = playerMarker;
else if (currentMove == '9' && squareNine == '9')
squareNine = playerMarker;
else
{
cout << "Invalid Move. Try again: ";
validMove = false;
}
} while (!validMove);
Je pourrais jurer avoir vu ce code sur 2 autres questions déjà. – karlphillip
Pourquoi diable ne ferais-tu pas simplement 'board [x-1] [y-1] = playerMarker;' à la place de ce monstrueux enchaîné if-else? Il doit y avoir quelque chose que je ne comprends pas sur le problème. – zwol
Quelle est la question posée ici? –