基本上需要發生的是它需要檢查Champion的類型,並將其與挑戰進行比較以確定它是否確實可以做到這一挑戰,這很難解釋...... 嚮導能戰鬥「神奇」和「神祕」 戰士就可以打「打」和「神祕」 龍可以打「打」和「神祕(僅當龍會談)」JAVA AND OR和IF
我來了這是...
public boolean canFight(String nme, int id)
{
Challenge chal = getChallengeObj(id);
Champion champ = getChampionObj(nme.toLowerCase());
if(champ.getType().equals("wizard") && (chal.getTypeAsString().equals("magic") || chal.getTypeAsString().equals("fight"))) {
return true;
} else if(champ.getType().equals("warrior") && (chal.getTypeAsString().equals("fight") || chal.getTypeAsString().equals("mystery"))) {
return true;
} else if((champ.getType().equals("dragon") || champ.getType().equals("dragon") && champ.isMystery()) && (chal.getTypeAsString().equals("fight") || chal.getTypeAsString().equals("magic"))) {
return true;
} else {
return false;
}
}
我感謝任何人去幫助我,我願意接受任何迴應,甚至投訴代碼是多麼複雜!
(據檢查一切toLowerCase()順便說一句,萬一這個心不是清楚的代碼,因爲它是在方法是所謂的在不同的班級。
謝謝!
編輯
的問題是在於,它使返回false,我是一個大學二年級的學生,所以如果你能給你的意思是你的答案是什麼的例子,將不勝感激:) 再次感謝
這是什麼問題? – Tyler
你應該看看switch語句 – Katana24
注意:爲''wizard「',''magic」',''warrior'',''fight''和'「mystery」創建常量會更好' – mdewitt