改变游戏难度-Javascript 我正在用JavaScript制作一个刽子手游戏。我现在试图通过增加改变游戏难度的可能性,使游戏变得更加复杂。我已经测试了几种不同的方法,并尝试在谷歌上搜索如何做到这一点,但迄今为止,我的尝试似乎都没有奏效。在我最近的一次尝试中,我尝试创建一个函数,根据所选的难度,将不同的可能单词数组推送到一个空数组进行猜测。作为一个新手,在我看来,这应该是可行的,但事实并非如此,我希望有人能解释我哪里做错了,或者如果我的推理从一开始就完全错了

改变游戏难度-Javascript 我正在用JavaScript制作一个刽子手游戏。我现在试图通过增加改变游戏难度的可能性,使游戏变得更加复杂。我已经测试了几种不同的方法,并尝试在谷歌上搜索如何做到这一点,但迄今为止,我的尝试似乎都没有奏效。在我最近的一次尝试中,我尝试创建一个函数,根据所选的难度,将不同的可能单词数组推送到一个空数组进行猜测。作为一个新手,在我看来,这应该是可行的,但事实并非如此,我希望有人能解释我哪里做错了,或者如果我的推理从一开始就完全错了,javascript,arrays,function,Javascript,Arrays,Function,这是相关代码 HTML: 然后,我在检查器中得到一个关于另一个函数的错误 function guessedWord() { wordStatus = answer.split('').map(letter => (guessed.indexOf(letter) >= 0 ? letter : '_')).join(''); document.getElementById('word').innerHTML = wordStatus;} 说“无法读取未定义的属性拆分”,所以答案没有

这是相关代码

HTML:

然后,我在检查器中得到一个关于另一个函数的错误

function guessedWord() {
wordStatus = answer.split('').map(letter => (guessed.indexOf(letter) >= 0 ? letter : '_')).join('');

document.getElementById('word').innerHTML = wordStatus;}
说“无法读取未定义的属性拆分”,所以答案没有定义,这应该是因为我以前的代码不起作用

关于如何修复我的代码或者如何更好地解决问题,有什么建议吗


提前谢谢

您没有重新分配阵列:

if (level === 0) {
    randomWords = randomWords.concat(mediumWords)
}
但是顺便说一句,在这种情况下使用concat是没有用的,直接分配数组

if (level === 0) {
    randomWords = mediumWords
}
编辑: 我建议您考虑一种不同的逻辑,使其尽可能灵活,如下所示:

let level = "";
let randomWords = [];
let dictionary = {
  easy: ['apple', 'gene'],
  medium: ['article', 'trident'],
  hard: ['aposthrophe', 'justification']
}


function changeDifficulty(difficulty) {
    level = difficulty
    randomWords = dictionary[level]
}
还有你的按钮:

<button id="easy" onclick="changeDifficulty('easy')">Easy</button>
<button id="medium" onclick="changeDifficulty('medium')">Medium</button>
<button id="hard" onclick="changeDifficulty('hard')">Hard</button>
简单
中等
硬的

您没有重新分配阵列:

if (level === 0) {
    randomWords = randomWords.concat(mediumWords)
}
但是顺便说一句,在这种情况下使用concat是没有用的,直接分配数组

if (level === 0) {
    randomWords = mediumWords
}
编辑: 我建议您考虑一种不同的逻辑,使其尽可能灵活,如下所示:

let level = "";
let randomWords = [];
let dictionary = {
  easy: ['apple', 'gene'],
  medium: ['article', 'trident'],
  hard: ['aposthrophe', 'justification']
}


function changeDifficulty(difficulty) {
    level = difficulty
    randomWords = dictionary[level]
}
还有你的按钮:

<button id="easy" onclick="changeDifficulty('easy')">Easy</button>
<button id="medium" onclick="changeDifficulty('medium')">Medium</button>
<button id="hard" onclick="changeDifficulty('hard')">Hard</button>
简单
中等
硬的

我稍微修改了你的JS,现在它会根据你选择的难度从每个数组中随机生成一个单词

JS

HTML

简单
中等
硬的
新词

我稍微修改了你的JS,现在它会根据你选择的难度从每个数组中随机生成一个单词

JS

HTML

简单
中等
硬的
新词

您可以使用spread操作符使事情变得更简单


JS-Bin
//变数
设水平=0;
让随机词=[];
让easyWords=['apple','gene'];
让mediumWords=[“文章”,“三叉戟”];
让hardWords=['aposthrophe','justify'];
//选择游戏难度并按正确的阵型
函数更改难度(难度=0){
级别=难度
randomWords=[];//如果删除此项,数组将越来越大
如果(级别==0){
随机词。推送(…中间词)
}否则如果(级别===1){
随机词。推送(…易用词)
}否则如果(级别===2){
随机词。推送(…中间词)
}否则如果(级别===3){
随机词。推(…硬木)
}
//让我们看看我们的话是什么
console.log(随机字);
getWord();
}
//生成随机字
函数getWord(){
让答案=randomWords[Math.floor(Math.random()*randomWords.length)]
控制台日志(应答);
}
//调用函数
改变难度();
容易的
中等
硬的

您可以使用spread操作符使事情变得更简单


JS-Bin
//变数
设水平=0;
让随机词=[];
让easyWords=['apple','gene'];
让mediumWords=[“文章”,“三叉戟”];
让hardWords=['aposthrophe','justify'];
//选择游戏难度并按正确的阵型
函数更改难度(难度=0){
级别=难度
randomWords=[];//如果删除此项,数组将越来越大
如果(级别==0){
随机词。推送(…中间词)
}否则如果(级别===1){
随机词。推送(…易用词)
}否则如果(级别===2){
随机词。推送(…中间词)
}否则如果(级别===3){
随机词。推(…硬木)
}
//让我们看看我们的话是什么
console.log(随机字);
getWord();
}
//生成随机字
函数getWord(){
让答案=randomWords[Math.floor(Math.random()*randomWords.length)]
控制台日志(应答);
}
//调用函数
改变难度();
容易的
中等
硬的

您需要先声明变量答案

让答案=”;
您的方法更改难度不正确,因为它没有设置随机词的值,您需要这样做

功能更改难度(难度){
级别=难度
如果(级别==0){
randomWords=randomWords.concat(中间词)
}否则如果(级别===1){
randomWords=randomWords.concat(easyWords)
}否则如果(级别===2){
randomWords=randomWords.concat(中间词)
}否则如果(级别===3){
randomWords=randomWords.concat(硬木)
}
}
要获得正确的答案,您应该在每次单击按钮后调用getWord(或在逻辑中的其他地方)。

()

您需要首先声明变量答案

让答案=”;
您的方法更改难度不正确,因为它没有设置随机词的值,您需要这样做

功能更改难度(难度){
级别=难度
如果(级别==0){
randomWords=randomWords.concat(中间词)
}否则如果(级别===1){
randomWords=randomWords.concat(easyWords)
}否则如果(级别===2){
randomWords=randomWords.concat(中间词)
}否则如果(级别===3){
randomWords=randomWords.concat(硬木)
}
}
要获得正确的答案,您应该在每次单击按钮后调用getWord(或在逻辑中的其他地方)。
()

检查是否存在
.concat
:“此方法不会更改现有数组,而是返回一个新数组。”检查是否存在
.concat
:“此方法不会更改现有数组,而是返回一个新数组。”