Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/474.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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 如何让随机选择引用RPG生命路径生成器的先前随机选择?_Javascript_Arrays_If Statement_Random - Fatal编程技术网

Javascript 如何让随机选择引用RPG生命路径生成器的先前随机选择?

Javascript 如何让随机选择引用RPG生命路径生成器的先前随机选择?,javascript,arrays,if-statement,random,Javascript,Arrays,If Statement,Random,我正在尝试制作一个Javascript版本的基本“生命路径生成器”,它经常出现在纸笔RPG中。我根据此处找到的模板制作了生成器: 不幸的是,我不知道如何引用以前选择的随机结果 笔和纸的等价物可能看起来像这样:掷d6来决定职业(吟游诗人、牧师、德鲁伊、战士、盗贼、巫师)。滚动d20以确定角色的背景(每个背景对于其类都是唯一的) 我猜我会为每个集合创建数组或对象,但我不知道如何使第二个集合自动触发第一个随机选择。我想有它设置,我可以按下一个按钮,并有一切随机生成 这是我能想到的最接近的地方: v

我正在尝试制作一个Javascript版本的基本“生命路径生成器”,它经常出现在纸笔RPG中。我根据此处找到的模板制作了生成器:

不幸的是,我不知道如何引用以前选择的随机结果

笔和纸的等价物可能看起来像这样:掷d6来决定职业(吟游诗人、牧师、德鲁伊、战士、盗贼、巫师)。滚动d20以确定角色的背景(每个背景对于其类都是唯一的)

我猜我会为每个集合创建数组或对象,但我不知道如何使第二个集合自动触发第一个随机选择。我想有它设置,我可以按下一个按钮,并有一切随机生成

这是我能想到的最接近的地方:

  var gen_data = {};
  gen_data['main'] = {
    'You are a {class}.' 
  if {class} = Bard '{bardBackstory}'
  else if {class} = Cleric '{clericBackstory}'
  else if {class} = Druid '{druidBackstory}'
  else if {class} = Fighter '{fighterBackstory}'
  else if {class} = Rogue '{rogueBackstory}'
  else if {class} = Wizard 'wizardBackstory}'
  };
  gen_data['class'] = {
    '1': 'Bard',
    '2': 'Cleric',
    '3': 'Druid',
    '4': 'Fighter',
    '5': 'Rogue',
    '6': 'Wizard
  };
  gen_data['bardBackstory'] = {
    '1': 'story1',
    '2': 'story2',
    '3': 'etc'
  };
  gen_data['clericBackstory'] = {
    '1': 'story1',
    '2': 'story2',
    '3': 'etc'
  };
  gen_data['druidBackstory'] = {
    '1': 'story1',
    '2': 'story2',
    '3': 'etc'
  };
  gen_data['fighterBackstory'] = {
    '1': 'story1',
    '2': 'story2',
    '3': 'etc'
  };
  gen_data['rogueBackstory'] = {
    '1': 'story1',
    '2': 'story2',
    '3': 'etc'
  };
  gen_data['wizardBackstory'] = {
    '1': 'story1',
    '2': 'story2',
    '3': 'etc'
  };

generator.js中的javascript(random.html中的base/64代码)使用正则表达式搜索
{example\u here}'
中的字符串,并将其替换为
gen\u data['example\u here']
中对象的随机成员的值。后续使用
{}
将创建所需的嵌套效果

var gen_data = {};
gen_data['main'] = ['You are a {class}.']
gen_data['class'] = {
  '1': 'Bard. {bardBackstory}',
  '2': 'Fighter. {fighterBackstory}',
  '3': 'Wizard. {wizardBackstory}'
};
gen_data['bardBackstory'] = {
  '1': 'story1',
  '2': 'story2',
  '3': 'etc'
};
gen_data['fighterBackstory'] = {
  '1': 'story1',
  '2': 'story2',
  '3': 'etc'
};
gen_data['wizardBackstory'] = {
  '1': 'story1',
  '2': 'story2',
  '3': 'etc'
};

当我测试这个时,它不会产生任何输出。我猜嵌套会阻止它执行,但不确定是什么。我修复了上面示例中的一个错误
genu data['main']
应该是长度为1的数组,而不是对象。将
genu数据['main']={'youarea{class}}
更改为
genu数据['main']=['youarea{class}]