1
resposta

[Projeto] [SOLUÇÃO DO DESAFIO]

Após duzentas horas, essa foi minha solução para o desafio e queria saber se eu poderia melhorar alguma coisa:

app.js

let pista = 100;
let cadeiraSuperior = 200;
let cadeiraInferior = 400;

function comprar() {
    let quantidade = parseInt(document.getElementById('qtd').value);
    let tipoDeIngresso = document.getElementById('tipo-ingresso').value;

    let quantidadePista = document.getElementById('qtd-pista');
    let quantidadeCadeiraSuperior = document.getElementById('qtd-superior');
    let quantidadeCadeiraInferior = document.getElementById('qtd-inferior');

    if (tipoDeIngresso == 'pista' && quantidade <= pista) {
        pista -= quantidade;
        quantidadePista.innerHTML = pista.toString();
    } else if (tipoDeIngresso == 'superior' && quantidade <= cadeiraSuperior) {
        cadeiraSuperior -= quantidade;
        quantidadeCadeiraSuperior.innerHTML = cadeiraSuperior.toString();
    } else if (tipoDeIngresso == 'inferior' && quantidade <= cadeiraInferior) {
        cadeiraInferior -= quantidade;
        quantidadeCadeiraInferior.innerHTML = cadeiraInferior.toString();
    } else {
        alert('Quantidade indisponível');
    }

    document.getElementById('qtd').value = 0;
}
1 resposta

Olá, Matteus!

Parabéns por ter dedicado tanto tempo para resolver o desafio, isso mostra sua determinação e comprometimento com o aprendizado.

Analisando seu código, percebo que você fez um excelente trabalho implementando a lógica do projeto.

Uma possível melhoria, que não foi mostrada no curso, seria tentar utilizar um única função para atualizar todos os diferentes tipos de ingresso, evitando assim repetições de códigos:

function atualizarIngressos(tipo, quantidade, elemento) {
    if (quantidade <= tipo) {
        tipo -= quantidade;
        elemento.innerHTML = tipo.toString();
    } else {
        alert('Quantidade indisponível');
    }
}

Então, você pode chamar esta função no seu código principal:

if (tipoDeIngresso == 'pista') {
    atualizarIngressos(pista, quantidade, quantidadePista);
} else if (tipoDeIngresso == 'superior') {
    atualizarIngressos(cadeiraSuperior, quantidade, quantidadeCadeiraSuperior);
} else if (tipoDeIngresso == 'inferior') {
    atualizarIngressos(cadeiraInferior, quantidade, quantidadeCadeiraInferior);
}

Por fim, lembre-se de que a prática leva à perfeição. Continue praticando e experimentando diferentes abordagens para resolver os problemas. Você está no caminho certo!

Espero ter ajudado e bons estudos!