Re: [閒聊] 你板資工系請進已回收
※ 引述《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也是吃最大的那個值而已
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 124.218.223.78 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1698815703.A.F2A.html
推
11/01 13:37,
2年前
, 1F
11/01 13:37, 1F
推
11/01 13:52,
2年前
, 2F
11/01 13:52, 2F
討論串 (同標題文章)