Ir para conteúdo

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

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.