Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中运行文件并使用“保存变量值”;询问者“;_Javascript_Node.js - Fatal编程技术网

Javascript 在node.js中运行文件并使用“保存变量值”;询问者“;

Javascript 在node.js中运行文件并使用“保存变量值”;询问者“;,javascript,node.js,Javascript,Node.js,我有一个小游戏程序,我要求用户输入一个数字,如果这个数字与随机选择的数字匹配,我就为对手变量减去另一个随机数。另一方面,对手伤害了我。我让程序处理减法,但问题是,每次我在node.js(即node fileName.js 4)中运行文件时,程序中的所有变量都会重置。当“伤害”从“生命”中减去时,生命应该被保存,但它会继续重置主字符和僵尸。hp不应重置 var StrawberryCough = require("inquirer"); var mainCharacter = 70; var z

我有一个小游戏程序,我要求用户输入一个数字,如果这个数字与随机选择的数字匹配,我就为对手变量减去另一个随机数。另一方面,对手伤害了我。我让程序处理减法,但问题是,每次我在node.js(即node fileName.js 4)中运行文件时,程序中的所有变量都会重置。当“伤害”从“生命”中减去时,生命应该被保存,但它会继续重置<代码>主字符和僵尸。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 StrawberryCough=require(“查询者”);
var mainCharacter=70;
var zombie={
惠普:15,
数字:0
}
草莓咳嗽([
{
键入:“输入”,
信息:“随机数1-5:”,
姓名:“号码”
}
]).then(功能(用户){
parseInt(用户编号);
var ranNum=Math.round(Math.random()*(5-1)+1);
zombie.num=ranNum;
if(user.number==zombie.num)
{
var损害=数学圆(数学随机()*(5-1)+1);
控制台日志(“字符损坏:”,损坏);
僵尸.hp-=伤害;
log(“zombie hp”,zombie.hp);

如果(zombie.hp如果希望数据持久化,则应查看键值存储、数据库,并将其保存到文件中……否则每次运行该文件时:

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');

好的,谢谢。我也考虑过制作一个单独的文件,但不是使用exports.var。我会试试你的seuggestions,谢谢。你如何处理它实际上取决于你期望它走多远。如果你的游戏只是从命令行运行脚本,你希望它在“回合”之间保持不变对于运行上述脚本,我认为最简单的方法是将其保存到json文件中。如果您计划进一步,并且担心不断读写文件的性能,那么显然还有其他事情可以做,但在游戏的这个阶段,这似乎是一个微优化这回答了你的问题吗?