[英]How to write multiple conditions?
我正在尝试制作一个简单的基于JavaScript文本的冒险游戏,用于学校作业。 我的地图是3x3网格,位置称为mapLocation
。 玩家在文本框中输入命令,然后游戏根据该命令运行。 这些命令之一是“北”命令,该命令应该设置mapLocation -= 3
。 关于玩家何时可以向北走,我应该有多个条件。 如果玩家在mapLocation4
他不能北上,如果他们在mapLocations
0
, 1
, 2
,他们不能去北方。 如果玩家在mapLocation3
但没有使用他们可以从mapLocation
4
拿起的卡,则他们不能向北走。 玩家应该往北走的唯一方法是,如果他们位于mapLocation
的5
和7
。 (6和8不作为mapLocations
存在。),或者如果他们已在mapLocation
3
使用该卡,则允许他们转到mapLocation0
。
这是我的“北方”命令的非功能代码。 blockedPathMessage
只是玩家会收到一条消息,如果他们在使用“北”命令mapLocation
不支持“北”。
这是我为“北方”命令准备的代码。 我不确定如何为if
语句设置多个条件。 在这种情况下使用switch语句会更好(不确定如何执行此操作)。 如果您要纠正我或建议我,请仅使用javascript和html,因为它们是我仅有的中等理解水平的唯一语言。
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];
}
您可能想要“休息”; 在代码块的末尾。 否则,将执行以下情况。
您的代码包含错误。 else if(mapLocation = 4)
无效; 它应该是==
。 您在else if
语句中也有相同的错误。
您可以简化很多代码。 以if(mapLocation >= 3 && mapLocation != 4 && mapLocation != 3)
为例。 这就是说“如果mapLocation不小于3,并且AND mapLocation不是4,并且mapLocation不是3,那么...”。 好吧,如果mapLocation不能小于3并且不能为3,那么可以将其表示为mapLocation > 3 && mapLocation != 4
。 如果mapLocation是一个整数,则下一个大于3的整数是4,因此可以将其表示为mapLocation > 4
。
此外,您还有“如果mapLocation为3,而door为false,则... mapLocation = 3”。 由于mapLocation必须为3才能到达该行,因此您不需要它。 此外,因为else语句调用gMessage = blockedPathMessage[mapLocation];
,则可以消除else if(mapLocation == 3 && door === false)
块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.