Как мне сложить числа на костях вместе для рекорда + провал

У меня есть игра в кости, которую я должен сделать для школы, я зашел далеко.. игра работает, но моя проблема в том, что я должен сделать систему рекордов и ограничить 6,7,8,9 (если сумма любой из них зависит от того, что выбирает игрок) это провалит игру, и вы начнете сначала.

Я просто хочу поставить рекорд и эту неудачную часть для моего проекта.

Я сделал это до сих пор:

let images = ["dice1.png",
"dice2.png",
"dice3.png",
"dice4.png",
"dice5.png",
"dice6.png"];
let dice = document.querySelectorAll("img");

function roll(){
    dice.forEach(function(die){
        die.classList.add("shake");
    });
    setTimeout(function(){
        dice.forEach(function(die){
            die.classList.remove("shake");
    });
    let dieOneValue = Math.floor(Math.random()*6)
    ;
    let dieTwoValue = Math.floor(Math.random()*6)
    ;
    console.info(dieOneValue,dieTwoValue);
    document.querySelector("#die-1").setAttribute
    ("src", images[dieOneValue]);
    document.querySelector("#die-2").setAttribute
    ("src", images[dieTwoValue]);
    document.querySelector("#total").innerHTML = 
    "Du rullade " + ( (dieOneValue +1) + (dieTwoValue + 1 ) )
},
1000
);
}

И это та часть, которую они могут выбрать только номер, иначе они получат сообщение об ошибке.

var numb=document.forms['myform']['num'];
var error=document.getElementById('error');

function validation()
{
    if (numb.value=='')
    {
        error.innerHTML = "Bara nummer funkar";
        error.style.display = "block";
        return false;
    }
    
    if (numb.value>9)
    {
        error.innerHTML = "Bara nummer 6,7,8,9 funkar";
        error.style.display = "block";
        return false;
    }
    if (numb.value<6)
    {
        error.innerHTML = "Bara nummer 6,7,8,9 funkar";
        error.style.display = "block";
        return false;
    }
    return true;
}

Непонятно, в чем ваш вопрос или где вы застряли. Можете ли вы указать, какая часть требует внимания?

Kinglish 20.11.2022 20:14
[JS за 1 час] - 9. Асинхронный
[JS за 1 час] - 9. Асинхронный
JavaScript является однопоточным, то есть он может обрабатывать только одну задачу за раз. Для обработки длительных задач, таких как сетевые запросы,...
Подъем в javascript
Подъем в javascript
Hoisting - это поведение в JavaScript, при котором переменные и объявления функций автоматически "перемещаются" в верхнюю часть соответствующих...
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
Как использовать API парсинга квитанций с помощью JavaScript за 5 минут?
В этом руководстве вы узнаете, как использовать API парсинга квитанций за 5 минут с помощью JavaScript. Eden AI предоставляет простой и удобный для...
Хук useOnClickOutside в ReactJS
Хук useOnClickOutside в ReactJS
Как разработчик ReactJS, вы, возможно, сталкивались с ситуацией, когда вам нужно закрыть модальное или выпадающее меню, когда кто-то щелкает за его...
Хуки (часть-2) - useEffect
Хуки (часть-2) - useEffect
Хук useEffect - один из самых мощных и универсальных инструментов в арсенале разработчика React. Он позволяет вам управлять побочными эффектами в...
Простое руководство по тестированию взаимодействия с пользователем с помощью библиотеки тестирования React
Простое руководство по тестированию взаимодействия с пользователем с помощью библиотеки тестирования React
В предыдущем посте я показал вам на примерах, как писать базовые тесты в React. Важнейшей частью пользовательского интерфейса приложений является...
0
1
78
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Итак, вам нужно поле ввода, чтобы запросить у игрока «неудачный» номер.

<input id = "fail-number" type = "number" min = "6" max = "9">

В этот момент вам, вероятно, понадобится кнопка для запуска игры. И кнопка броска кубика не должна быть видна.

Ваш EventListener на кнопке запуска игры должен срабатывать только в том случае, если введенное число имеет значение.

startGame.addEventListener("click", function() {
  if (failNumber){
    //toggle class on startGame which makes the button invisible
    //toggle class on rollDice which makes the button visible
    //toggle class on number-input which makes the input invisible
    //roll dice or let the user press rollDice button
  };
});

Теперь вам нужно только проверять после каждого броска кубиков, соответствуют ли суммированные числа кубиков вашему failNumber.

if (diceSum == failNumber){
  //save current score as highscore
  //set current score to 0
  //toggle class on rollDice which makes button invisible
  //toggle class on startGame which makes button visible
  //toggle class on number-input which makes input visible
} else {
  //add diceSum to current score
}

Плохо, если я сделал это неясным и т. д. Я делаю веб-сайт, а не ту обычную игру в кости, которую вы можете увидеть на проигрывателе Google против компьютера, и вы пишете, сколько раз она должна бросаться, а затем вы видите, кто победит.

Вот так выглядит моя страница. сайт

И я хочу сделать код, который исключает возможность выбора чего-либо, кроме 6, 7, 8 или 9, в качестве «неудачного» числа. Если вы приземлитесь на выбранный номер, вы проиграли игру, подсчитывает ваш рекорд и делает невозможным продолжение, если вы не перезапустите.

Большое спасибо заранее! ps: У меня мозг поджарен на этой части.

Пожалуйста, не отвечайте на свой вопрос дополнительной информацией. Вместо этого вы должны отредактировать исходный вопрос. Я отредактировал свой последний ответ и надеюсь, что вы на правильном пути с этим.

gmad 23.11.2022 23:51

Дополнительная информация по вопросу должна быть добавлена ​​через правки, а не ответ.

Blye 24.11.2022 23:14

Другие вопросы по теме