0

Hey all,

I'm having to write a program that generates a random number between 1-1000 and then allows the user to make guesses in a text box, answering to high or to low, until the correct answer is entered. I had the program working fine with using strictly prompts and alerts but when I tried to create a form I started having trouble. Please take a look and give me any advice you may have. Thanks!!

<?xml version = "1.0" encoding = "utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns = "http://www.w3.org/1999/xhtml">
<head>

<title>9.30</title>

<script type="text/javascript">

window.alert("Please Enter a Number Between 1 and 1000 in the field!");

function Game()
{
	var inputField1 = document.getElementById( "entry1" );
	var guess = parseFloat( inputField1.value );
	var answerField = document.getElementById( "answer" );
	answerField.value = guessANum( guess );
}

function guessANum( guess ){
	var randomNumber = Math.floor(1 + Math.random() * 1000);
	while (randomNumber != guess){
		if (randomNumber > guess)
		{
			guess = window.alert("Too low, try again.");
		}
		else if (randomNumber < guess)
		{
			guess = window.alert("Too high, try again.");
		}
	}
	window.alert("Congratulations. You guessed the number!")
	//var again = window.prompt("Enter 'yes' to play again");
	//if (again == "yes")
	
		//guessANum();
	}

</script>
</head>
<body>
	<form action = ""> 
		<div> 
			<label>Your Guess:
				<input id = "entry1" type = "text" /></label> 
				<br /> 
				<input type = "button" value = "Calculate" 
				onclick = "Game()" /> 
		</div> 
	</form> 
</body>
</html>
2
Contributors
3
Replies
6
Views
7 Years
Discussion Span
Last Post by parry_kulk
0

First there is problem in the line

var answerField = document.getElementById( "answer" );

You are trying to access an element with id="answer". But there is no such element on the html page.

Second I would suggest you to rethink your algorithm used in the method guessANum()
You might enter into a infinite loop because of while and also on click of 'Calculate' button the guess number will change each time defeating the purpose that the user must guess the number

0

I'll try that out ... Another question I had was for resetting the text field upon user guess. Is there a way to get the button to perform two operations or would I need to make a function for that?

0

you can perform two or more functions on button click like

<input type = "button" value = "Calculate" onclick = "func1();func2();" />

and perform different actions in these functions

OR

write javascript itself in onclick as,

<input type = "button" value = "Calculate" onclick = 'Game();document.getElementById( "entry1" ).value="";' />

Just be careful with single and double quotes used

But the way I would recommend is to have the line

document.getElementById( "entry1" ).value="";

at the end of the Game() function after the call to guessANum()

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.