Oi Osiris!!
Eu acho importante tirar do laço while os comandos que você quer que fiquem "fixos" e deixar ali só o que vai precisar ser refeito a cada repetição.
Daí, eu pensei que a sua ideia talvez fosse manter o limite escolhido e o número gerado aleatoriamente e apenas dar uma nova chance para o jogador a cada erro, era isso? Daí é possível fazer da forma abaixo:
<meta charset = "UTF-8">
<script>
function pulaLinha(){
document.write("<br> <br>");
}
function mostra(texto){
pulaLinha();
document.write(texto);
}
var limite = parseInt(prompt("qual o valor limite?"));
console.log(limite);
var sorte = Math.round(Math.random() * limite);
console.log(sorte);
var escolha = parseInt(prompt("qual valor voce escolhe"));
console.log(escolha);
while(sorte != escolha){
escolha = parseInt(prompt("Você errou! Vou te dar uma chance de tentar de novo"));
console.log(escolha);
}
mostra("parabéns você acertou");
</script>
Perceba que aquilo que estava antes dentro do while ficou fora para o primeiro teste e, caso o jogador erre o chute (sorte != escolha), vamos dar uma nova chance para ele, atualizando a variável escolha e refazendo o teste a cada iteração.
Mas já se a ideia é a cada erro repetir todo o processo, ficaria um pouco diferente:
<meta charset = "UTF-8">
<script>
function pulaLinha(){
document.write("<br> <br>");
}
function mostra(texto){
pulaLinha();
document.write(texto);
}
var sorte = 0;
var escolha = 1;
while(sorte != escolha){
var limite = parseInt(prompt("qual o valor limite?"));
console.log(limite);
sorte = Math.round(Math.random() * limite);
console.log(sorte);
escolha = parseInt(prompt("qual valor voce escolhe"))
console.log(escolha);
}
mostra("parabéns você acertou");
</script>
Daí fica parecido com o que vc fez, com a diferença que o while vai repetir o processo todo enquanto as variáveis "sorte" e "escolha" forem diferentes, e para isso funcionar elas precisaram ser definidas inicialmente com valores diferentes fora do laço, porque senão ele ficaria sem referência para fazer o primeiro teste.
Acho que era o erro que talvez estivesse ocorrendo pra vc no começo e que levou vc colocar o teste como (abc == trew), pq dessa forma o programa "entra" no laço, presumindo que essas variáveis ainda não definidas até então fossem iguais (a zero?).
O mesmo poderia ser feito no seu código e funcionaria, mas me parece desnecessário ter duas variáveis a mais pra fazer esse teste, ficam ocupando memória do sistema à toa. Perceba também que uma vez definida a variável, não precisamos mais escrever o "var" antes de novo quando vamos atualizá-la.
<meta charset = "UTF-8">
<script>
function pulaLinha(){
document.write("<br> <br>");
}
function mostra(texto){
pulaLinha();
document.write(texto);
}
var abc = 2;
var trew = 1;
while(abc != trew){
var limite = parseInt(prompt("qual o valor limite?"));
console.log(limite);
var sorte = Math.round(Math.random() * limite);
console.log(sorte);
var escolha = parseInt(prompt("qual valor voce escolhe"))
console.log(escolha);
abc = escolha;
trew = sorte;
}
mostra("parabéns você acertou");
</script>
Abraço!!