-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathguess.js
137 lines (127 loc) Β· 3.6 KB
/
guess.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/* Need to
1. let user know if they are warmer or cooler based on
previous response
2. get layout alignment correct
3. not allow empty submissions
4. transition animations
5. disable form submission after game over instead of .hide()
6. Space between guesses in []
7. have buttons stop being stuck down
8. set minimum width for hint button
9. Refactor
*/
var randomNumber,
guesses = [];
guessesLeft = 5,
won = false;
var randomGenerator = function(){
randomNumber = Math.floor(Math.random() * 100);
}
var feedbackUpdate = function(hotCold, highLow, color){
$("#feedback").text("You are " + hotCold + ", guess " + highLow);
$(".jumbotron").animate({backgroundColor: color}, "slow");
}
var guessLeftUpdate = function(left){
var updateColor = function(color){
$("#guesses_Left").animate({backgroundColor: color}, "slow");
}
if(left == 4){
updateColor("#D5DFDC");
}
if(left == 3){
updateColor("#B1B8B6");
}
if(left == 2){
updateColor("#8C9290");
}
if(left == 1){
updateColor("#4F5251");
$("#guesses_Left").css("color", "white");
}
if(left == 0){
updateColor("black");
}
}
//Initialize Game
randomGenerator();
$(document).ready(function(){
//Set Guesses Left and Answer in HTML
$("#guesses_Left").text(guessesLeft);
$("#Answer").text(randomNumber).hide();
//Hint Handler
$("#Hint").on("click", function(){
$("#Answer").toggle();
$(this).blur();
});
//New Game Handler
$("#NewGame").on("click", function(){
location.reload();
$(this).blur();
});
//Form Submission
$("form").submit(function(event){
var guessValue = $("#yourGuess").val();
//Prevent page reload
event.preventDefault();
$("#Submit").blur();
//Empty submit, Game Over, Won
if(guessValue == "" || guessesLeft == 0 || won){
return;
}
//Check for previous guess
for(var i = 0; i < guesses.length; i++){
if(guesses[i] == (" " + guessValue)){
$("#feedback").text("You already guessed that!");
return;
}
}
//Add guess to guesses, update prompt
guesses.push(" " + guessValue);
$("#prompt").text(guesses);
//Decrement guessesLeft, update guesses_left
guessesLeft--;
$("#guesses_Left").text(guessesLeft);
guessLeftUpdate(guessesLeft);
//Correct Handler
if(guessValue == randomNumber){
$("#feedback").text("CORRECT! π");
$(".jumbotron").animate({backgroundColor: "forestgreen"}, "slow");
won = true;
}
//Game Over Handler
else if(guessesLeft <= 0){
$("#feedback").text("YOU LOSE! π± It was " + randomNumber.toString());
$(".jumbotron").animate({backgroundColor: "black"}, "slow");
}
//Cold
else if((guessValue - randomNumber) >= 30){
feedbackUpdate("cold", "lower β", "royalblue");
} else if((guessValue - randomNumber) <= -30){
feedbackUpdate("cold", "higher β", "royalblue");
}
//Warm
else if((guessValue - randomNumber) < 30 &&
(guessValue - randomNumber) >= 10){
feedbackUpdate("warm", "lower β", "darkorange");
} else if((guessValue - randomNumber) > -30 &&
(guessValue - randomNumber) <= -10){
feedbackUpdate("warm", "higher β", "darkorange");
}
//Hot
else if((guessValue - randomNumber) < 10 &&
(guessValue - randomNumber) >= 5){
feedbackUpdate("hot", "lower β", "orangered");
} else if((guessValue - randomNumber) > -10 &&
(guessValue - randomNumber) <= -5){
feedbackUpdate("hot", "higher β", "orangered");
}
//Super Hot
else if((guessValue - randomNumber) < 5 &&
(guessValue - randomNumber) > 0){
feedbackUpdate("π₯", "lower β", "red");
} else if((guessValue - randomNumber) > -5 &&
(guessValue - randomNumber) < 0){
feedbackUpdate("π₯", "higher β", "red");
}
})
});