我正在尝试创建一个简单的tic tac toe游戏,使用c ++作为一些功课的一部分,但难以画板。我正在尝试使用连字符(短划线)绘制基本板,如:
- - -
- - -
- - -
但我收到错误“类型'int'的参数与'char'类型的参数不兼容”。有人可以指点我正确的方向帮忙吗?
我的代码如下:
char empty = '-';
int size = 9;
int width = 3;
void showBoard(char board[]);
void showBoard(char board[])
{
for (int i = 0; i < size; i++)
{
for (int j = 0; j < width; j++)
{
board[i] = empty;
cout << board << endl;
}
cout << endl;
}
}
int main()
{
showBoard(10);
}
答案 0 :(得分:2)
您的功能正在等待char[]
,但您正在通过int
。这些类型显然是不相容的。
这应该兼容:
char board[] = "123456789";
showBoard(board);
答案 1 :(得分:2)
您应该考虑将showBoard函数拆分为2个例程:initializeBoard和showBoard。
您的initializeBoard例程应如下所示:
void initializeBoard(char board[])
{
for (int i = 0; i < size; i++)
{
board[i] = empty;
}
}
showBoard例程是:
void showBoard(char board[])
{
for (int i = 0; i < size/width; i++)
{
for (int j = 0; j < width; j++)
{
cout << board[i*width +j] << ' ';
}
cout << endl;
}
}
最后你设置这样的顶部:
char board[9];
initializeBoard(board);
showBoard(board);
答案 2 :(得分:1)
您可能希望char tiles[] = "---------"; showBoard(tiles);
代替showBoard(10)
。
此外,
board[i] = empty;
错位showBoard()
。它应该在其他地方(例如创建另一个函数)。否则showBoard()
会变得过载并使那些阅读代码的人感到困惑。更好的是,考虑使用Board
方法的show()
类。