【发布时间】:2010-12-15 15:00:10
【问题描述】:
我正在用 C++ 编写一个 Snake 程序(使用 JNI 进行可视化),有效的移动按钮是 left(逆时针移动 90°)或 right(移动90°顺时针)。
在游戏循环的每个循环中,我从 GUI 界面检索一个键事件并根据该键事件移动我的蛇,我就是这样做的:
if(key_event != NULL){
if(key_event == LEFT){
if(moveDirection == UP || moveDirection == DOWN){
moveDirection = LEFT;
(moveDirection == UP) ? /*change turn after head*/ : /*change turn after head*/;
} //else if (moveDir == LEFT || RIGHT)
} //else if (key_event == RIGHT)
//...
}
if with: /*change turn after head*/ 是因为如果蛇在向下移动并向左移动,那么当它向上移动时,会有另一个图形用于转弯 并向左。
这会导致大量的 if 语句并且不是很可读,所以我想知道是否有一种通用的方法来解决这样的嵌套 if 语句。
编辑:
key_event 和 moveDirection 是枚举。
【问题讨论】:
标签: c++ if-statement nested