次の関数の
void display()
{
for (int i = 0; i < 8; i++)
{
for (int j = 0; j < 8; j++)
{
if (board[i][j] < 84 && (i+j)%2 == 0)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0x70);
else if (board[i][j] < 84 && (i+j)%2 == 1)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0xc0);
else if (board[i][j] > 97 && (i+j)%2 == 0)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0x7c);
else if (board[i][j] > 97 && (i+j)%2 == 1)
SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), 0xc7);
cout << " " << toupper(board[i][j]) << " ";
}
cout << endl;
}
}
char board[8][8] の文字を返す代わりに、整数を返すので、出力は次のようになります
82 78 66 81 75 66 78 82
80 80 80 80 80 80 80 80
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
32 32 32 32 32 32 32 32
80 80 80 80 80 80 80 80
82 78 66 81 75 66 78 82
期待される出力ではなく
R N B Q K B N R
P P P P P P P P
P P P P P P P P
R N B Q K B N R
また、char a = board[i][j]; を宣言しようとしました。cout << toupper(a); 変数の型が文字であることを確認しようとして、同じ出力を受け取りました。
これはクラスの割り当てなので、あまり助けを期待していません。関数がcharの代わりに整数を返す理由を知りたいので、将来の参考のために自分の間違いが何であるかを知りたいのですが、Googleはあまり役に立ちませんでした。それはタッパーのある種の範囲の問題ですか?