1
resposta

Projeto Final "Máquina de Caça-Níqueis"

Eu acabei de terminar ao curso de Lógica de Programação e decidi fazer um programa para colocar um pouco em prática o que eu aprendi:

<meta charset="UTF-8">

<input/>

<button onclick="rolagem()">Rolar<button/>

<script>
    var niquel =[];

    for (rolls = 1; rolls <= 3; rolls++) {

        if (rolls == 1) {

            niquel_1 = Math.round(Math.random() * 10);

        } else if (rolls == 2) {

            niquel_2 = Math.round(Math.random() * 10);
        } else {

            niquel_3 = Math.round(Math.random() * 10);
        }
    }

    //alert("Bem-vindo ao Jogo de Caça-Níquel!");
    //alert("Você inicia com R$ 500, por favor, digite o quanto deseja apostar e clique no botão 'Rolar' para iniciar!");

    var dinheiro = 500;
    var aposta = parseInt(document.querySelector("input"));
    var rolagens = [];
    var qtdRolagens = 0;

    function rolagem() {

        //if (Number.isInteger(aposta.value) == false) {

            //alert("Por favor, digite apenas números inteiros!");
        //} else {
            while (qtdRolagens < 3) {

                rolagens.push(Math.round(Math.random() * 10));
                qtdRolagens++;
            }
            if (niquel_1 == rolagens[0] && niquel_2 == rolagens[1] && niquel_3 == rolagens[2]) {
                dinheiro = dinheiro * 5;
            } else if (niquel_1 == rolagens[0] && niquel_2 == rolagens[1]) {
                dinheiro = dinheiro * 3;
            } else if (niquel_1 == rolagens[0] && niquel_3 == rolagens[2]) {
                dinheiro = dinheiro * 3;
            } else if (niquel_2 == rolagens[1] && niquel_3 == rolagens[2]) {
                dinheiro = dinheiro * 3;
            } else if (niquel_1 == rolagens[0] || niquel_2 == rolagens[1] || niquel_3 == rolagens[2]) {
                dinheiro = dinheiro * 2;
            } else {
                dinheiro = dinheiro - 100;
            }

            return dinheiro;
        }
    //}
</script>

O código em si funciona, mas está incompleto pois eu não conseguir resolver dois problemas:

1) O jogador era pra colocar o própio valor para ser "apostado" do 500 iniciais, mas a função "rolagem()" retorna sempre o primeiro alerta independente do que eu digite na área de input;

2) O programa deveria rolar novos números sempre que o botão "Rolar" fosse clicado, o que não acontece.

1 resposta

Boa tarde Rafael, tudo certo?

Excelente trabalho Rafael! É sempre legal criar nossos projetos e realizar a visão que temos em mente. A causa desses problemas que você está tendo vão ser abordados em cursos futuros, então não se cobre tanto. Já foi um ótimo trabalho até aqui!

Mas para não te deixar de mãos vazias, eu fiz uma versão um pouco diferente do mesmo projeto. Fique tranquilo pois caso não entenda algo agora, você poderá sempre retornar e rever esses códigos.

<meta charset="UTF-8">

<form id="formulario">
    <input type="text" name="valor">
    <input type="submit" name="Submit" value="Rolar">
</form>

<script>

    var formulario = document.getElementById('formulario')

    var dinheiro = 500;

    function rolaNiqueis( aposta ) {

        var rolagens = [];

        for (let i = 0 ; i < 3 ; i ++ ) {
            rolagens.push(Math.round(Math.random() * 10));
        }

        if ( rolagens[0] == rolagens[1] && rolagens[1] == rolagens[2] && rolagens[2] == rolagens[3]) {
            dinheiro += aposta * 5;
        }
        else if ( (rolagens[0] == rolagens[1]) || (rolagens[1] == rolagens[2]) || (rolagens[0] == rolagens[2]) )
        {
            dinheiro += aposta * 3;
        }
        else {
            dinheiro -= aposta;
        }
        return
    }

    formulario.addEventListener('submit', (event) => {
        event.preventDefault()
        var aposta = event.target[0].value;

        rolaNiqueis( aposta );
        console.log(dinheiro);
    })
</script>

É só mandar para um arquivo com o final .html e abrir, depois colocar a sua aposta na caixa de texto e clicar em Rolar. Para ver o seu dinheiro, basta olhar o número que aparece no console (que você pode abrir apertando a tecla F12).

Espero ter ajudado e bons estudos!