Jump to content

Recommended Posts

Estou acompanhando o livro:
Logica programacao com JS da casa do codigo
Até o momento todos exercicios executados com sucesso.
Exceto o Jogo da adivinhação dos numeros - topico 5.11

Exercicio:

Há uma forma de escrever esse nosso jogo sem utilizar o break, apenas mudando
a condição do while, adicionando mais uma clausula através do operador que
significa E (o &&). Consegue adivinhar como?

 

Problema: Sem o break fica em loop infinito

 

<script>

var numero3 = Math.round(Math.random() * 5);
var tentativa3 = 1;
while(tentativa3 = numero3) {
    var chute3 = prompt('qual numero ? ');
    mostra('Numero digitado : ' + chute3);
    if(chute3 ==numero3) {
    alert('Parabens ACERTOU');
    mostra('Acertou: O numero é : ' + numero3 + ' : FIM');
     } else {
    alert('Voce ERROU');
    if(chute3 > numero3) {
    alert('Chute é maior que o numero pensado ');
    mostra('Chute é maior que o numero pensado' + '<br>');
    }
    if(chute3 < numero3) {
    alert('Chute é menor que o numero pensado ' );
    mostra('Chute é menor que o numero pensado' + '<br>');
    }
    }
    tentativa3++;
}
</script>

 

 

Obrigado

Share this post


Link to post
Share on other sites

@improgram Bom a dica está ai "adicionando mais uma clausula através do operador que
significa E (o &&)
", para você parar o loop basta adiciona mais uma condição para o loop ocorrer, usando o operador logico && = AND = e

 

Exemplo:

var numero3 = Math.round(Math.random() * 5);
var tentativa3 = 1;
var loop = true;
while (tentativa3 = numero3 && loop == true)
{
    var chute3 = prompt('qual numero ? ');
    alert('Numero digitado : ' + chute3);
    
    if (chute3 ==numero3)
    {
    	alert('Parabens ACERTOU');
   		alert('Acertou: O numero é : ' + numero3 + ' : FIM');
    	loop = false;
    } 
    else 
    {
    	alert('Voce ERROU');
        
    	if(chute3 > numero3)
        {
    		alert('Chute é maior que o numero pensado ');
    		alert('Chute é maior que o numero pensado' + '<br>');
    	}
    	if(chute3 < numero3)
        {
    		alert('Chute é menor que o numero pensado ' );
    		alert('Chute é menor que o numero pensado' + '<br>');
    	}
    }
    tentativa3++;
}

Nesse exemplo eu adiciono mais uma condição para ocorrer o loop. enquanto o valor da variável loop for igual a TRUE o loop vai ocorrer, caso não o loop vai para. Quando o jogador acerta o valor  eu troco o valor da variável para false assim o loop para.

Share this post


Link to post
Share on other sites
Em 26/08/2019 at 20:23, gabrielms disse:

@improgram Bom a dica está ai "adicionando mais uma clausula através do operador que
significa E (o &&)
", para você parar o loop basta adiciona mais uma condição para o loop ocorrer, usando o operador logico && = AND = e

 

Exemplo:


var numero3 = Math.round(Math.random() * 5);
var tentativa3 = 1;
var loop = true;
while (tentativa3 = numero3 && loop == true)
{
    var chute3 = prompt('qual numero ? ');
    alert('Numero digitado : ' + chute3);
    
    if (chute3 ==numero3)
    {
    	alert('Parabens ACERTOU');
   		alert('Acertou: O numero é : ' + numero3 + ' : FIM');
    	loop = false;
    } 
    else 
    {
    	alert('Voce ERROU');
        
    	if(chute3 > numero3)
        {
    		alert('Chute é maior que o numero pensado ');
    		alert('Chute é maior que o numero pensado' + '<br>');
    	}
    	if(chute3 < numero3)
        {
    		alert('Chute é menor que o numero pensado ' );
    		alert('Chute é menor que o numero pensado' + '<br>');
    	}
    }
    tentativa3++;
}

Nesse exemplo eu adiciono mais uma condição para ocorrer o loop. enquanto o valor da variável loop for igual a TRUE o loop vai ocorrer, caso não o loop vai para. Quando o jogador acerta o valor  eu troco o valor da variável para false assim o loop para.

Perfeito !

 

Teste efetuado com sucesso, acredito que deverei me aprofundar nos conceitos de logica, somado a falta de experiencia com o efeito da procastinação, resultou na busca de ajuda, agora é exercitar e muito foco.

obrigado

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.