Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Jogo com incremento porem falta um randon

Ola pessoal. Tentei deixar o jogo mais complexo, dando punição sempre que erra e dizendo se o numero é maior ou menor. porem a punição sempre fica a mesma, mudando somente quando recarrega a pagina. alguem pode me ajudar?

<meta charset="UTF-8">

<input/>
<button>Compare com o meu segredo</button>

<script>
    var punicao = Math.round (Math.random () * 4 ); // numero da punição a ser escolhida aleatoriamente
    var segredo = Math.round (Math.random () * 10 ); // numero a ser adivinhado
    var input = document.querySelector("input");
input.focus()

function castigo() {
    if (punicao == 1) {alert("pule 10 vezes")}
            else if (punicao == 2) {alert("conte um segredo")}
                else if (punicao == 3) {alert("tome um copo de agua")}
                    else if (punicao == 4) {alert("gire 8 vezes")}};// informa a variavel punicao oque a pessoa deve fazer ao errar o numero a ser adivinhado


    function verifica() {

        if(input.value == segredo) {

        alert("Você ACERTOU!");
        } 
         else if (segredo>input.value){

        alert("Você ERROU o numero eh maior");
        castigo()





            input.value= ``
        input.focus()
    }

          else if (segredo < input.value) {
            alert (`o numerdo eh menor`)
            castigo()
        }

        input.value= ``
        input.focus()




                input.value = "";

    }

    var button = document.querySelector("button");

    button.onclick = verifica;



</script>
2 respostas

Faaaaala, Andre, beleza?

O que acontece no seu jogo é o seguinte: você está gerando tanto o segredo quanto a punição na hora que a página é carregada. Para alcançar o que você quer, eu recomendaria você a mover a sua linha

var punicao = Math.round (Math.random () * 4 ); // numero da punição a ser escolhida aleatoriamente

para dentro da função de castigo, assim, toda vez que você executar a função castigo, irá gerar um número novo, logo, uma punição diferente.

solução!

Muito obrigado Filipe.

conforme passou fui dando uma implementada no joguinho. e deu certo agora. se quiser dar uma olhadinha ele mudou bastante haha.

<meta charset="UTF-8">
<h2>TENTE DESCOBRIR O NUMERO DE 1 a 10 </h2>
    <input/>
<button>clique aqui para ver se acertou</button>

<script>



     /////////////////// NUMERO A SER DESCOBERTO/////////////////
    var segredo = Math.round (Math.random () * 10 ); 
    var input = document.querySelector("input");
input.focus()



///////////////NUMERDO DE CASTIGOS////////////////


var numeroCastigos = prompt("Adicione castigos para começar nosso jogo de adivinhação.  Quantos castigos vc vai adicionar?");

    for(contagemCastigos = 0 ; contagemCastigos < numeroCastigos ; contagemCastigos++)



//////// NAO REPETE CASTIGO E ADICIONA CASTIGO IF TRUE//////////////
var bazimga = []
var contador = 1
    while(contador <= numeroCastigos) 
    {     

    var repetido = false;

    var testoCastigos = prompt(`escreva o castigo`)

    for(var verificaRepetido = 0 ; verificaRepetido < numeroCastigos.length; verificaRepetido++){

if (bazimga[verificaRepetido] == testoCastigos ){
   repetido = true
    break;
}
}
if (repetido == false) {
    bazimga.push(testoCastigos)

contador= contador + 1}


}

//////////sorteia castigo e mostra castigo////////////////

function castigo() {
    var sorteioBazimga =  bazimga[Math.floor(Math.random()*bazimga.length)];


    alert (sorteioBazimga)

}

////////////////errou =- e acertou//////////////
    function verifica() {


        if(input.value > 10) {
            alert ('coloque 1 numero de 0 a 10')}

       else if(input.value == segredo) {

        alert("Você ACERTOU!");
        } 
         else if (segredo>input.value){

        alert("Você ERROU o numero eh maior");
        castigo(``)





            input.value= ``
        input.focus()
    }

          else if (segredo < input.value) {
            alert ('o numerdo eh menor')
            castigo()
        }

        if(input.valeu > 10) {
            alert ('coloque um numero de 0 a 10')}

        input.value= ``
        input.focus()






                input.value = "";

    }

    var button = document.querySelector("button");

    button.onclick = verifica;



</script>