1
resposta

[Projeto] Meu projeto

Olá a todos que estão lendo!!

Comecei o curso de desafios em JS, e no primeiro desafio, como ja tinha feito algo parecido, decidi fazer tudo sozinho, ou seja, sem ajudas (O que não aconteceu, porém tive uma única dúvida quando o código deu bug KKKKKKKKK, mas consegui resolver graças ao meu amigo e a Luri!).

Esse é o código do meu projeto

let listaDeNumerosSorteados = []
let numerosSorteadosRecentemente = [] // Armazena os números que foram anteriormente sorteados.

function exibirTextoNaTela(tag, texto) {
    let campo = document.getElementById(tag)
    campo.innerHTML = texto
}

function mensagemInicial() {
    exibirTextoNaTela('resultado', 'Números sorteados:  nenhum até agora')
}

mensagemInicial()

// Sorteia os números
function sortear() {
    let quantidade = document.getElementById('quantidade').value
    let numeroMinimo = document.getElementById('de').value
    let numeroMaximo = document.getElementById('ate').value
    
    // Validar entrada
    if (quantidade <= 0) {
        alert('A quantidade de números deve ser maior que 0.')
        return
    } else if (numeroMinimo <= 0) {
        alert('O campo "Do número" deve conter um valor maior que 0')
        return
    } else if (numeroMaximo <= 0) {
        alert('O campo "Até o número" deve conter um valor maior que 0')
        return
    } else if (numeroMinimo > numeroMaximo) {
        alert('O Campo "Do número" deve conter um valor menor do que o campo "Até o número".')
        return
    } else if (quantidade > numeroMaximo - numeroMinimo) {
        alert('A quantidade de números deverá ser um valor menor ou igual ao intervalo informado no campo "Do número" até o campo "Até o número". Verifique!')
        return
    }

    // Insere os resultados na lista
    while (listaDeNumerosSorteados.length < quantidade) {
        let resultado = parseInt(Math.random() * numeroMaximo + numeroMinimo)
        if (!listaDeNumerosSorteados.includes(resultado)) {
            listaDeNumerosSorteados.push(resultado)
        }
    }
    numerosSorteadosRecentemente = [...listaDeNumerosSorteados]// Antes de limpar a lista, armazena os valores anteriores para mostrar ao usuário os últimos números sorteados
    let frasePlural = quantidade > 1 ? 'Os números sorteados foram: ' : 'O número sorteado foi '
    exibirTextoNaTela('resultado', `${frasePlural} ${listaDeNumerosSorteados.join(', ')}`)
    listaDeNumerosSorteados = [] // Limpa a lista  
    let botaoReiniciar = document.getElementById('btn-reiniciar')
    botaoReiniciar.removeAttribute('disabled')
    botaoReiniciar.className = 'container__botao'
}
// Faz com que todas as entradas sejam limpas
function limpaCampo() {
    let quantidade = document.getElementById('quantidade')
    let numeroMinimo = document.getElementById('de')
    let numeroMaximo = document.getElementById('ate')
    quantidade.value = ''
    numeroMinimo.value = ''
    numeroMaximo.value = ''
}
// Reinicia a aplicação
function reiniciar() {
    document.getElementById('btn-reiniciar').setAttribute('disabled', true)
    limpaCampo()
    let fraseUltimosNumeros = numerosSorteadosRecentemente.length > 1 ? 'Os últimos números sorteados foram: ' : 'O último número sorteado foi: '
    exibirTextoNaTela('resultado', `${fraseUltimosNumeros}${numerosSorteadosRecentemente.join(', ')}`)
}

O código ja está completo, e tentei fazer o mais original possível. Porém, eu gostaria de reduzir um pouco a quantidade de linhas. Alguém possui alguma sugestão? Todas serão bem-vindas!

Obrigado desde já!

Edit: O projeto também está Upado no Meu Github

Edit2: Estava vendo a aula e vi que tinha um bug no meu código. Corrigido!

1 resposta

Oi, dev! Tudo bem?

Ótimo projeto, parabéns pela dedicação e elaboração deles! Obrigada também por tê-lo compartilhado com a nossa comunidade do fórum, tenho certeza que ajudará muitos colegas! Caso surja alguma dúvida, sinta-se à vontade em comunicar por aqui, estou à disposição e ficarei super feliz em poder ajudar!

Um forte abraço e bons estudos!