我在寫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