-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
120 lines (108 loc) · 3.23 KB
/
script.js
File metadata and controls
120 lines (108 loc) · 3.23 KB
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
119
120
// alert("hey")
// let str = "";
// let btns = document.querySelectorAll("button");
// Array.from(btns).forEach((btn) => {
// btn.addEventListener("click", function (e) {
// var audio = new Audio("key.mp3");
// audio.play();
// console.log(e.target);
// if(ans.includes(e.target.innerHTML)){
// // entered letter -> place in order
// let posi = ans.indexOf(e.target.innerHTML) + 1;
// document.querySelector("#res").innerHTML = document.querySelector("#res").innerHTML + e.target.innerHTML
// if(document.querySelector("#res").innerHTML == ans ){
// document.querySelector("#mod").innerHTML = "YOU WON HURRAYYY!!!"
// }
// }
// else{
// mistakes++
// document.querySelector("#mist").innerHTML = mistakes;
// if(mistakes== maxAttempts){
// document.querySelector("#mod").innerHTML = "YOU LOST SORRY TRY AGAIN ,\n THE ANSWER is " + ans
// }
// }
// })
// })
const langs = [
"python",
"javaScript",
"java",
"c",
"typeScript",
"php",
"ruby",
"swift",
"kotlin",
"go",
"rust",
"dart",
"sql",
]
let maxAttempts = 6;
let ans = "";
let mistakes = 0;
let guessed = [];
function randomLang(){
let random = Math.floor(Math.random()*langs.length );
console.log(langs[random]);
console.log(random);
ans = langs[random];
guessedWord()
}
function generateButtons() {
let buttonsHTML = 'abcdefghijklmnopqrstuvwxyz'.split('').map(letter =>
`
<button
class="keyB"
id='` + letter + `'
onClick="handleGuess('` + letter + `')"
>
` + letter + `
</button>
`).join('');
document.getElementById('keyboard').innerHTML = buttonsHTML;
}
function handleGuess(chosenLetter) {
guessed.indexOf(chosenLetter) === -1 ? guessed.push(chosenLetter) : null;
document.getElementById(chosenLetter).setAttribute('disabled', true);
if (ans.indexOf(chosenLetter) >= 0) {
guessedWord();
checkIfGameWon();
} else if (ans.indexOf(chosenLetter) === -1) {
mistakes++;
updateMistakes();
checkIfGameLost();
updateHangman();
}
}
function reset(){
mistakes = 0;
guessed = [];
document.getElementById('hangmanPic').src = './images/00.jpg';
randomLang();
guessedWord();
updateMistakes();
generateButtons();
}
function checkIfGameWon() {
if (hiddenWord === ans) {
document.getElementById('keyboard').innerHTML = 'You Won!!!';
}
}
function checkIfGameLost() {
if (mistakes === maxAttempts) {
document.getElementById('und').innerHTML = 'The answer was: ' + ans;
document.getElementById('keyboard').innerHTML = 'You Lost!!!';
}
}
function updateMistakes() {
document.getElementById('mist').innerHTML = mistakes;
}
function updateHangman(){
document.getElementById('hangmanPic').src = './images/' + mistakes + '.jpg';
}
function guessedWord(){
hiddenWord = ans.split('').map(letter => (guessed.indexOf(letter)>= 0 ? letter : " _ ")).join('');
document.querySelector("#und").innerHTML = hiddenWord;
}
generateButtons();