※ 引述《bmtuspd276b (這啥)》之銘言:
: 推 sustainer123: 忘記寫break就G了 助教都說推薦if else 11/01 10:54
: → Wardyal: 我也都寫if else捏 11/01 10:55
: 所以當年yandere dev(病嬌模擬器那位)這張圖
: https://imgur.com/LyjxLAL.png
: 一堆人認為吐槽點在用大量的if else
: 但其實問題在用字串去做判斷是不是? 不懂程式
用字串做判斷很正常,只是整段code的重複度太高
我的話可能會這樣寫,把這個
if (this.Witnessed == "")
包成一個function
private boolean containsTarget(String witnessed) {
String teacherReaction = "Teacher " + witnessed + " Reaction";
if (witnessed.contains("Insanity") {
this.Subtitle.UpdateLabel(teacherReaction, 1, (float)6);
this.GameOverCause = witnessed;
return true;
}
if (witnessed.contains("Weapon")) {
...
}
if (witnessed.contains("Blood")) {
...
}
return false;
}
因為看起來遇到多個原因時,順位是從Insanity->Weapon->Blood下去
所以就按照這個順序下去做檢查
不過我是覺得乾脆用Map把所有的reaction都設置一個權重
就讓witnessed等於最大的那個reaction就好
反正他Subtitle.UpdateLabel和GameOverCause也是吃最大的那個值而已