繁体   English   中英

如何写多个条件?

[英]How to write multiple conditions?

我正在尝试制作一个简单的基于JavaScript文本的冒险游戏,用于学校作业。 我的地图是3x3网格,位置称为mapLocation 玩家在文本框中输入命令,然后游戏根据该命令运行。 这些命令之一是“北”命令,该命令应该设置mapLocation -= 3 关于玩家何时可以向北走,我应该有多个条件。 如果玩家在mapLocation4他不能北上,如果他们在mapLocations 012 ,他们不能去北方。 如果玩家在mapLocation3但没有使用他们可以从mapLocation 4拿起的卡,则他们不能向北走。 玩家应该往北走的唯一方法是,如果他们位于mapLocation57 (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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM