Hola Lara, al parecer el error es porque tu estas utilizando una variable que esta dentro del while y ya no la puedes utilizar en el if porque ya lo cerraste . Intenta colocar esa variable fuera del while como tienes las demás
Hola oscar, gracias por la ayuda, pero ya intente eso y no me funcionó. Ene l video el profesor lo pone dentro del while y en su codigo q descargue esta igual. No se pq no me funciona de ninguna de las maneras. Luego me sentaré a ver q puede ser pq ya se me murieron los ojos de mirar tan fijamente el codigo jajaj
Hola, podrías copiar el código en un mensaje? Así lo puedo probar mejor jaja. Fijate que hay un ícono que es < / > . Insertas el código entre esas comillas y te lo va a pegar con el formato apropiado.
Puedes compartir tu código para analizarlo también. Saludos
<meta charset="utf-8">
<h1> PROGRAMA JUEGO </h1>
<script>
function saltarLinea () {
document.write ("<br>")
document.write ("<br>")
document.write ("<br>")
}
function imprimir (frase) {
document.write(frase);
saltarLinea();
}
let numeroPensado = Math.round(Math.random()*10)
let intentos = 3;
let contador = 1;
while (contador <= intentos) {
let numeroLanzado = parseInt(prompt("Ingrese un numero entre 0 y 10"))
if (numeroPensado == numeroLanzado) {
alert("Has acertado en el intento " + contador + ".El numero pensado era " + numeroPensado)
break;
}
else {
alert("No has acertado");
}
contador ++;
}
if (numeroPensado == numeroLanzado) {
imprimir("Has acertadado en el intento " + contador + ".El numero pensado era " + numeroPensado);
}
else {
imprimir("No ha acertado, el numero pensado era " + numeroPensado);
}
imprimir("FIN DEL JUEGO")
</script>
Hola Lara, creo, pero no me acuerdo bien... que me paso lo mismo... no se porqeu no te toma la variable numeroLanzado.. pero intenta declararla afuera del while yo probaria esata dos opciones
let numeroLanzado = 0;
while(....){
numeroLanzado = parseInt(......);
y la otra forma que haria seria hacer el let con el prompt todo afuerade while..
cre que de esas forma te va a funcionar.... lo que no tengo claro es porque no lo toma como lo tenes, por que es una variable dentro del while
No sé si cambia en algo...Pero le cambié la declaración a numeroLanzado de let a var y me lo tomó bien al código. Les debo la explicación lógica al 100% jajajaj pero me funcionó de esa forma.
yo no uso var pq estoy acostumbrada al let. deberia funcionar igual. Ya fue lo dejo asi JAJJAJA gracias a todos x la ayuda
si eso pasa porque var hace a todas las variables como global... hoisting se llama por si quieren investigar pero trae algunos problemas... por eso dije que coloque la variable afuera del while
Voy a leer más sobre eso Gianni, porque medio peligroso mandar variables globales así jajajaj. Gracias por la info!
<script>
function saltarLinea () {
document.write ("<br>")
document.write ("<br>")
document.write ("<br>")
}
function imprimir (frase) {
document.write(frase);
saltarLinea();
}
let numeroPensado = Math.round(Math.random()*10);
let intentos = 3;
let contador = 1;
while (contador <= intentos) {
let numeroLanzado = parseInt(prompt("Ingrese un numero entre 0 y 10"));
if (numeroPensado == numeroLanzado) {
imprimir("Has acertado en el intento " + contador + " el numero era " + numeroPensado);
break;
}
else {
alert("No has acertado");
imprimir("No ha acertado");
}
contador ++;
}
imprimir("FIN DEL JUEGO")
</script>
Fijate que lo dejé así, solamente le cambié algunas cosas. Esta funcionando bien
claro pero ahi esta diferente (sin el segundo if) q el profesor puso. asi si me funcionaba. gracias igual
Hola Lara, numeroLanzado está definida como una variable local dentro del While por eso no te la reconoce el if. Para que funcione tendrías que declararla primero como variable gobal sin darle un valor y después dárselo dentro del While.
El código quedaría así:
<meta charset="utf-8">
<h1> PROGRAMA JUEGO </h1>
<script>
function saltarLinea () {
document.write ("<br>")
document.write ("<br>")
document.write ("<br>")
}
function imprimir (frase) {
document.write(frase);
saltarLinea();
}
let numeroPensado = Math.round(Math.random()*10)
let intentos = 3;
let contador = 1;
let numeroLanzado;
while (contador <= intentos) {
numeroLanzado = parseInt(prompt("Ingrese un numero entre 0 y 10"))
if (numeroPensado == numeroLanzado) {
alert("Has acertado en el intento " + contador + ".El numero pensado era " + numeroPensado)
break;
}
else {
alert("No has acertado");
}
contador ++;
}
if (numeroPensado == numeroLanzado) {
imprimir("Has acertadado en el intento " + contador + ".El numero pensado era " + numeroPensado);
}
else {
imprimir("No ha acertado, el numero pensado era " + numeroPensado);
}
imprimir("FIN DEL JUEGO")
</script>