如何写出多个条件?

时间:2014-08-21 23:51:30

标签: javascript

我正在尝试为学校作业制作一个简单的基于javascript文本的冒险游戏。我的地图是3x3网格,位置称为mapLocation。玩家在文本框中键入命令,然后游戏根据命令运行。其中一个命令是&#34; north&#34;应该设置mapLocation -= 3的命令。对于玩家什么时候可以北上,我应该有多种条件。如果玩家在mapLocation4,他就不能向北,如果他们在mapLocations 012他们不能向北。如果播放器位于mapLocation3但尚未使用可以从mapLocation 4获取的卡片,则他们无法前往北方。玩家应该向北走的唯一方法是,如果他们在mapLocation 5 7mapLocations。 (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}}

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)块。