-
Notifications
You must be signed in to change notification settings - Fork 0
/
game.js
87 lines (73 loc) · 3.05 KB
/
game.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
let gamePattern = []; //Step5. At the top of the game.js file, create a new empty array called gamePattern.
let userClickedPattern = [];
//Step 3. At the top of the game.js file, create a new array called buttonColours and set it to hold the sequence "red", "blue", "green", "yellow" .
let buttonColours = ["red", "blue", "green", "yellow"];
let started = false;
let level = 0;
$(document).keypress(function () {
if (!started) {
$("#level-title").text("Level " + level);
nextSequence();
started = true;
}
});
$(".btn").click(function () {
//2. Inside the handler, create a new variable called userChosenColour to store the id of the button that got clicked.
var userChosenColour = $(this).attr("id");
//4. Add the contents of the variable userChosenColour created in step 2 to the end of this new userClickedPattern
userClickedPattern.push(userChosenColour);
playSound(userChosenColour);
animatePress(userChosenColour);
checkAnswer(userClickedPattern.length - 1);
});
//1. Create a new function called checkAnswer(), it should take one input with the name currentLevel
function checkAnswer(currentLevel) {
//3. Write an if statement inside checkAnswer() to check if the most recent user answer is the same as the game pattern. If so then log "success", otherwise log "wrong".
if (gamePattern[currentLevel] === userClickedPattern[currentLevel]) {
//4. If the user got the most recent answer right in step 3, then check that they have finished their sequence with another if statement.
if (userClickedPattern.length === gamePattern.length) {
//5. Call nextSequence() after a 1000 millisecond delay.
setTimeout(function () {
nextSequence();
}, 1000);
}
} else {
playSound("wrong");
$("body").addClass("game-over");
$("#level-title").text("Game Over!, Press Any Key to Restart");
setTimeout(function () {
$("body").removeClass("game-over");
}, 200);
startOver();
}
}
//Step1: create a function called nextSequence
function nextSequence() {
userClickedPattern = [];
level++;
$("#level-title").text("Level " + level);
let randomNumber = Math.floor(Math.random() * 4); //Step 2: generate a random number between 0&3 and store in a variable randomNumber
let randomChosenColour = buttonColour[randomNumber]; //Step4. Create a new variable called randomChosenColour and use the randomNumber from step 2 to select a random colour from the buttonColours array.
gamePattern.push(randomChosenColour); //Step 6. Add the new randomChosenColour generated in step 4 to the end of the gamePattern.
$("#" + randomChosenColour)
.fadeIn(100)
.fadeOut(100)
.fadeIn(100);
var audio = new Audio("sounds/" + randomChosenColour + ".mp3");
audio.play();
}
function playSound(name) {
var audio = new Audio("sounds/" + name + ".mp3");
audio.play();
}
function animatePress(currentColor) {
$("#" + currentColor).addClass("pressed");
setTimeout(function () {
$("#" + currentColor).removeClass("pressed");
}, 100);
}
function startOver() {
level = 0;
gamePattern = [];
started = false;
}