【发布时间】:2015-03-17 18:02:58
【问题描述】:
我正在编写一个函数,它将@ 字符绘制到控制台屏幕上,并重复自身直到它绘制到已经绘制的“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 语句不起作用?
【问题讨论】:
-
为什么要给
mvinch打两次电话?