尝试使用字符数组显示带有两位数的 3x3 表

问题描述

我正在为课堂编写这个程序,我似乎无法弄清楚如何使我的 Char 数组打印值大于 1-9,否则玩家将不得不进行数学运算才能计算出他们想要的位置。我觉得这破坏了游戏的乐趣。但是,我对 C++ 比较陌生,我似乎无法让它工作。任何帮助表示赞赏,这是阵列,这是程序。

类 TTTBoard { 公开:

void PrintBoard();
char board[9] = { '1','2','3','4','5','6','7','8','9' };
char board2[9] = { "10","11","12","13","14","15","16","17","18"};
char board3[9] =  { "19","20","21","22","23","24","25","26","27" };
int WinXY();
int WhosMove();
void Update();
int gameWin();
void AI();
void UserSelectASlot();
bool gameend();

};

我在源文件中声明了我的函数,但是每当我尝试 char * board2[9]....etc 它给我许多函数错误,说我无法为 *char 分配 int 值?

这是 UserSelectASlot() 中的一段代码功能

else if (Spot == 10 && game.board2[0] != 'O' && game.board2[0] != 'X')
    {
        game.board2[0] = 'X';
    }

我也试过做 char string board[9][19] 但是由于错误,它不起作用,超过 100,所以它停止计数。

我上面第一个代码的当前错误是“初始化程序太多” 任何帮助是极大的赞赏! 谢谢!

解决方法

第二个和第三个字符数组实际上是字符串数组(“) 所以将声明更改为:

const char* 数组[9]

关于您收到的错误,我的猜测是您将 array[i] 传递给了一个需要字符的函数,因此将其替换为 array[i][0],array[i][1] 那些是 2 个字符在字符串中。

顺便说一句, 您不需要处理字符,但需要处理数字、整数,并且在打印函数中您可以将 int 值映射到正确的字符。