-
Notifications
You must be signed in to change notification settings - Fork 0
/
game.js
118 lines (94 loc) · 2.46 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
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
var gamePattern = []
var userClickedPattern = []
var buttonColours = ['red', 'blue', 'green', 'yellow']
var gameStarted = false
var level = -1
$(document).keypress(function () {
nextSequence()
})
$('.btn').click(function (para) {
userChosenColor = $(this).attr('id')
userClickedPattern.push(userChosenColor)
animatePress(userChosenColor)
makeSound(userChosenColor)
checkAnswer(userClickedPattern.length - 1)
})
function makeSound(btn) {
switch (btn) {
case 'red':
var red = new Audio('sounds/red.mp3')
red.play()
break
case 'green':
var green = new Audio('sounds/green.mp3')
green.play()
break
case 'blue':
var blue = new Audio('sounds/blue.mp3')
blue.play()
break
case 'yellow':
var yellow = new Audio('sounds/yellow.mp3')
yellow.play()
break
default:
break
}
}
function checkAnswer(currentLevel) {
if (userClickedPattern[currentLevel] == gamePattern[currentLevel]) {
console.log('success')
if (userClickedPattern.length == gamePattern.length) {
setTimeout(() => {
nextSequence()
}, 1000)
}
} else {
console.log('wrong')
var wrong = new Audio('sounds/wrong.mp3')
wrong.play();
$("body").addClass("game-over")
setTimeout(() => {
$("body").removeClass('game-over')
}, 100)
startOver();
}
}
function animatePress(currentColor) {
setTimeout(1000, function () {
$('#' + currentColor).addClass('pressed')
setTimeout(() => {
$('#' + currentColor).removeClass('pressed')
}, 100)
})
}
function startOver() {
level = -1;
gameStarted = false;
gamePattern.slice(0,gamePattern.length);
$('h1').text("Press A Key to Start")
}
function nextSequence() {
gameStarted = true
userClickedPattern.slice(0, userClickedPattern.length)
var randomNumber = Math.floor(Math.random() * 4)
var randomNumber2 = Math.floor(Math.random() * 4)
var randomChosenColour = buttonColours[randomNumber]
gamePattern.push(randomChosenColour)
select(randomChosenColour);
setTimeout(() => {
randomChosenColour = buttonColours[randomNumber2]
gamePattern.push(randomChosenColour)
select(randomChosenColour);
}, 120);
level++
$('h1').text('Level ' + level)
}
function select(params) {
$('#' + params)
.fadeOut(100)
.fadeIn(100)
.fadeOut(100)
.fadeIn(100)
makeSound(params)
}