Я использую Ncurses, чтобы «нарисовать» городской горизонт на основе файла.Если горизонт города не соответствует ширине экрана пользователя, я должен заполнить оставшуюся часть экрана на уровне земли точкой '_'.Пятно на уровне земли - это максимальное значение экрана - 2. Когда я пытаюсь заполнить остальную часть экрана, кажется, что между концом файла и заполнением экрана всегда остается одна пустая точка.Любая помощь будет потрясающей.
Создание карты (заполнение экрана является нижней частью цикла):
void makemap( map * game ){
int ychange;
int flag = 0;
initscr();
cbreak();
noecho();
getmaxyx( stdscr, maxy, maxx );
mvprintw(0, maxx - (maxx - 4), "Enter 'q' to quit at end of attack, or control-C");
refresh();
for( size_t i = 0; i < game->size; i++ ){
ychange = game->layout[i] - game->layout[i+1];
if(game->layout[i] > maxheight)
maxheight = game->layout[i];
if(game->layout[i+1] > maxheight)
maxheight = game->layout[i+1];
if( ychange == 0 ){
mvprintw(maxy - game->layout[i], i, "_");
refresh();
}
else if( ychange < 0 ){
for( int c = 0; c < game->layout[i+1]-2; c++ ){
mvprintw(maxy - 2 - c , i, "|");
refresh();
}
}
else if( ychange > 0 ){
for( int c = 0; c < game->layout[i] - 2; c++ ){
mvprintw(maxy - 2 - c, i ,"|");
refresh();
}
}
}
if( (int)game->size < maxx ){
if( !(game->layout[game->size] == 2) ){
flag = 1;
for( int i = 0; i < game->layout[game->size] - 2; i++ ){
mvprintw(maxy - 2 - i, game->layout[game->size] + 1, "|");
refresh();
}
}
if( flag == 1 ){
for( int i = game->size; i <= maxx; i++ ){
mvprintw(maxy - 2, i, "_");
refresh();
}
}
else{
for( int i = game->size; i < maxx; i++ ){
mvprintw(maxy - 2, i, "_");
refresh();
}
}
}
}
Это вывод функции makemap.Не обращайте внимания на любые трубы в середине экрана (те, которые изображают падающие ракеты).По сути, в правом нижнем углу есть одно пустое место, которое я не могу исправить.Это промежуток между тем, что кажется концом файла, и тем, что я заполняю остальную часть экрана.Я пытался изменить цикл for на другие размеры, но он не работает.
https://i.stack.imgur.com/G8u9q.png