Я пишу функцию, которая рисует символы @ на экране консоли и повторяется до тех пор, пока не будет использовать уже нарисованную букву «H». В основном функция "бомба". Я написал функцию с циклом while, чтобы она могла продолжать рисовать символ до тех пор, пока пространство, на котором она рисует, не равно «H». Если он равен «H», я вставил оператор if, чтобы сломать программу. Однако даже с оператором if программа продолжает работать, когда она нарисована на букве «H».
void bomb_until_hit(int home_radius) {
int x = 0, y = 0;
while (mvinch(y, x) != 'H') {
x = get_next_bomb_x();
y = get_next_bomb_y();
mvaddch(y, x, '@' );
refresh();
sleep(1);
if (mvinch(y, x) == 'H') {
break; }
}
}
mvinch — это функция, которая в основном проверяет координаты символов перед отрисовкой нового символа.
Почему мой оператор if не работает?