Olaboga...
Nawet nie wiem jak zacząć. To co napisałeś ma tyle błędów, że nie dość że nie działa, to jeszcze spowoduje wysypanie się przeglądarki. (przez while(true)
), a do tego nie ma sensu.
Masz tutaj gotowe rozwiązanie, i spróbuj dojść o co w nim chodzi (nie przejmuj się CSS, tak je dodałem, żeby jakoś to wyglądało).
Kopiuj
<button id="random-number-1">Losuj pierwszą liczbę</button>
<button class="button--2" id="random-number-2">Losuj drugą liczbę</button>
<div class="number number--1" id="number-1"></div>
<div class="number number--2" id="number-2"></div>
<div class="input">
Podaj iloczyn dwóch wylosowanych liczb
<input id="input" type="number">
<button id="confirm">Potwierdź</button>
</div>
<div id="result" class="result"></div>
Kopiuj
const randomNumber1Button = document.getElementById('random-number-1');
const randomNumber2Button = document.getElementById('random-number-2');
const randomNumber1Result = document.getElementById('number-1');
const randomNumber2Result = document.getElementById('number-2');
const input = document.getElementById('input');
const confirm = document.getElementById('confirm');
const result = document.getElementById('result');
let randomNumber1;
let randomNumber2;
function generateRandomNumberInRange(x, y) {
return Math.floor(Math.random() * (y - x + 1) ) + x;
}
randomNumber1Button.addEventListener('click', () => {
randomNumber1 = generateRandomNumberInRange(5, 20);
randomNumber1Result.innerHTML = randomNumber1;
});
randomNumber2Button.addEventListener('click', () => {
randomNumber2 = generateRandomNumberInRange(5, 20);
randomNumber2Result.innerHTML = randomNumber2;
});
confirm.addEventListener('click', () => {
if (!(randomNumber1 && randomNumber2)) {
alert('Należy wylosować obie liczby');
return;
}
const inputNumber = parseInt(input.value, 10);
if (!inputNumber) {
alert('Należy podać iloczyn wylosowanych liczb');
return;
}
if (randomNumber1 * randomNumber2 !== inputNumber) {
alert('Błędna odpowiedź, spróbuj jeszcze raz');
return;
}
result.innerHTML = 'Prawda';
});
A tu działająca wersja
m31