-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript.js
114 lines (94 loc) · 2.33 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
112
113
114
var languages = [
"python",
"javascript",
"mongodb",
"json",
"java",
"html",
"css",
"c",
"csharp",
"golang",
"kotlin",
"php",
"sql",
"ruby",
];
let answer = "";
let maxWrong = 6;
let mistakes = 0;
let guessed = [];
let wordStatus = null;
function pickWord() {
answer = languages[Math.floor(Math.random() * languages.length)];
}
function dynamicButtonGenerator() {
let buttonHtml = "abcdefghijklmnopqrstuvwxyz"
.split("")
.map(
(letter) =>
`
<button class=" mt-10 bg-yellow-500 text-black px-4 p-2 hover:bg-orange-700 border-2 border-black
" id='` +
letter +
`'onClick="guessHandler('` +
letter +
`')" > ` +
letter +
` </button> `
)
.join("");
document.getElementById("keyboard").innerHTML = buttonHtml;
}
function guessHandler(chosenLetter) {
guessed.indexOf(chosenLetter) === -1 ? guessed.push(chosenLetter) : null;
document.getElementById(chosenLetter).setAttribute("disabled", true);
if (answer.indexOf(chosenLetter) >= 0) {
guessedWord();
checkifGameWon();
} else if (answer.indexOf(chosenLetter) === -1) {
mistakes++;
updateMistakes();
checkifGameLost();
updateHangmanPicture();
}
}
function updateHangmanPicture() {
document.getElementById("hangmanPic").src = "./images/" + mistakes + ".png";
}
function checkifGameWon() {
if (wordStatus === answer) {
document.getElementById("keyboard").innerHTML = "You Won!!!";
}
}
function checkifGameLost() {
if (mistakes === maxWrong) {
document.getElementById("wordSpotlight").innerHTML =
"The answer was: " + answer;
document.getElementById("keyboard").innerHTML = "You Lost :(";
}
}
function guessedWord() {
wordStatus = answer
.split("")
.map((letter) => (guessed.indexOf(letter) >= 0 ? letter : " _ "))
.join("");
document.getElementById("wordSpotlight").innerHTML = wordStatus;
}
function updateMistakes() {
document.getElementById("mistakes").innerHTML = mistakes;
}
function reset() {
mistakes = 0;
guessed = [];
document.getElementById("hangmanPic").src = "./images/0.jpg";
pickWord();
guessedWord();
updateMistakes();
dynamicButtonGenerator();
updateHangmanPicture();
}
document.getElementById("maxWrong").innerHTML = maxWrong;
pickWord();
dynamicButtonGenerator();
guessedWord();