gpt4 book ai didi

C++ 二维阵列乒乓球板

转载 作者:太空宇宙 更新时间:2023-11-04 07:16:45 27 4
gpt4 key购买 nike

我找不到我的错误是我的代码。我正在尝试创建一个“板”并以 X 和 Y 为坐标在其上绘制一些东西。问题是我要绘制的字符出现了不止一次。这是代码:

class Board
{
public:

void fillBoard()
{
for (int i = 0; i < 22; i++)
{
for (int k = 0; k < 78; k++)
{
board[i][k] = ' ';
}
}
}

void drawBoard()
{
for (int i = 0; i < 22; i++)
{
for (int k = 0; k < 78; k++)
{
cout<<board[i][k];
}
cout<<"\n";
}
}

void addView(int width, int height, char img, int tallness = 0)
{
/// board[height][width] = img;
for (int i = 0; i <= tallness; i++, height++)
{
board[height][width] = img;
}
}

private:
char board[78][22];
};


int main()
{
Board board;
board.fillBoard();

///board.addView(x, y, 'O');
board.addView(0, 10, '|', 5);
board.drawBoard();

return 0;
}

如您所见, Racket 出现了 4 次。我希望它只出现一次,在给定的坐标处。我的错误是什么?

最佳答案

Steve Cox 已经指出您正在对数组进行反向索引。这:

for (int i = 0; i < 22; i++)
{
for (int k = 0; k < 78; k++)
{
board[i][k] = ' ';
}
}

可以在数组 board[22][78] 上工作,但是您声明的是 board[78][22]

关于C++ 二维阵列乒乓球板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24002796/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com