1
resposta

[Projeto] como eu fiz. sorteador de numeros

tentei fazer o desafio antes de ver a aula. minha resoluçao ficou um tanto diferente da dos professores. depois de ver a aula notei que minha versao pecava em deixar numeros se repetirem e que eu deveria me preucupar com a possibilidade de alguem pedir por um "até" menor que o "de". não tenho muito a adicionar, só gostaria de compartilhar minha versão :)


let resultado = document.getElementById('resultado')
resultado.innerHTML = "NUMEROS SORTEADOS: NENHUM ATÉ AGORA"

function sortear(){


let numeroInicial = parseFloat(document.getElementById('de').value)
let numeroFinal = parseFloat(document.getElementById('ate').value)
let multiplicador = 1000  
let quantiaDeNumeros = parseFloat(document.getElementById('quantidade').value)
let contador = 1
let numeros = []

numerosorteado()
function numerosorteado(){
  
  let numeroAleatorio = parseInt(Math.random() *multiplicador+  numeroInicial)
  if (numeroAleatorio>multiplicador){
  numerosorteado()}
  
else{
  if(numeroAleatorio>numeroFinal){
   numerosorteado()
     }
else{

  if (contador<quantiaDeNumeros){
      contador++
      console.log(contador+'c')
      numeros.push(numeroAleatorio)
      numerosorteado()
  }
  else {
    numeros.push(numeroAleatorio)
  }
    
}
}
}
let pluralsingular = contador>2? "SORTEADOS":'SORTEADO'
let resultado = document.getElementById('resultado')
resultado.innerHTML = "NUMEROS "+ pluralsingular+":" + numeros 
document.getElementById('btn-reiniciar').className = "container__botao"
}




function reiniciar(){
  numeroInicial= document.getElementById('de')
  numeroInicial.value = ""
 numeroFinal = document.getElementById("ate")
 numeroFinal.value = ""
 quantiaDeNumeros = document.getElementById("quantidade")
  quantiaDeNumeros.value = " "
  document.getElementById('btn-reiniciar').className = "container__botao-desabilitado"
  let resultado = document.getElementById('resultado')
  resultado.innerHTML = "NUMEROS SORTEADOS: NENHUM ATÉ AGORA"
  
}

1 resposta

Olá, Lucas!

Que legal que você está se desafiando a resolver os problemas antes de assistir às aulas. Isso é uma ótima maneira de aprender!

Sobre o seu projeto de sorteador de números, é interessante ver como você abordou o problema. Vou te dar algumas dicas para lidar com as questões que você mencionou, como a repetição de números e a ordem dos valores "de" e "até".

  1. Evitar números repetidos: Você pode usar um Set em vez de um array para armazenar os números sorteados, já que um Set não permite valores duplicados. No entanto, isso exigirá que você verifique o tamanho do Set para garantir que você tenha a quantidade desejada de números.

  2. Verificar a ordem dos valores "de" e "até": Antes de iniciar o sorteio, você pode verificar se o valor de "até" é maior que o valor de "de". Se não for, você pode exibir uma mensagem de erro ou simplesmente trocar os valores.

Aqui está uma sugestão de como você poderia implementar essas melhorias:

function sortear() {
    let numeroInicial = parseFloat(document.getElementById('de').value);
    let numeroFinal = parseFloat(document.getElementById('ate').value);
    let quantiaDeNumeros = parseFloat(document.getElementById('quantidade').value);

    if (numeroFinal < numeroInicial) {
        [numeroInicial, numeroFinal] = [numeroFinal, numeroInicial];
    }

    let numeros = new Set();

    while (numeros.size < quantiaDeNumeros) {
        let numeroAleatorio = Math.floor(Math.random() * (numeroFinal - numeroInicial + 1)) + numeroInicial;
        numeros.add(numeroAleatorio);
    }

    let resultado = document.getElementById('resultado');
    resultado.innerHTML = "NÚMEROS SORTEADOS: " + Array.from(numeros).join(", ");
    document.getElementById('btn-reiniciar').className = "container__botao";
}

Espero que essas dicas te ajudem a melhorar ainda mais o seu sorteador de números. Continue se desafiando e explorando novas maneiras de resolver problemas!

Espero ter ajudado e bons estudos!