我正在尝试为学校作业制作一个简单的基于javascript文本的冒险游戏。我的地图是3x3网格,位置称为mapLocation
。玩家在文本框中键入命令,然后游戏根据命令运行。其中一个命令是" north"应该设置mapLocation -= 3
的命令。对于玩家什么时候可以北上,我应该有多种条件。如果玩家在mapLocation4
,他就不能向北,如果他们在mapLocations
0
,1
,2
他们不能向北。如果播放器位于mapLocation3
但尚未使用可以从mapLocation
4
获取的卡片,则他们无法前往北方。玩家应该向北走的唯一方法是,如果他们在mapLocation
5
7
和mapLocations
。 (6和8不存在mapLocation
。)或者如果他们在3
mapLocation0
中使用了该卡,则允许他们转到blockedPathMessage
。<登记/>
这是我的&#34; north&#34;的非功能性代码。命令。
mapLocation
只是玩家在使用&#34; north&#34;命令if
中不支持&#34; north&#34;。
这里是&#34; north&#34;的代码。命令。我不确定如何为case "north":
if(mapLocation >= 3 && mapLocation != 4 && mapLocation != 3) {
mapLocation -= 3;
}
else if(mapLocation = 4) {
gMessage = blockedPathMessage[mapLocation];
mapLocation = 4;
}
else if(mapLocation = 3 && door === false) {
gMessage = blockedPathMessage[mapLocation];
mapLocation = 3;
}
else if(mapLocation = 3 && door === true) {
mapLocation -= 3;
}
else {
gMessage = blockedPathMessage[mapLocation];
}
语句设置多个条件。在这种情况下使用switch语句会更好吗(不知道该怎么做)。如果你要纠正我或建议我,请只使用javascript和html,因为他们是我对平庸理解的唯一语言。
{{1}}
答案 0 :(得分:0)
你可能想要一个&#34;休息;&#34;在代码块的末尾。否则,还将执行以下情况。
您的代码包含错误。 else if(mapLocation = 4)
无效;它应该是==
。您在每个else if
声明中都有同样的错误。
您可以非常简化代码。举个例子,if(mapLocation >= 3 && mapLocation != 4 && mapLocation != 3)
。那说&#34;如果mapLocation不小于3,并且mapLocation不是4,并且mapLocation不是3,那么......&#34;。好吧,如果mapLocation不能小于3且不能为3,那么你可以将其表示为mapLocation > 3 && mapLocation != 4
。如果mapLocation是一个整数,则下一个大于3的整数是4,因此您可以将其表示为mapLocation > 4
。
此外,你有&#34;如果mapLocation为3且门为假,则... mapLocation = 3&#34;。由于mapLocation必须为3才能触及该行,因此您不需要它。此外,因为else语句调用gMessage = blockedPathMessage[mapLocation];
,所以可以消除else if(mapLocation == 3 && door === false)
块。