Я не могу найти, что моя ошибка - мой код. Я пытаюсь создать "доску" и нарисовать что-то на ней с помощью X и Y в качестве координат. Проблема в том, что char, который я хочу рисовать, появляется не один раз. Вот код:
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;
}
Итак, как вы видите, весло появляется 4 раза. Я хочу, чтобы он появлялся только один раз, при заданных координатах. Какая у меня ошибка?
Стив Кокс уже указал, что вы индексируете массив назад. Эта:
for (int i = 0; i < 22; i++)
{
for (int k = 0; k < 78; k++)
{
board[i][k] = ' ';
}
}
Будет работать на board[22][78]
массива board[22][78]
, однако вы объявляете board[78][22]