【发布时间】:2016-12-26 17:04:47
【问题描述】:
所以,我正在使用 Javascript 制作一个点击游戏,我遇到了我需要制作很多东西,我说的是 300 个 if 语句。我完成了所有极其乏味的工作,并开始了我的游戏。
为了向您展示问题,我需要向您展示我的游戏。 所以基本上,每次我点击一个按钮,十张图片中的一张都会更新。
问题是,我为每个数字以及您可以收集的每种材料都做了大量的 if 语句。
我想知道是否有办法摆脱所有这些 if 语句,让游戏正常运行,或者有没有办法优化它。
代码: JSFiddle 大部分代码是这样的:
if (A == 18) {
document.getElementById("A1").src = "images/blocks/2A.png";
document.getElementById("A2").src = "images/blocks/2A.png";
document.getElementById("A3").src = "images/blocks/2A.png";
document.getElementById("A4").src = "images/blocks/2A.png";
document.getElementById("A5").src = "images/blocks/2A.png";
document.getElementById("A6").src = "images/blocks/2A.png";
document.getElementById("A7").src = "images/blocks/2A.png";
document.getElementById("A8").src = "images/blocks/2A.png";
document.getElementById("A9").src = "images/blocks/1A.png";
document.getElementById("A10").src = "images/blocks/1A.png";
}
如果您需要实际游戏的链接,请告诉我,因为 JSFiddle 没有我的图片。
【问题讨论】:
-
使用重构过程来设置 SRC。开关是转换和分配值的更易读的方式之一。
-
当您发现自己使用许多 if 语句时,Switch 语句通常是更好的选择
-
@Fuzzybear 我不知道那是什么,也不知道该怎么做。我是一个非常新的程序员。所以我可能需要更多的线索。
-
如何拥有一个类似
const rules = [ {rule: 18, imagePaths : [ {A1: "2A.png" }...{A10: "1A.png" } ]}, {rule: 19,.....} ]的规则数组,然后根据规则编号,从规则中读取图像路径并进行相应设置。 -
如果你发现自己复制并粘贴了一段代码一次,你应该已经停下来想想你在做什么。请不要做300次,那太疯狂了。 总是比复制粘贴更好。
标签: javascript html if-statement refactoring