Escrevi um codigo um pouco diferente. Fui estudando o proposto e adaptando. Mesmo tendo iniciado agora em programação, me desafiei a mexer no CSS e HTML além do JS. Vou postar os 3 aqui:
let quantidadeInput = document.getElementById('quantidade');
let inicialInput = document.getElementById('inicial');
let finalInput = document.getElementById('final');
let sortearButton = document.getElementById('sortear');
let reiniciarButton = document.getElementById('reiniciar');
let resultadoDiv = document.getElementById('resultado');
function sortearNumeros() {
let quantidade = parseInt(quantidadeInput.value);
let inicial = parseInt(inicialInput.value);
let final = parseInt(finalInput.value);
if (isNaN(quantidade) || isNaN(inicial) || isNaN(final)) {
alert('Por favor, insira números válidos.');
return;
}
resultadoDiv.innerHTML = '';
// Criar um conjunto para armazenar os números sorteados
let numerosSorteados = new Set();
while (numerosSorteados.size < quantidade) {
let numeroAleatorio = Math.floor(Math.random() * (final - inicial + 1)) + inicial;
numerosSorteados.add(numeroAleatorio);
}
// Exibir os números sorteados
let textoResultado = 'Números Sorteados: ';
let contador = 0;
numerosSorteados.forEach(numero => {
textoResultado += "" + numero;
contador ++;
if (contador < numerosSorteados.size) {
textoResultado += ', ';
}
});
resultadoDiv.textContent = textoResultado;
reiniciarButton.disabled = false; // Habilita o botão após sortear
}
function reiniciar() {
quantidadeInput.value = '';
inicialInput.value = '';
finalInput.value = '';
resultadoDiv.innerHTML = '';
document.getElementById('resultado').innerHTML = '<label class="texto__paragrafo">Números sorteados: nenhum até agora:</label>';
reiniciarButton.disabled = true; // Desabilita o botão após reiniciar
}
sortearButton.addEventListener('click', sortearNumeros);
reiniciarButton.addEventListener('click', reiniciar);
Meu index alterei pouco: mudei a class para não criar tantas linhas.
<button onclick="reiniciar()" id="reiniciar" class="container__botao" disabled >Reiniciar</button>
Meu CSS acrescentei isso:
.container__texto-resposta {
margin: 12px 5%;
display: flex;
flex-direction: column;
font-size: 24px;
font-weight: 700;
line-height: 1.5;
box-shadow: 0px 2px 5px rgba(0, 0, 0, 0.3);
border-radius: 10px;
background-image: linear-gradient(to right, #3498db, #222);
animation: pulsar 1.5s infinite;
}
@keyframes pulsar {
0% {
transform: scale(1);
}
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
.container__texto {
margin: 12px 0;
display: flex;
flex-direction: column;
}