我在写C一个蛇程序++(可视化JNI)和有效移动按钮要么左(移动90°逆时针)或右(顺时针移动90°)。嵌套if语句C++
在游戏圈我检索一个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)
//...
}
的,如果用:/*change turn after head*/
是因为如果蛇是移动下,去离开有另一个图形的转弯,然后它什么时候了,去离开。
这导致了很多if语句,并且不是很可读,所以我想知道是否有一种通用的方法来解决这样的嵌套if语句。编辑:
key_event和moveDirection是枚举。
基本上这是walkingTarget和Mark B的答案的组合,这肯定会提高可读性,谢谢! – Aerus 2010-12-15 15:15:39