javascript - How do I call a method within a function onclick? -
i'm trying create game tells how hot or cold compared random number. the user clicks button want checknumber
method run. how go this? feel free let me know things wrong code i'm trying learn.
so far have tried in html:
<button type="submit" id="userguess" onclick="hotcold().checknumber()"></button>
in js:
function hotcold(){ var realnumber = 0; var newgame = function(){ realnumber = math.floor(math.random() * 100)+1 return realnumber } var checknumber = function (){ var userinput = parseint(document.getelementbyid("userguess").value); var message ; if ( userinput == realnumber){ message = " job did it"} else if (math.abs(userinput - realnumber) > 30){ var message = "you're colder cold "} else if (math.abs(userinput - realnumber) <= 30 && math.abs(userinput - realnumber) > 10 ){ message = " you're getting closer"} else if (math.abs(userinput - realnumber) <= 10 && math.abs(userinput - realnumber) > 2 ){ message = " you're hot, im scared"} else if (math.abs(userinput - realnumber) <= 2){ message = " if don't next turn, wrong you"} else { message = " skjdksjhdsk "} alert(realnumber); alert(message); } return realnumber; }
<input type="text" id="userguess></input> <button onclick="checknumber()">click guess!</button> <script> var realnumber; var newgame = function(){ realnumber = math.floor(math.random() * 100) + 1; }; newgame(); var checknumber = function (){ var userinput = parseint(document.getelementbyid("userguess").value); var message; //always use 3 '=' signs in javascript when comparing values if (userinput === realnumber) { message = " job- did it!"; newgame(); } else if (math.abs(userinput - realnumber) > 30) { // 'message' variable declared. don't use 'var' again here message = "you\'re colder cold"; } else if (math.abs(userinput - realnumber) <= 30 && math.abs(userinput - realnumber) > 10 ) { message = "you\'re getting closer..."; } else if (math.abs(userinput - realnumber) <= 10 && math.abs(userinput - realnumber) > 2 ) { message = "you\'re hot, i\'m scared"; } else if (math.abs(userinput - realnumber) <= 2){ message = "if don\'t next turn, something\'s wrong you"; } //not sure why want show user real number before guessed //alert(realnumber); alert(message); }; </script>
here's quick tip you: save typing , unnecessary function calls saving result of math.abs(userinput - realnumber)
variable:
... var userinput = parseint(document.getelementbyid("userguess").value); var difference = math.abs(userinput - realnumber); var message; ... } else if (difference > 30) { ...
Comments
Post a Comment