Ваш лучший вариант - запускать код под gdb
или другим отладчиком, чтобы вы могли точно видеть, что он делает.
Если это не вариант, проверьте свои индексы на наличие ошибок «один за другим», а затем попробуйте комментировать части (всей) программы, пока не получите самый маленький фрагмент, который все еще падает; затем опубликуйте это, если вам нужна помощь в отладке.
Кроме того, поскольку я не могу с собой поделать, вам нужно всего 2 петли, чтобы нарисовать коробку. : -)
void draw_box()
{
move(TOP_ROW-1, LEFT_COL+4);
printw("LIVES REMAINING: 3");
int i;
for (i = 0; i < RIGHT_COL; i++) { // should the limit be RIGHT_COL - LEFT_COL ?
mvaddch(TOP_ROW, LEFT_COL+i, H_LINE);
mvaddch(BOT_ROW, LEFT_COL+i, H_LINE);
}
for (i = 1; i < BOT_ROW-TOP_ROW; i++) {
mvaddch(TOP_ROW+i, LEFT_COL, V_LINE);
mvaddch(TOP_ROW+i, RIGHT_COL, V_LINE);
}
}