在阅读下面之前,请注意我最近才开始学习Javascript。
我有兴趣制作一个基于文本的生存游戏。当我试图从整体中减去一个随机数量的幸存者时,我试图写出我认为的结果,“如果数字是0.50 - 1.00就会发生突袭,如果突袭成功,该团队将失去一个随机数量的幸存者。 1,然而有许多幸存者。“但是,当我写这个时,我得到一个ESLint错误,说明:错误:解析错误:如果我不知道如何重写它,或者如何重新格式化工作,如果它完全可能,则会出现意外令牌。问题出现在下面的代码中,第10,11和12行。
//constants
var EVENT_CHANCE = 0.15;
var EVENT_TYPE = 0.50;
var FOOD_CONSUMPTION = FOOD_CONSUMPTION;
var MATERIALS_CONSUMPTION = 1;
var ENEMY_STRENGTH = 10;
var SURVIVOR_STRENGTH = 1;
//equations
this.FOOD_CONSUMPTION = (this.food - this.surviors);
this.raid = if ( EVENT_TYPE > 0.50);{
this.survivors - Math.floor((Math.random() * this.surviors) + 1);
};
如果我遗漏任何重要信息,请告诉我
注意:我从游戏开发堆栈交换中复制了这篇文章,因为他们告诉我它更像是一个堆栈溢出问题,因为它更多地与JS相关,而不是游戏开发。
您不能将语句用作作业的右侧,这是您在此处尝试执行的操作:
this.raid = if ( EVENT_TYPE > 0.50);{
this.survivors - Math.floor((Math.random() * this.surviors) + 1);
};
如果你想将this.raid
设置为EVENT_TYPE > 0.50
的结果,你可以直接这样做:
this.raid = EVENT_TYPE > 0.50;
如果你想在分支中使用它,你可以使用if
测试this.raid
:
this.raid = EVENT_TYPE > 0.50;
if (this.raid) {
this.survivors - Math.floor((Math.random() * this.survivors) + 1);
}
(我还修正了一个拼写错误,第二个survivors
错过了一个v
。但是仍然有一个问题我不知道如何解决:它计算一个值而不将它存储在任何地方。这不是JavaScript中的错误,但它可能不是你想要的。你可能意味着-=
而不是-
。)
请注意,最初在那个;
的if
都不属于那里。你没有把;
放在()
之后加入if
,并且你没有在流量控制声明(;
,if
等)附带的块之后加上while
。
const thing = condition ? ifTrue : ifFalse;
或者为您的代码:
this.raid = EVENT_TYPE > 0.50 ?
this.survivors - Math.floor((Math.random() * this.surviors) + 1) :
null;
//replace the null with what you want the variable to be if the condition is false