NodeJS 如何让我的kahoot botter生成随机答案?

lokaqttq  于 2023-04-20  发布在  Node.js
关注(0)|答案(1)|浏览(224)

所以,我尝试使用kahoot.js-updated库制作一个kahootbotter,我发现了这段代码来回答随机问题

const Kahoot = require("kahoot.js-updated");
var kahoots = []
for (var i = 0; i < bot_count; i++) {
    kahoots.push(new Kahoot);
    kahoots[i].join(pin, name+" "+String(i)).catch(error => {
        console.log("join failed " + error.description + " " + error.status)
    });
kahoots[i].on("QuestionStart", (question) => {
        question.answer(
            Math.floor(
                Math.random() * question.quizQuestionAnswers[question.questionIndex]
            )
        );
    });

现在,当我尝试它时,机器人加入,但他们不回答问题,然后它给我这个错误:Math.random()* question.quizQuestionAnswers[question.questionIndex] ^ TypeError:无法读取未定义的属性(阅读“0”)
但我不知道它是如何没有定义的,因为它是图书馆的一部分。

yrwegjxp

yrwegjxp1#

要生成随机答案,请使用Math.random()函数为数组生成随机索引,因此,在您的示例中,它是quizQuestionAnswers,然后选择相应的答案选项,您应该知道quizQuestionAnswers数组是否未定义或为空,此方法将不起作用
这是一个例子

kahoots[i].on("QuestionStart", (quiz) => {
    if (quiz.quizQuestionAnswers && quiz.quizQuestionAnswers.length > 0) {
        const randomIndex = Math.floor(Math.random() * quiz.quizQuestionAnswers.length);
        quiz.answer(quiz.quizQuestionAnswers[randomIndex]);
    }
});

你应该知道代码将跳过问题,如果它仍然未定义或为空,则不提交答案

这是我从你的解释中理解的,你也可以提供一些console.log来了解

相关问题