Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Basics (Retired) Making Decisions with Conditional Statements Improving the Random Number Guessing Game

Matthew Lurie
Matthew Lurie
3,512 Points

Code not running

'''javascript var correctGuess = false; var randomNumber = Math.floor(Math.random() * 6 ) + 1; var guess = prompt('I am thinking of a number between 1 and 6. What is it?'); if (parseInt(guess) === randomNumber ) { correctGuess = true; } else if ( parseInt(guess) < randomNumber ) { var guessMore = prompt('Try again. The number I am thinking of is more than ' + guess'); if (parseInt(guessMore) === randomNumber ) { correctGuess = true; } } else if ( parseInt(guess) > randomNumber ) { var guessLess = prompt('Try again. The number I am thinking of is less than ' + guess'); if (parseInt(guessLess) === randomNumber ) { correctGuess = true; if ( correctGuess ) { document.write('<p>You guessed the number!</p>'); } else { document.write('<p>Sorry. The number was ' + randomNumber + '.</p>'); } '''

2 Answers

Kyle Knapp
Kyle Knapp
21,526 Points

You have two unclosed strings after more than ' + guess' and less than ' + guess', meaning that you typed an opening quote mark without typing a closing one, making the interpreter think that everything after your open quote mark was a string. Here the extra quote marks aren't needed and you can just delete them.

There were also a few unmatched brackets. Every conditional statement should start with { and end with }

I found these errors by pasting your code into JS fiddle and proofreading each line one at a time. JS fiddle and other editors will highlight your syntax mistakes so you can hover over them and see what needs to be fixed.

Working code with corrections:

var correctGuess = false; 
var randomNumber = Math.floor(Math.random() * 6 ) + 1; 
var guess = prompt('I am thinking of a number between 1 and 6. What is it?'); 
if (parseInt(guess) === randomNumber ) { 
    correctGuess = true; 
} else if ( parseInt(guess) < randomNumber ) {
    var guessMore = prompt('Try again. The number I am thinking of is more than ' + guess); 
}
if (parseInt(guessMore) === randomNumber ) {
    correctGuess = true; 
} else if ( parseInt(guess) > randomNumber ) { 
    var guessLess = prompt('Try again. The number I am thinking of is less than ' + guess);
}
if (parseInt(guessLess) === randomNumber ) { 
    correctGuess = true; 
}
if ( correctGuess ) { 
    document.write('<p>You guessed the number!</p>'); 
} else { 
    document.write('<p>Sorry. The number was ' + randomNumber + '.</p>');
}

Sorry to reply to an old post but I was having this same problem, and it's actually Dave's mistake if you watch the video. Just a heads up to anyone having any issues.