C++ - 基本井字游戏程序打印空白屏幕
C++ - Basic Tic-Tac-Toe Program prints Blank Screen
我正在用 C++ 开发一个基本的井字游戏,因为我是初学者,但是这个函数打印出一个乱七八糟的东西,通常是一个空白屏幕或者一个乱七八糟的版本人物。
代码:
#include <iostream>
#include <string>
void printboard()
{
std::string array[9] = {"O","O","O","O","O","O","O","O","O"};
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[2]; std::cout << " | "; std::cout << array[4]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " "; std::cout << array[5]; std::cout << " | "; std::cout << array[1]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " "; std::cout << array[7]; std::cout << " | "; std::cout << array[9]; std::cout << " | "; std::cout << array[8]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << " | | " << std::endl;
}
这似乎有效:
#include <iostream>
#include <string>
void printboard()
{
std::string array[9] = { "O","O","O","O","O","O","O","O","O" };
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[2]; std::cout << " | "; std::cout << array[4]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[5]; std::cout << " | "; std::cout << array[1]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[7]; std::cout << " | "; std::cout << array[6]; std::cout << " | "; std::cout << array[8]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
}
int main()
{
printboard();
std::system("Pause");
return 0;
}
我注意到您的原始代码引用了大小为 9 的数组的 [9],它超出了范围(该数组中的最后一个条目将是 [8]),并且您在对齐时包含了太多空格你的盒子,所以这些值有点偏差。希望这有帮助。
我正在用 C++ 开发一个基本的井字游戏,因为我是初学者,但是这个函数打印出一个乱七八糟的东西,通常是一个空白屏幕或者一个乱七八糟的版本人物。 代码:
#include <iostream>
#include <string>
void printboard()
{
std::string array[9] = {"O","O","O","O","O","O","O","O","O"};
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[2]; std::cout << " | "; std::cout << array[4]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " "; std::cout << array[5]; std::cout << " | "; std::cout << array[1]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " "; std::cout << array[7]; std::cout << " | "; std::cout << array[9]; std::cout << " | "; std::cout << array[8]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << " | | " << std::endl;
}
这似乎有效:
#include <iostream>
#include <string>
void printboard()
{
std::string array[9] = { "O","O","O","O","O","O","O","O","O" };
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[2]; std::cout << " | "; std::cout << array[4]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[5]; std::cout << " | "; std::cout << array[1]; std::cout << " | "; std::cout << array[3]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
std::cout << "----|-----|----" << std::endl;
std::cout << " | | " << std::endl;
std::cout << " "; std::cout << array[7]; std::cout << " | "; std::cout << array[6]; std::cout << " | "; std::cout << array[8]; std::cout << " " << std::endl;
std::cout << " | | " << std::endl;
}
int main()
{
printboard();
std::system("Pause");
return 0;
}
我注意到您的原始代码引用了大小为 9 的数组的 [9],它超出了范围(该数组中的最后一个条目将是 [8]),并且您在对齐时包含了太多空格你的盒子,所以这些值有点偏差。希望这有帮助。