これを実行すると、番号1〜9は選択時にXまたはOに変更されません。彼らはただの数である。 void関数のchar値を変更しようとすると問題はありますか? void関数を使用せずにこれを達成する方法がわかりません。文字であり、あなたが数字の1と比較しているためだC++関数内のchar変数を変更します。
#include <iostream>
#include <string>
using namespace std;
char vert = 0xB3;
char hori = 0xC4;
char cros = 0xC5;
char one = '1';
char two = '2';
char thr = '3';
char fou = '4';
char fiv = '5';
char six = '6';
char sev = '7';
char eig = '8';
char nin = '9';
char a;
void board()
{
system("cls");
cout << one << vert << two << vert << thr << endl
<< hori << cros << hori << cros << hori << endl
<< fou << vert << fiv << vert << six << endl
<< hori << cros << hori << cros << hori << endl
<< sev << vert << eig << vert << nin << endl;
}
void player1pick()
{
cout << "First Player's turn. Please pick a box: ";
cin >> a;
if(a == 1)
{
one = 'X';
}
if(a == 2)
{
two = 'X';
}
if(a == 3)
{
thr = 'X';
}
if(a == 4)
{
fou = 'X';
}
if(a == 5)
{
fiv = 'X';
}
if(a == 6)
{
six = 'X';
}
if(a == 7)
{
sev = 'X';
}
if(a == 8)
{
eig = 'X';
}
if(a == 9)
{
nin = 'X';
}
board();
}
void player2pick()
{
cout << "Second Player's Turn. Please pick a box: ";
cin >> a;
if(a == 1)
{
one = 'O';
}
if(a == 2)
{
two = 'O';
}
if(a == 3)
{
thr = 'O';
}
if(a == 4)
{
fou = 'O';
}
if(a == 5)
{
fiv = 'O';
}
if(a == 6)
{
six = 'O';
}
if(a == 7)
{
sev = 'O';
}
if(a == 8)
{
eig = 'O';
}
if(a == 9)
{
nin = 'O';
}
board();
}
int main()
{
board();
player1pick();
player2pick();
player1pick();
player2pick();
player1pick();
player2pick();
player1pick();
player2pick();
player1pick();
return 0;
}
彼らが変わる直前と直後に「1」、「2」を印刷してみましたか? – cctan