У меня есть приложение для викторины, которое отображает вопросы с несколькими вариантами ответов. В настоящее время все мои вопросы жестко запрограммированы в массиве questions [] в моей игре. js file. Я хочу изменить файл своей игры. js таким образом, чтобы все вопросы, их варианты и ответы читались из текстового, CSV-файла или файла Excel из той же папки root, в которой находится файл. js.
Текстовый файл будет содержать следующие данные:
вопрос, выбор1, выбор2, выбор3, выбор4, ответ
Как Вас зовут? Али, Номан, Ахмед, Дан, Номан
Какой ваш любимый предмет? Математика, физика, компьютер, английский sh, компьютер
Что такое 2 плюс 2? Пять, шесть, семь, четыре, Четыре
И Моя игра. js Файл выглядит следующим образом:
const question = document.getElementById("question");
const choices = Array.from(document.getElementsByClassName("choice-text"));
let currentQuestion = {};
let acceptingAnswers = false;
let score = 0;
let questionCounter = 0;
let availableQuesions = [];
let questions = [{
question: "Inside which HTML element do we put the JavaScript??",
choice1: "<script>",
choice2: "<javascript>",
choice3: "<js>",
choice4: "<scripting>",
answer: 1
},
{
question: "What is the correct syntax for referring to an external script called 'xxx.js'?",
choice1: "<script href='xxx.js'>",
choice2: "<script name='xxx.js'>",
choice3: "<script src='xxx.js'>",
choice4: "<script file='xxx.js'>",
answer: 3
},
{
question: " How do you write 'Hello World' in an alert box?",
choice1: "msgBox('Hello World');",
choice2: "alertBox('Hello World');",
choice3: "msg('Hello World');",
choice4: "alert('Hello World');",
answer: 4
}
];
const CORRECT_BONUS = 10;
const MAX_QUESTIONS = 3;
startGame = () => {
questionCounter = 0;
score = 0;
availableQuesions = [...questions];
console.log(availableQuesions);
getNewQuestion();
};
getNewQuestion = () => {
if (availableQuesions.length === 0 || questionCounter >= MAX_QUESTIONS) {
return window.location.assign("/end.html");
}
questionCounter++;
const questionIndex = Math.floor(Math.random() * availableQuesions.length);
currentQuestion = availableQuesions[questionIndex];
question.innerText = currentQuestion.question;
choices.forEach(choice => {
const number = choice.dataset["number"];
choice.innerText = currentQuestion["choice" + number];
});
availableQuesions.splice(questionIndex, 1);
console.log(availableQuesions);
acceptingAnswers = true;
};
startGame();
choices.forEach(choice => {
choice.addEventListener("click", e => {
if (!acceptingAnswers) return;
acceptingAnswers = false;
const selectedChoice = e.target;
const selectedAnswer = selectedChoice.dataset["number"];
console.log(selectedAnswer);
getNewQuestion();
});
});