Re: [闲聊] 你板资工系请进

楼主: kerycheng (kk)   2023-11-01 13:15:00
※ 引述《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也是吃最大的那个值而已
作者: sustainer123 (caster)   2023-11-01 13:37:00
大师
作者: bmtuspd276b (这啥)   2023-11-01 13:52:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com