Olá, Luciane! Tudo bom?
É isso aí! Vamos tentar e tentar!
O mais importante não são os erros em si, mas entender o porque do erro.
Mais vale diversas tentativas de tentar algo diferente que, simplesmente copiar e seguir em frente!
Eu tomei a liberdade e fiz algumas alterações. Vamos lá!
Todas as vezes em que rodamos um exercício nesse estilo ele roda de uma única vez. O que eu quero dizer com isso? Quando usamos alert
e mostra
terão comportamentos diferentes. Vou mostrar na prática:
Veja que quando você roda o código, e erra todas as vezes, o comportamento é o esperado!
Agora, quando acerto, ele não mostra a mensagem "vc acertou o segredo"
logo de início. Ele mostra "Tentativas se esgotaram. Quem sabe da próxima tentativa você acerta!!"
e depois aparece "vc acertou o segredo"
O navegador vai rodar todo o código para fazer o último comando pendente. Perceba que enquanto digitamos o chute, o navegador fica rodando, aguardando o comando para ser executado. Resumindo, os alert
s serão executados primeiro e depois o mostra
que é algo estático. Como o seu encerramento de código termina com alert
, ele guarda a frase de acerto, executa o alert
e por último libera o mostra
.
Então para isso, troquei
alert("vc acertou o segredo")
e támbem o
mostra("Fim do jogo!!")
Ok! Agora se eu acertar em já mostra o alert
de acerto e encerra com o mostra
Outro ponto: retirei o while
, pois ele não seria usado rs. Se acertasse, ele já pularia para fora do loop
por causa do break
. E tudo bem! Está correto ele não existir ;-)
Um outro ponto é enxugar mais o contador de tentativas
. Apliquei dentro do for
var tentativas = 1;
for (tentativas; tentativas <= 3; tentativas++) {
Aqui eu digo que quero que as tentativas
comecem em 1
e que quando forem iguais a 3
"game over". A sua também está correta!!!
Essa variável fora faz com que guarde a somatória de tentativas
.
Ah! Adicionei também um console.log
só para ver através do console
do navegador quais são os números que estão sendo sorteados, pois ele faz um novo sorteio a cada tentativa. Essa você não facilitou o apostador, hein Luciane! ahaha
O código completo ficará dessa forma:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
}
function mostra(frase) {
document.write(frase);
pulaLinha();
}
alert("Qual numero você acha que eu tenho no meu segredo?");
function adivinha() { // inicio da chave adivinha
return Math.round(Math.random() * 10);
}
var tentativas = 1;
for (tentativas; tentativas <= 3; tentativas++) {
var segredo = adivinha();
console.log(segredo);
var chute = parseInt(prompt("Vamos lá digite seu palpite."));
if (segredo == chute) {
alert("vc acertou o segredo")
break;
}
if (segredo > chute) {
alert("O segredo é maior que o seu chute")
} else {
alert("O segredo menor que seu chute")
}
}
mostra("Fim do jogo!!")
</script>
Espero ter ajudado e continue assim.
Qualquer duvida nos procure!