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