在阅读下文之前,请注意我最近才开始学习Javascript。
我有兴趣制作基于文本的生存游戏。当试图从整体中减去一个随机数的幸存者时,我试图写出我认为的内容,“如果数字为0.50 - 1.00就会发生突袭,如果raid成功,该组会丢失一个随机数幸存者介于1之间,然而有很多幸存者。“然而,当我写这篇文章时,我得到一个ESLint错误,说明:错误:解析错误:意外令牌如果我不知道如果可能的话,我知道如何重写它,或者如何重新格式化它。问题出现在下面的代码中,第10,11行和第10行。 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有关,而不是游戏开发。
答案 0 :(得分:0)
您不能使用语句作为作业的右侧,这是您在此尝试做的事情:
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中不是错误,但它可能不是你想要的。你的意思可能是-=
-
。)
请注意,最初位于;
的{{1}}都不属于那里。您不能在if
;
之后()
放置if
,并且在流量控件附加块之后您不会放置;
声明(if
,while
等)。
答案 1 :(得分:0)
要有条件地分配变量,您需要使用三元运算符,例如:
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