-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
111 lines (87 loc) · 3.18 KB
/
script.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
const wordEl = document.getElementById('word');
const wrongLettersEL = document.getElementById('wrong-letters');
const playAgainBtn = document.getElementById('play-button');
const popup = document.getElementById('popup-container');
const notification = document.getElementById('notification-container');
const finalMessage = document.getElementById('final-message');
const figureParts = document.querySelectorAll('.figure-part');
const words = ['application', 'intermission', 'renaissance', 'copulation','wizard','consequences','campaign','isolation','annotation','aryasarkar'];
let selectedWord = words[Math.floor(Math.random() * words.length)];
const correctLetters = [];
const wrongLetters = [];
// Show hidden word
function displayWord(){
wordEl.innerHTML =
`${selectedWord
.split('')
.map(letter =>
`<span class= "letter">${correctLetters.includes(letter) ? letter : ''} </span>`)
.join('')}`;
const innerword = wordEl.innerText.replace(/\n/g, '');
if(innerword === selectedWord){
finalMessage.innerText = 'Wow i did not expect you to win, Congrats I guess 🙂';
popup.style.display = 'flex';
}
}
// Update the wrong letters
function updateWrongLettersEl(){
// Display wrong letters
wrongLettersEL.innerHTML = `
${wrongLetters.length > 0 ? `<p>Wrong</p>`: ''}
${wrongLetters.map(letter => `<span>${letter}</span>`)}
`;
// Display parts
figureParts.forEach((part,index) => {
const errors = wrongLetters.length;
if(index < errors){
part.style.display = 'block';
} else{
part.style.display = 'none';
}
});
// Check if lost
if(wrongLetters.length === figureParts.length) {
finalMessage.innerText = 'HaHa you noob I knew you would loose bish 😂';
popup.style.display = 'flex';
}
}
// Show notification
function showNotification(){
notification.classList.add('show');
setTimeout(() => {
notification.classList.remove('show');
}, 2000);
}
// Keydown letter press
window.addEventListener('keydown', e => {
// we are trying to add only letters as event hence using keycodes, every character has keycode, alphabet A-Z has a key code ranging from 65-90
if (e.keyCode >= 65 && e.keyCode <= 90){
const letter = e.key;
if(selectedWord.includes(letter)){
if(!correctLetters.includes(letter)){
correctLetters.push(letter);
displayWord();
} else{
showNotification();
}
} else{
if(!wrongLetters.includes(letter)){
wrongLetters.push(letter);
updateWrongLettersEl();
} else{
showNotification();
}
}
}
});
// Restart the game and play again
playAgainBtn.addEventListener('click', () => {
// Empty arrays
correctLetters.splice(0);
wrongLetters.splice(0);
selectedWord = words[Math.floor(Math.random() * words.length)];
displayWord();
updateWrongLettersEl();
popup.style.display = 'none';
});
displayWord();