我如何在JavaScript Word游戏中循环遍历我的答案和提示



我正在从事Word Game项目。我的问题是我的游戏帖子帖子而不是提示(我将它们链接到按钮(,当我按下按钮时,它会执行所有提示,我只需要一个单词一个提示。每个单词的提示与彼此相同(即提示0匹配数组中的单词0(。没有CSS,因为我目前正在关注造型的功能。我也很擅长解释事情,我愿意澄清我可能没有提及的任何东西。该代码在下面列出。

HTML

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <link rel="stylesheet" href="stylesheets/main.css">
</head>
<body>
<div class="wrapper">
    <h1>Degrassi Next Class</h1>
    <h2>Word Game</h2>
    <h3> Click on with your mouse or enter a letter with your keyboard to start</h3>
</div>
<div id="simpson"></div>
<br>
<br>
<button id="spoiler">#spoileralert</button>
    <script src="index.js"></script>
</body>
</html>

JS

var degrassi = [
    "Maya", "Zig", "Lola", "Frankie", "Yael", "Tiny", "Zoe", "Tristan", "Grace", "Esme", "Winston", "Hunter", "Vijay", "Rasha", "Goldi", "Jonah", "Baaz", "Miles", "Saad", "Shay"
];

// select a random character
var currentCharacter = degrassi[Math.floor(Math.random() * degrassi.length)];
// the array that loops through characters
var charactersArray = [];
for (var i = 0; i < currentCharacter.length; i++) {
    charactersArray[i] = "_";
}
var lettersLeft = currentCharacter.length;

var simpson = document.getElementById("simpson");
simpson.innerHTML = charactersArray.join(" ");

// hints also knows as spoiler alert
var spoilerz = document.getElementById.spoiler.onclick = function () {
    var spoiler = [
        "Their sister visits from college due to a tragedy",
        "Only character to be in a polyamourus relationship",
        "This character had an abortion",
        "This character has a twin",
        "This character is generqueer",
        "This character was in a gang with his brother",
        "This character was on an actor on West Drive",
        "This character was in a coma after a bus crash",
        "This characters nickname is The Watcher",
        "This character pushed their significant other down a hill",
        "This characters nickname is Chewy",
        "This character caused a school lockdown",
        'First line: "Oh My God! I love high school."',
        "This character was prom queen with their significant other",
        "This character is president of the feminist club",
        "This character has a daughter",
        "This character has an older sister who graduated in 2016",
        "This characters father is abusive",
        "This characters nickname is Creepy Camera Guy",
        "This character was in a love triangle with her best friend"
    ];
    // selects a spoiler this should coorespond with the character
    var currentSpoiler = spoiler[Math.floor(Math.random() * spoiler.length)];

    // loop through spoilers
    var spoilerArray = [];
    for (var i = 0; i < currentSpoiler.length; i++) {
        spoilerArray[i] = "_";
    }
};

作为上述尼古拉的答案,您需要将随机数分配给变量,而不是两次调用。

我还可以建议您将数组构造为这样的对象数组:

 var degrassi = [
    {name: "Maya", hint:"Their sister visits from college due to a tragedy"}, //remaining names and hints ]; 
  var random = Math.floor(Math.random() * degrassi.length)

然后,您可以调用您的角色名称,并以这样的暗示:

degrassi[random].name  //gives you the name
degrassi[random].hint  //gives you its corresponding hint

这将使您的代码更易于更改和维护,并添加更多名称和提示等。

似乎您选择了两次随机数。这可能不是您想要的,因为(在大多数情况下(将返回两个不同的数字,例如例如2和4。您应该定义一个新数字(例如var index(,并假定它是一个随机数。由于数组(spoilerdegrassi(的长度相同,因此您可以占用degrassi的长度。

要使您的代码正常工作,您应该替换
var currentCharacter = degrassi[Math.floor(Math.random() * degrassi.length)];带有
var index = Math.floor(Math.random() * degrassi.length); var currentCharacter = degrassi[index]
var currentSpoiler = spoiler[Math.floor(Math.random() * spoiler.length)];
使用var currentSpoiler = spoiler[index];

您还需要一些东西来输出扰流板,但是由于我看不到您想在哪里做的事情,因此此时我无能为力

最新更新