Problem with my Rock, Paper and Scissors game

Asked

Viewed 92 times

0

I have a problem with the job maquina(), the function is not able to perform any action, think the function is not receiving the value of the variable jgdJogador.

var comecar = false, i = 1;
if (i === 1){
    alert('Bem vindo ao Pedra, Papel e Tesoura!')
    var decisao = prompt('Aperte 1 para comecar a jogar ');
    if(decisao === '1'){
        main();
    }
}

// Jogadas Maquina
function maquina(jogada){

    var jgdMaquina = ['Pedra', 'Papel', 'Tesoura'];
    var numero =  Math.floor(Math.random() * (3 - 0)) + 0;

    if (jgdMaquina[numero] == 0 && jogada == '1') {
        alert('maquina jogou pedra');
        alert('empate');
    }

    if (jgdMaquina[numero] == 0 && jogada == '2') {
        alert('maquina jogou pedra');
        alert('voce ganhou');
    }

    if (jgdMaquina[numero] == 0 && jogada == '3') {
        alert('maquina jogou pedra');
        alert('voce perdeu');
    }

    if (jgdMaquina[numero] == 1 && jogada == '1') {
        alert('maquina jogou papel');
        alert('voce perdeu');
    }

    if (jgdMaquina[numero] == 1 && jogada == '2') {
        alert('maquina jogou papel');
        alert('empate');
    }

    if (jgdMaquina[numero] == 1 && jogada == '3') {
        alert('maquina jogou papel');
        alert('voce ganhou');
    }

    if (jgdMaquina[numero] == 2 && jogada == '1') {
        alert('maquina jogou tesoura');
        alert('voce ganhou');
    }

    if (jgdMaquina[numero] == 2 && jogada == '2') {
        alert('maquina jogou tesoura');
        alert('voce perdeu');
    }

    if (jgdMaquina[numero] == 2 && jogada == '3') {
        alert('maquina jogou tesoura');
        alert('empate');
    }

}

// Funcao principal
function main (){
    alert('Escolha a sua jogada: ');
    var jgdJogador = prompt(`
                            1 - Pedra
                            2 - Papel
                            3 - Tesoura
                            `);
    if (jgdJogador == '1' || jgdJogador == '2' || jgdJogador == '3'){
        maquina(jgdJogador);
    }
}
  • jgdMaquina[numero] returns stone, paper or scissors and not a numerical value, so jgdMaquina[numero] == 0, jgdMaquina[numero] == 1 and jgdMaquina[numero] == 2 will always be invalid

1 answer

0


The biggest problem is that it created a array needlessly and is comparing his element which is a text with a number, it makes no sense, just compare the drawn number with the desired number in that iteration.

There were other needless things I took away (I did not solve the less important problems that do not prevent normal functioning):

function maquina(jogada) {
    var numero =  Math.floor(Math.random() * 3);
    if (numero == 0 && jogada == '1') {
        alert('maquina jogou pedra');
        alert('empate');
    }
    if (numero == 0 && jogada == '2') {
        alert('maquina jogou pedra');
        alert('voce ganhou');
    }
    if (numero == 0 && jogada == '3') {
        alert('maquina jogou pedra');
        alert('voce perdeu');
    }
    if (numero == 1 && jogada == '1') {
        alert('maquina jogou papel');
        alert('voce perdeu');
    }
    if (numero == 1 && jogada == '2') {
        alert('maquina jogou papel');
        alert('empate');
    }
    if (numero == 1 && jogada == '3') {
        alert('maquina jogou papel');
        alert('voce ganhou');
    }
    if (numero == 2 && jogada == '1') {
        alert('maquina jogou tesoura');
        alert('voce ganhou');
    }
    if (numero == 2 && jogada == '2') {
        alert('maquina jogou tesoura');
        alert('voce perdeu');
    }
    if (numero == 2 && jogada == '3') {
        alert('maquina jogou tesoura');
        alert('empate');
    }
}

alert('Bem vindo ao Pedra, Papel e Tesoura!')
if (prompt('Aperte 1 para comecar a jogar ') === '1') {
    alert('Escolha a sua jogada: ');
    var jgdJogador = prompt(`
                            1 - Pedra
                            2 - Papel
                            3 - Tesoura
                            `);
    if (jgdJogador === '1' || jgdJogador === '2' || jgdJogador === '3') maquina(jgdJogador);
}

I put in the Github for future reference.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.