So apparently according to my teacher I need to refine my syntax and logic. It doesn't make any sense (my code and my thoughts about this whole javascript thing)
var die = Math.random() * 6; // generate a random number
die = Math.ceil( die ); // round it to between 1 and 6
var counter = 1;
var x = prompt( "What is your first guess?"); // fill x variable with the guess. Then compare the value in die to the value in x. What would that code be?
while (counter < 3)
if (x==die)
{alert "Well done you win!"}
break;
}
else {
prompt ("Sorry. Not the right answer. Try again");
counter == counter+1;
}
var counter = counter+1;
var y = prompt("What is your second guess?"); // second x value
while (counter ==2)
if (y==die)
{alert "Well done"}
break;
}
else{
prompt ("Sorry, you were wrong. Last try.");
counter == counter+1;
}
var counter = counter+1;
var z = prompt("What is your third guess?"); // third x value
while (counter == 3)
if (z==die)
{alert "Well done"}
break;
}
else{
prompt ("Sorry, you lost.");
break;
}
The mistake is probably in the line
counter == counter+1;
It should an assignment expression
counter = counter + 1;
while
loop A good way to do that is store the strings in a array and then use them in single while
loop.
let arr = ["first","second","third"]; let die = Math.ceil(Math.random() * 6); console.log(die); let counter = 0; while(counter < 3){ let input = prompt("What is your " + arr[counter] + " guess?"); if(+input === die){ // +input converts input into a number here alert("You win"); break; } else{ alert("Sorry try again"); } counter++; }
for
loop I would do it using for
loop. Because the counter
variable is increasing one by one each time.
let arr = ["first","second","third"]; let die = Math.ceil(Math.random() * 6); console.log(die); for(let i = 0;i<3;i++){ let input = prompt("What is your " + arr[i] + " guess?"); if(+input === die){ // +input converts input into a number here alert("You win"); break; } alert("Sorry try again"); }
for..of
We already have an array of length 3
["first","second","third"]
. So we don't need to create a variable for loop and then use it. We can clean up the code the using for..of
. I also used template string for a perfect solution
let arr = ["first","second","third"]; let die = Math.ceil(Math.random() * 6); console.log(die); for(let x of arr){ let input = prompt(`What is your ${x} guess?`); if(+input === die){ // +input converts input into a number here alert("You win"); break; } alert("Sorry try again"); }
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.