C++井字游戏不显示X字符
C++ Tic Tac toe game not showing X character
新手程序员在这里。试图制作一个井字游戏。到目前为止一切正常,除了字符 X 没有出现。在 for 循环中,我相信我有问题,但我似乎找不到任何问题。请帮忙,任何批评都非常感谢。好坏。谢谢。
void playgame() {
std::string input;
while (true) {
std::cout << "Go player one" << std::endl;
getline (std::cin, input);
if (input != " ") {
char entered = input.c_str ()[0];
if (entered >= '1' && entered <= '9') {
int entered_num = entered - 0;
int index = entered_num - 1;
int row = index / 3;
int col = index % 3;
char grid_position = map[row][col];
if (grid_position == 'X' || grid_position == 'O') {
std::cout << "Space taken. Try again" << std::endl;
} else {
map[row][col] = (char) 'X';
break;
}
} else {
std::cout << "Only numbers 1 - 9" << std::endl;
}
} else {
std::cout << "Have to enter something, try again" << std::endl;
}
}
}
void generateGrid() {
int number = 1;
for (int x = 0; x < GRID_SIZE; x++) {
for (int y = 0; y < GRID_SIZE; y++) {
map[x][y] = std::to_string (number).c_str ()[0];
number += 1;
}
}
}
void tictacToeMap() {
std::cout << std::endl;
for (int x = 0; x < GRID_SIZE; x++) {
for (int y = 0; y < GRID_SIZE; y++) {
std::printf (" %c ", map[x][y]);
}
std::cout << std::endl;
}
}
TicTacToe() {
generateGrid ();
while (true) {
tictacToeMap ();
playgame ();
}
}
};
int main() {
TicTacToe tic;
return 0;
}
int entered_num = entered - 0;
应该是:
int entered_num = entered - '0';
要将'1'
转换为 1,您需要减去"0"(我们用来表示数字零的字符),而不是 0(数字零)。减去零不做任何事情。
相关文章:
- 字符串-C++后显示的随机字符
- 显示基于用户输入的整数的字符
- 在将字符插入 2d 字符串时如何不显示空字符?
- 为什么strlen(s)与s的大小不同,为什么cout-char显示的是字符而不是数字
- 为什么C++在将浮点数转换为字符时没有显示缩小转换错误?
- 将终端设置为原始模式:仅在按下下一个键后显示字符
- 控制台上不显示 \b 字符的输出
- C 我将如何在字符串中显示字符作为数字
- 数组索引不显示字符
- C++井字游戏不显示X字符
- 在 gcc 中显示字符数组不起作用
- 显示字符名称C 名称的标准解决方案
- 更改 Visual Studio 调试器显示字符变量的方式
- FTGL:渲染时不显示字符
- 显示字符的矢量
- C++在循环行时显示字符
- 显示字符数组C++时出现奇怪字符
- 在二维数组中显示字符
- 如何在c++中显示字符值为字符串
- 有一种方法来显示字符的矩阵作为一个图像