View difference between Paste ID: 2uSveh9p and PfyvLtzY
SHOW: | | - or go back to the newest paste.
1
=============================== HTML ===================================
2
3
<!DOCTYPE html>
4
<html lang="pl">
5
  <head>
6
    <title>Wisielec</title>
7
    <meta charset="utf-8" />
8
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
9
    <meta name="viewport" content="width=device-width, initial-scale=1" />
10
11
    <!-- import the webpage's stylesheet -->
12
    <link rel="stylesheet" href="/style.css" />
13
    <link
14
      rel="icon"
15
      href="https://cdn.glitch.com/fbbbb34f-0b8d-49c9-afe0-d55182ec0908%2Fwis.png?v=1608563089741"
16
    />
17
    <!-- import the webpage's javascript file -->
18
    <script src="/script.js" defer></script>
19
  </head>
20
  <body>
21
    <div id="container">
22
      <h1>Hangman</h1>
23
24
      <p id="game">
25
        <!--here we will display the obscured password and if we guess it right, the given letter will be revealed-->
26
      </p>
27
28
      <label>Submit a letter</label>
29
      <input
30
        id="letter"
31
        type="text"
32
        maxlength="1"
33
      /><!--field for entering letters-->
34
35
      <button id="ok">Ok</button>
36
      <!-- button that appears at the end of the game-->
37
      <button id="reset">reset</button>
38
39
      <!--here we will display messages like lost/win/no letter/repeated letter-->
40
      <h3 id="message"></h3>
41
42
      <div>
43
        <!--the place where the gallows will appear-->
44
45
        <img
46
          id="hangman"
47
          src="https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F1.png?v=1585147286506"
48
          width="300"
49
        />
50
      </div>
51
    </div>
52
  </body>
53
</html>
54
55
=============================== JS ===================================
56
57
//words array
58
59
const words = ["giants", "function", "hangman"];
60
61
// random word from the words array
62
const word = words[Math.floor(Math.random() * words.length)];
63
64
//table for addresses to pictures
65
const picturesArray = [
66
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F0.png?v=1623760735527",
67
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F1.png?v=1623760735604",
68
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F2.png?v=1623760735890",
69
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F3.png?v=1623760735703",
70
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F4.png?v=1623760735867",
71
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F5.png?v=1623760735857",
72
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F6.png?v=1623760735876",
73
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F7.png?v=1623760735751",
74
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F8.png?v=1623760735918",
75
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F9.png?v=1623760735966",
76
  "https://cdn.glitch.com/252ccab9-3cec-4a04-89f5-816ee2994f79%2F10.png?v=1623760735998",
77
];
78
79
// the answers array contains an obscure password which we will gradually reveal in the game
80
const answers = [];
81
82
// a variable indicating whether the letter was guessed correctly after being entered
83
let ifGuessed = false;
84
85
//the chances in the game must be such a value because we have so many pictures
86
let chances = 11;
87
88
//an array storing the letters already used
89
90
const used = [];
91
92
//variable storing info how many letters are left to guess
93
let remainingLetters = word.length;
94
95
//preparing the covered drawn word
96
for (let i = 0; i < word.length; i++) {
97
  answers[i] = "_";
98
}
99
//display an array of the covered word each element in the array i.e. _ is joined with a space
100
document.getElementById("game").textContent = answers.join(" ");
101
102
// the event for clicking the ok button
103
document.getElementById("ok").addEventListener("click", function () {
104
  // before each new letter approval, set this variable to false
105
  ifGuessed = false;
106
107
  // we clear the display of the message
108
  document.getElementById("message").textContent = "";
109
110
  //variable storing the player's letter
111
  const guess = document.getElementById("letter").value;
112
113
  document.getElementById("letter").value = "";
114
115
  if (guess.length == 0) {
116
    document.getElementById("message").textContent = "Please enter one letter.";
117
  } else {
118
    //we search the given word letter by letter and check if somewhere there is the same letter as our shot if so, we expose that letter in the answer array
119
    for (let j = 0; j < word.length; j++) {
120
      if (word[j] == guess) {
121
        ifGuessed = true;
122
        answers[j] = guess; //recover the letter in the password
123
        remainingLetters;
124
125
        //update the display of our password
126
        document.getElementById("game").textContent = answers.join(" ");
127
      }
128
    }
129
130
    //we search the given word letter by letter and check if somewhere there is the same letter as our shot if so, we reveal in the answer array that letter
131
    for (let j = 0; j < word.length; j++) {
132
      if (word[j] == guess) {
133
        ifGuessed = true;
134
        answers[j] = guess; //odsłonięcie litery w haśle
135
        remainingLetters--;
136
137
        //update the display of our password
138
        document.getElementById("game").textContent = answers.join(" ");
139
      }
140
    }
141
142
    // win
143
144
    if (remainingLetters == 0) {
145
      document.getElementById("ok").disabled = true;
146
      document.getElementById("letter").disabled = true;
147
      document.getElementById("message").textContent =
148
        "Bravo the guessed password is:" + word;
149
    }
150
  }
151
});
152
153
//we search the given word letter by letter and check if somewhere there is the same letter as our shot if so, we reveal in the answer array that letter
154
155
============================= CSS ==================================
156
157
@import url("https://fonts.googleapis.com/css2?family=Black+Ops+One&family=Bungee+Outline&display=swap");
158
159
body {
160
  font-family: "Black Ops One", cursive;
161
  font-size: 30px;
162
}
163
164
h1 {
165
  color: #373fff;
166
}
167
168
img {
169
  display: none;
170
}
171
172
#container {
173
  width: 1000px;
174
  margin-left: auto;
175
  margin-right: auto;
176
  text-align: center;
177
}
178
179
input {
180
  font-family: "Black Ops One", cursive;
181
  width: 50px;
182
  height: 50px;
183
  font-size: 35px;
184
}
185
186
button {
187
  width: 200px;
188
  height: 50px;
189
  background-color: #fa4a0a;
190
  color: white;
191
  cursor: pointer;
192
  font-size: 16px;
193
  border-radius: 4px;
194
  transition-duration: 0.4s;
195
  border: 2px solid #fa4a0a;
196
  text-transform: uppercase;
197
  font-family: "Black Ops One", cursive;
198
}
199
200
button:hover {
201
  background-color: white;
202
  color: black;
203
}
204
205
p {
206
  letter-spacing: 4px;
207
}
208
209
.active {
210
  display: block;
211
}
212
213
.hidden {
214
  display: none;
215
}
216