Java/android仍然是一個新手,因此試圖找出編寫多級if語句的最佳方法。我想要做的是一個戰鬥系統,需要檢查如果player/npc是活着的。如果他們還活着,它會檢查他們是否獲得了致命一擊。如果他們沒有重擊,那麼會看到他們是否擊中或錯過。If語句中的語句else
combat = mydbhelper.getCombat();
startManagingCursor(combat);
if (playerCurHp == 0) {
combat.moveToPosition(11);
npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
} else {
if (playerCritFlag.equals("Critical")) {
combat.moveToPosition(2);
playerCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
} else {
if (playerHitFlag.equals("Hit")) {
combat.moveToPosition(1);
playerCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
}
if (playerHitFlag.equals("Miss")) {
combat.moveToPosition(3);
playerCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
}
}
}
if (npcCurHp == 0) {
combat.moveToPosition(10);
npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
} else {
if (npcCritFlag.equals("Critical")) {
combat.moveToPosition(5);
npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
} else {
if (npcHitFlag.equals("Hit")) {
combat.moveToPosition(4);
npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
}
if(npcHitFlag.equals("Miss")) {
combat.moveToPosition(6);
npcCombatStory = combat.getString(combat.getColumnIndex(dbhelper.KEY_COMBATDESC));
}
}
}
是我在用什麼。當我將if語句分開時正在工作。但它會檢查每一個,並做我不需要的動作(如果他們擊中,拉弦,如果暴擊拉另一個,那麼如果死拉再次)。嘗試在找到匹配的「標誌」時停止。如果玩家擊中它,當我進行擲骰時,會將標記設置爲「點擊」,如下面的代碼所示。
Random attackRandom = new Random();
int attackRoll = attackRandom.nextInt(100);
totalAtt = attackRoll + bonusAttack + weaponAtt + stanceAtt;
Random defensiveRandom = new Random();
int defenseRoll = defensiveRandom.nextInt(100);
npcDef = defenseRoll + npcDodge + npcBonusDodge;
if (totalAtt > npcDef) {
playerHitFlag = "Hit";
playerDamage();
} else {
playerHitFlag = "Miss";
npcAttack();
}
在需要這些playerCombatStory和npcCombatStory串並使用它們的setText顯示發生了什麼作戰的那個回合玩家結束。
您的代碼將是一個更容易閱讀和遵守,如果你使用一個標準的縮進風格。通常情況下,結束塊的'}'總是自己排成一行。 – 2012-04-15 23:17:39
這裏沒有問題。如果你想要改善工作代碼的建議,請嘗試codereview.se – 2012-04-15 23:21:36