gpt4 book ai didi

javascript - 在node.js中运行文件并使用 "inquirer"后保存变量的值

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:56 24 4
gpt4 key购买 nike

我有一个迷你游戏程序,要求用户输入一个数字,如果该数字与随机选择的数字匹配,我会为对手变量减去另一个随机数。否则,对手会伤害我。我让程序使用减法,但问题是,每次我在 node.js 中运行我的文件(即 node fileName.js 4)时,程序中的所有变量都会重置。当从“生命值”中减去“伤害”时,生命值应该被保存,但它会不断重置。 mainCharacterzombie.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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com