SHOW:
|
|
- or go back to the newest paste.
1 | - | // https://studio.code.org/projects/applab/42eLJ_-8kwTPIvlSoOLlZ05Bvb82ZefN0_lCJXn9QVQ |
1 | + | |
2 | ||
3 | - | // mainScreenIcon image was provided by code.org, labelled as icon://fa-keyboard-o |
3 | + | |
4 | ||
5 | {word: "CAT", difficulty: "EASY"}, | |
6 | {word: "DOG", difficulty: "EASY"}, | |
7 | {word: "BALL", difficulty: "EASY"}, | |
8 | {word: "FISH", difficulty: "EASY"}, | |
9 | {word: "TREE", difficulty: "EASY"}, | |
10 | {word: "BOOK", difficulty: "EASY"}, | |
11 | {word: "MOON", difficulty: "EASY"}, | |
12 | {word: "STAR", difficulty: "EASY"}, | |
13 | {word: "CAKE", difficulty: "EASY"}, | |
14 | {word: "BIRD", difficulty: "EASY"}, | |
15 | {word: "SNOW", difficulty: "EASY"}, | |
16 | {word: "FROG", difficulty: "EASY"}, | |
17 | {word: "SAND", difficulty: "EASY"}, | |
18 | {word: "CAR", difficulty: "EASY"}, | |
19 | {word: "BEE", difficulty: "EASY"}, | |
20 | {word: "BEAR", difficulty: "EASY"}, | |
21 | {word: "SHIP", difficulty: "EASY"}, | |
22 | {word: "LAND", difficulty: "EASY"}, | |
23 | {word: "BOAT", difficulty: "EASY"}, | |
24 | {word: "APPLE", difficulty: "EASY"}, | |
25 | {word: "MILK", difficulty: "EASY"}, | |
26 | {word: "HAND", difficulty: "EASY"}, | |
27 | {word: "FOOT", difficulty: "EASY"}, | |
28 | {word: "GAME", difficulty: "EASY"}, | |
29 | {word: "KEY", difficulty: "EASY"}, | |
30 | {word: "DOOR", difficulty: "EASY"}, | |
31 | {word: "FARM", difficulty: "EASY"}, | |
32 | {word: "RAIN", difficulty: "EASY"}, | |
33 | {word: "POND", difficulty: "EASY"}, | |
34 | {word: "BACK", difficulty: "EASY"}, | |
35 | {word: "BARK", difficulty: "EASY"}, | |
36 | {word: "SALT", difficulty: "EASY"}, | |
37 | {word: "WIND", difficulty: "EASY"}, | |
38 | {word: "WORM", difficulty: "EASY"}, | |
39 | {word: "KING", difficulty: "EASY"}, | |
40 | {word: "QUEEN", difficulty: "EASY"}, | |
41 | {word: "SPADE", difficulty: "EASY"}, | |
42 | {word: "JOKE", difficulty: "EASY"}, | |
43 | ||
44 | // MEDIUM DIFFICULTY | |
45 | ||
46 | {word: "TIGER", difficulty: "MEDIUM"}, | |
47 | {word: "DANCE", difficulty: "MEDIUM"}, | |
48 | {word: "BREAD", difficulty: "MEDIUM"}, | |
49 | {word: "GRASS", difficulty: "MEDIUM"}, | |
50 | {word: "CHAIR", difficulty: "MEDIUM"}, | |
51 | {word: "OCEAN", difficulty: "MEDIUM"}, | |
52 | {word: "MUSIC", difficulty: "MEDIUM"}, | |
53 | {word: "CANDY", difficulty: "MEDIUM"}, | |
54 | {word: "WATER", difficulty: "MEDIUM"}, | |
55 | {word: "CLOUD", difficulty: "MEDIUM"}, | |
56 | {word: "TABLE", difficulty: "MEDIUM"}, | |
57 | {word: "BRUSH", difficulty: "MEDIUM"}, | |
58 | {word: "EAGLE", difficulty: "MEDIUM"}, | |
59 | {word: "TRAIN", difficulty: "MEDIUM"}, | |
60 | {word: "PAPER", difficulty: "MEDIUM"}, | |
61 | {word: "WATCH", difficulty: "MEDIUM"}, | |
62 | {word: "SUGAR", difficulty: "MEDIUM"}, | |
63 | {word: "SLIME", difficulty: "MEDIUM"}, | |
64 | {word: "SMILE", difficulty: "MEDIUM"}, | |
65 | {word: "MONEY", difficulty: "MEDIUM"}, | |
66 | {word: "GREEN", difficulty: "MEDIUM"}, | |
67 | {word: "BLUE", difficulty: "MEDIUM"}, | |
68 | {word: "FIELD", difficulty: "MEDIUM"}, | |
69 | {word: "CLOCK", difficulty: "MEDIUM"}, | |
70 | {word: "SHOES", difficulty: "MEDIUM"}, | |
71 | {word: "STORM", difficulty: "MEDIUM"}, | |
72 | {word: "ISLAND", difficulty: "MEDIUM"}, | |
73 | {word: "TRAVEL", difficulty: "MEDIUM"}, | |
74 | {word: "TICKET", difficulty: "MEDIUM"}, | |
75 | {word: "JADE", difficulty: "MEDIUM"}, | |
76 | {word: "ZEBRA", difficulty: "MEDIUM"}, | |
77 | ||
78 | // HARD DIFFICULTY | |
79 | ||
80 | {word: "ELEPHANT", difficulty: "HARD"}, | |
81 | {word: "FREEDOM", difficulty: "HARD"}, | |
82 | {word: "UNIVERSE", difficulty: "HARD"}, | |
83 | {word: "WORLD", difficulty: "HARD"}, | |
84 | {word: "FOREST", difficulty: "HARD"}, | |
85 | {word: "SYMPHONY", difficulty: "HARD"}, | |
86 | {word: "HOSPITAL", difficulty: "HARD"}, | |
87 | {word: "PICTURE", difficulty: "HARD"}, | |
88 | {word: "EXERCISE", difficulty: "HARD"}, | |
89 | {word: "WISDOM", difficulty: "HARD"}, | |
90 | {word: "HOLOGRAM", difficulty: "HARD"}, | |
91 | ||
92 | ]; | |
93 | ||
94 | var messages = [ | |
95 | ||
96 | {text: "This is a good start!", amount: 1}, | |
97 | {text: "Three right-answer-teers!", amount: 3}, | |
98 | - | var messages = [ // List of messages meant to be displayed once players reach a certain score. |
98 | + | |
99 | {text: "This is impressive!", amount: 8}, | |
100 | {text: "You're really good at this..!", amount: 10}, | |
101 | {text: "This is my highest score ever", amount: 14}, | |
102 | {text: "A whole 20 words with no misses??", amount: 20}, | |
103 | {text: "How are you doing this?", amount: 22}, | |
104 | {text: "Okay this is starting to get worrying", amount: 25}, | |
105 | {text: "You have to be cheating.", amount: 30} | |
106 | ||
107 | ||
108 | ]; | |
109 | ||
110 | var currentWord = ""; // Placeholder variabe for the current word chosen | |
111 | var scrambledWord = ""; // PLaceholder variable for the current word scrambled | |
112 | var hintUsed = false; // Bool value meant to hold whether or not a hint has been used | |
113 | var playerScore = 0; // Holds player current score | |
114 | var playerHighscore = 0; // Holds player highest score | |
115 | ||
116 | // Main Screen Handlers | |
117 | ||
118 | onEvent("mainScreenBegin", "click", function(){ // Functions runs when begin button is pressed | |
119 | ||
120 | setScreen("gameScreen"); // Sets screen to the game screen | |
121 | updateScreen(); // Calls updatescreen() function | |
122 | ||
123 | }); | |
124 | ||
125 | // Game Screen Handlers | |
126 | ||
127 | function updateScreen(){ // function ran when UI update is needed | |
128 | ||
129 | var randomPick = Math.floor(Math.random() * wordList.length); // Picks a random word from the list of words | |
130 | currentWord = wordList[randomPick].word; // Updates currentWord vaue to chosen word | |
131 | scrambledWord = scrambleWord(currentWord); // Runs scrambleWord(word) function with currentWord as sent parameter. | |
132 | ||
133 | setText("gameScreenScrambleBox", scrambledWord); // Updates the textbox to the scrambled word | |
134 | setText("gameScreenDifficulty", wordList[randomPick].difficulty); // Updates textbox to match current word difficulty | |
135 | ||
136 | // Series of if-statements ran in order to update the text color of word difficulty text box | |
137 | ||
138 | if (wordList[randomPick].difficulty == "EASY") { | |
139 | ||
140 | setProperty("gameScreenDifficulty", "text-color", "#17b300"); | |
141 | ||
142 | } else if (wordList[randomPick].difficulty == "MEDIUM") { | |
143 | ||
144 | setProperty("gameScreenDifficulty", "text-color", "#ffcb4c"); | |
145 | ||
146 | } else { | |
147 | ||
148 | setProperty("gameScreenDifficulty", "text-color", "#fb7070"); | |
149 | ||
150 | } | |
151 | ||
152 | // Updates player score and player highscore text boxes | |
153 | ||
154 | setText("gameScreenScore", "Score: " + playerScore); | |
155 | setText("gameScreenHScore", "Highscore: " + playerHighscore); | |
156 | ||
157 | hintUsed = false; // Resets hintUsed to false | |
158 | setText("gameScreenHDisplay", ""); // Resets textbox to blank | |
159 | ||
160 | setText("gameScreenTextInput", ""); // Resets user input text box to blank | |
161 | ||
162 | } | |
163 | ||
164 | // Parameter word holds the current randomly chosen word. | |
165 | function scrambleWord(word){ // Function ran when sent word needs to be scrambled | |
166 | ||
167 | var letters = word.split(""); // Separates characters into individuals and assigns them to the letters list | |
168 | ||
169 | for (var i = letters.length - 1; i > 0; i--){ // Loops through all elements in letters list | |
170 | ||
171 | var tempIndex = Math.floor(Math.random() * (i + 1)); // Creates a temporary index bet | |
172 | ||
173 | var tempVariable = letters[i]; // Temporary variable meant to hold current chosen letter | |
174 | letters[i] = letters[tempIndex]; // Changes the value of the letters[i] element to randomly chosen index | |
175 | letters[tempIndex] = tempVariable; // Changes the value of letters[tempIndex] element to formerly updated variable | |
176 | ||
177 | } | |
178 | ||
179 | return letters.join(""); // Joins the individual characters into one chunk of characters (scrambled word) | |
180 | ||
181 | } | |
182 | ||
183 | function updateScore(bool){ | |
184 | ||
185 | if (bool){ | |
186 | ||
187 | playerScore++; | |
188 | - | // Parameter bool holds true/false value, true used when added score, false used when removed score. |
188 | + | |
189 | - | function updateScore(bool){ // Function ran when score needs to be updated |
189 | + | if (playerScore > playerHighscore){ |
190 | ||
191 | - | if (bool){ // Function ran when bool parameter is true |
191 | + | |
192 | ||
193 | - | playerScore++; // Increases player score by 1 |
193 | + | |
194 | ||
195 | - | if (playerScore > playerHighscore){ // Updates player high score if player score is greater than current highest score |
195 | + | for (var i = 0; i < messages.length - 1; i++){ |
196 | ||
197 | if (messages[i].amount == playerScore){ | |
198 | ||
199 | setText("gameMessageDisplay", messages[i].text); | |
200 | ||
201 | - | for (var i = 0; i < messages.length - 1; i++){ // Loops through messages list |
201 | + | |
202 | ||
203 | - | if (messages[i].amount == playerScore){ // Continues function if the amount in messages list is equal to the player score |
203 | + | |
204 | ||
205 | - | setText("gameMessageDisplay", messages[i].text); // Updates text of the message displaying text box |
205 | + | |
206 | ||
207 | playerScore = 0; | |
208 | ||
209 | setText("gameMessageDisplay", ""); | |
210 | ||
211 | } | |
212 | ||
213 | - | playerScore = 0; // Resets score to 0 if player anwers incorrectly |
213 | + | |
214 | ||
215 | - | setText("gameMessageDisplay", ""); // Resets message displaying text box to 0 |
215 | + | |
216 | ||
217 | setScreen("mainScreen"); // Sets screen to main/home screen | |
218 | ||
219 | ||
220 | }); | |
221 | ||
222 | onEvent("gameScreenSubmit", "click", function(){ | |
223 | ||
224 | if (getText("gameScreenTextInput").toUpperCase() == currentWord || getText("gameScreenTextInput").toUpperCase() == currentWord + " " ){ | |
225 | ||
226 | updateScore(true); | |
227 | ||
228 | - | onEvent("gameScreenSubmit", "click", function(){ // Event ran when the submit button is pressed |
228 | + | |
229 | ||
230 | - | if (getText("gameScreenTextInput").toUpperCase() == currentWord || getText("gameScreenTextInput").toUpperCase() == currentWord + " " ){ // Checks if user inputted text is equal to the current word |
230 | + | |
231 | while (getTime() - currTime < 1000){} | |
232 | - | updateScore(true); // Runs update score function with bool set to true |
232 | + | |
233 | setProperty("gameScreenTextInput", "border-color", rgb(153, 153, 153)); | |
234 | ||
235 | playSound("sound://category_notifications/game_notification_83.mp3"); | |
236 | ||
237 | } else{ | |
238 | ||
239 | updateScore(false); | |
240 | ||
241 | - | // Visual and auditory aspects ran |
241 | + | |
242 | ||
243 | var currTime0 = getTime(); | |
244 | while (getTime() - currTime0 < 1000){} | |
245 | - | playSound("sound://category_notifications/game_notification_83.mp3"); // Sound provided and owned by code.org. |
245 | + | |
246 | setProperty("gameScreenTextInput", "border-color", rgb(153, 153, 153)); | |
247 | ||
248 | playSound("sound://category_alerts/comedy_game_over_1.mp3"); | |
249 | - | updateScore(false); // Runs update score function with bool set to false |
249 | + | |
250 | } | |
251 | ||
252 | updateScreen(); | |
253 | ||
254 | }); | |
255 | ||
256 | onEvent("gameScreenHint", "click", function(){ // Function ran when the hint button is pressed | |
257 | ||
258 | - | // Visual and auditory aspects ran |
258 | + | |
259 | ||
260 | // Checks whether the hint has already been used on this word or not. | |
261 | ||
262 | - | playSound("sound://category_alerts/comedy_game_over_1.mp3"); // Sound provided and owned by code.org. |
262 | + | |
263 | ||
264 | setText("gameScreenHDisplay", "THE FIRST LETTER OF THE WORD IS: " + firstLetter); | |
265 | ||
266 | - | updateScreen(); // Calls the updatescreen() function |
266 | + | |
267 | ||
268 | } else { // If hint has been used provides warning and then updates hint text box with current hint | |
269 | ||
270 | setText("gameScreenHDisplay", "HINT ALREADY USED!"); | |
271 | ||
272 | // Functions as a one second pause in the middle of the event | |
273 | ||
274 | var currTime = getTime(); | |
275 | while (getTime() - currTime < 1000){} | |
276 | ||
277 | setText("gameScreenHDisplay", "THE FIRST LETTER OF THE WORD IS: " + firstLetter); | |
278 | ||
279 | } | |
280 | ||
281 | }); | |
282 |