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 alerte mostraterã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 alerts serão executados primeiro e depois o mostraque é algo estático. Como o seu encerramento de código termina com alert, ele guarda a frase de acerto, executa o alerte 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 alertde 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 1e 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.logsó para ver através do consoledo 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!