- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个迷你游戏程序,要求用户输入一个数字,如果该数字与随机选择的数字匹配,我会为对手变量减去另一个随机数。否则,对手会伤害我。我让程序使用减法,但问题是,每次我在 node.js 中运行我的文件(即 node fileName.js 4)时,程序中的所有变量都会重置。当从“生命值”中减去“伤害”时,生命值应该被保存,但它会不断重置。 mainCharacter
和 zombie.hp
不应重置。
var StrawberryCough = require("inquirer");
var mainCharacter = 70;
var zombie = {
hp: 15,
num: 0
}
StrawberryCough.prompt([
{
type: "input",
message: "Random Number 1-5: ",
name: "number"
}
]).then(function(user){
parseInt(user.number);
var ranNum = Math.round(Math.random() * (5 - 1) + 1);
zombie.num = ranNum;
if(user.number === zombie.num)
{
var damage = Math.round(Math.random() * (5 - 1) + 1);
console.log("Character Damage: ", damage);
zombie.hp -= damage;
console.log("zombie hp", zombie.hp);
if(zombie.hp <= 0)
{
console.log("You win!")
return;
}
}
else if(user.number !== zombie.num)
{
var zomDamage = Math.round(Math.random() * (5 - 1) + 1);
console.log("Zombie Damage: ", zomDamage);
mainCharacter -= zomDamage;
console.log("main hp", mainCharacter);
if(mainCharacter <= 0)
{
console.log("You lose!");
return;
}
}
});
最佳答案
如果您希望数据持久存在,您应该查看键值存储、数据库,将其保存到文件中......否则每次运行文件时:
var mainCharacter = 70;
var zombie = {
hp: 15,
num: 0
}
在执行这些行时加载文件时将设置值,但这不会永久存储这些值,并且它们将在脚本结束后不再存在。
看起来您正在寻找快速且杂乱的解决方案,因此我建议使用文件系统并将其保存为:gameMemory.json
gameMemory.json 的内容:
{
"mainCharacter" : 70,
"zombie" : {
"hp": 15,
"num": 0
}
}
从 gameMemory.js 加载值:
fs = require('fs');
//loads the gameMemory into a json object
var gameMemory =JSON.parse(fs.readFileSync('./gameMemory.json', 'utf8'));
然后,当您完成变量操作并希望它们持续存在时:
fs.writeFileSync('./gameMemory.json', JSON.stringify(gameMemory, null, 2) , 'utf-8');
关于javascript - 在node.js中运行文件并使用 "inquirer"后保存变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40955036/
我正在使用库:inquirer 在 node.js 中构建命令行界面。 根据我的需要,我想在用户输入时呈现提示、确认文本等。示例。 询问者使用情况 var _questions = [{ 'typ
const inquirer = require("inquirer") var questions = [ { type: "number", name: "name",
默认情况下,询问者 js 问题前面有一个“?”。是否可以将其更改为其他内容?我尝试探索但没有发现任何地方提到它。 最佳答案 当然,您可以使用 prefix 更改问题的前缀。您的问题对象的选项: inq
我有一个迷你游戏程序,要求用户输入一个数字,如果该数字与随机选择的数字匹配,我会为对手变量减去另一个随机数。否则,对手会伤害我。我让程序使用减法,但问题是,每次我在 node.js 中运行我的文件(即
我正在使用 inquirer.js 编写一个 Node CLI 命令,这可能需要很长时间才能完成,所以我正在尝试更新 UI,如下所示: ✓ Thing A complete ✓ Thing B com
我知道网站的布局和功能应该严格分开。布局应该用 CSS 完成,网站的功能,比如点击展开移动菜单,应该用 JS 完成。引用:1 . & 2 . 我经常看到响应式布局的情况是为各种媒体查询提供列类,其中只
我一直在尝试了解搜索各种论坛,但无法找到我要查找的内容。部分原因是我对 NodeJS 的无知。我才刚刚开始。 我的任务是通过 Jest/Mocha 对基于查询器的 CLI 进行单元测试。我如何模拟和测
我正在使用 inquirer.js 来创建一个 yeoman-generator 并且当涉及到一个长列表作为提示时,它的高度太短而无法显示所有项目。我怎样才能增加它?我知道inquirer.js使用了
我想知道如何为 npm 包编写单元测试 Inquirer.js ,这是一个使 CLI 打包更容易的工具。我读过this post但我无法让它发挥作用。 这是我需要测试的代码: const questi
我想向用户提问,而不是立即排好所有问题。 文档中提到了 rxjs,但我觉得文档中关于如何在执行提示时正确添加问题方面存在差距,或者至少它对我来说不太适用。 https://www.npmjs.com/
我在导入 Inquirer 时遇到问题使用 Node 13.12.0 中的模块.任何其他import效果很好。只要我一直在使用Node 12.x与 require()它运作良好。 我的 anythin
我正在尝试使用带有“MQ”触发器的 Azure 逻辑应用程序从 IBM 队列读取消息。 问题是它不仅读取,而且进行查询(即读取队列的深度等)。出于安全考虑/设置,我们不允许这样做。 是否可以关闭或配置
当我在我的项目中运行这个命令时: yarn eject 显示这个错误: [root@VM-0-16-centos cruise-web]# yarn eject yarn run v1.22.10 $
当我在我的项目中运行这个命令时: yarn eject 显示这个错误: [root@VM-0-16-centos cruise-web]# yarn eject yarn run v1.22.10 $
我正在尝试获取一些代码,以便根据他们对问题给出的答案在屏幕上显示特定的消息。这是一个使用 Inquirer 包的 Node 应用程序,每次我运行该 Node 应用程序时,它都会返回“未定义”。 {
在创作 yeoman 生成器时,我想在我的一个提示中使用询问者的“自动完成”插件 ( https://github.com/mokkabonna/inquirer-autocomplete-promp
我遇到了一个问题。我有一组用 protractor.js 编写的端到端测试,我用 inquire.js 制作了一个小菜单,我将在其中选择我想运行的测试。问题是,我真的找不到任何关于如何将这两个项目实际
我正在创建我的第一个(真正的)Yeoman.io 生成器,它有一些嵌套提示(即一个提示的答案会影响其他提示和操作的呈现)。 我已经追踪了我的代码,表面上看起来我正在适本地“打开和关闭”我的提示,但在脚
遇到了node.js无法调试的情况。应用程序入口文件使用交互模式。它与inquirer npm 包一起使用。 我用过node的调试工具,还是不行。 代码如下: const inquirer = req
我是一名优秀的程序员,十分优秀!