1
resposta

Mão na massa: proteção no total de números sorteados

function sortear(){
    let quantidade = parseInt(document.getElementById("quantidade").value);
    let de = parseInt(document.getElementById("de").value);
    let ate = parseInt(document.getElementById("ate").value);

    let sorteados = [];
    let numero;

    

    if (de >= ate){
        alert('O número inicial "De" deve ser menor que o número final "Até".');
        return;
    }

    if (quantidade <= 0){
        alert(`O numero em "Quantidade de números" deve ser maior que 0`);
        return;
    }
    if (quantidade > (ate - de + 1)){
        alert("A quantidade de números sorteados não pode ser maior que o intervalo de números disponível.")
        return;
    }



    for (let i = 0; i < quantidade; i++){
        numero = obterNumeroAleatorio(de, ate);

        while(sorteados.includes(numero)){
            numero = obterNumeroAleatorio(de,ate);
        }

        sorteados.push(numero);
    }
    let resultado = document.getElementById("resultado");
    resultado.innerHTML =  `<label class="texto__paragrafo">Números sorteados:  ${sorteados}</label>`;
    alterarStatusBotao();
}

function obterNumeroAleatorio(min, max){
return Math.floor(Math.random()* (max - min + 1)) + min;
}
function alterarStatusBotao(){
    let botao = document.getElementById("btn-reiniciar");
    if(botao.classList.contains("container__botao-desabilitado")){
        botao.classList.remove("container__botao-desabilitado");
        botao.classList.add("container__botao");
    } else {
        botao.classList.remove("container__botao");
        botao.classList.add("container__botao-desabilitado");
    }
}

function reiniciar(){
    document.getElementById("quantidade").value = "";
    document.getElementById("de").value = "";
    document.getElementById("ate").value = "";
    document.getElementById("resultado").innerHTML = `<label class="texto__paragrafo">Números sorteados:  nenhum até agora</label>`
    alterarStatusBotao();
}
1 resposta

Olá, Kauê! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de funções para organizar o sorteio com JavaScript, utilizou muito bem o controle de fluxo para evitar repetições e ainda compreendeu a importância do tratamento de condições para validar entradas.

Continue postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!