Skip to content

Commit 63f690e

Browse files
added guess-my-number game
1 parent 0ae5049 commit 63f690e

File tree

3 files changed

+218
-0
lines changed

3 files changed

+218
-0
lines changed

easy/guess-my-number/index.html

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
7+
<title>Guess My Number</title>
8+
<link rel="stylesheet" href="./style.css">
9+
</head>
10+
<body>
11+
12+
13+
<header>
14+
<h1>Guess My Number!</h1>
15+
<p class="between">(Between 1 and 20)</p>
16+
<button class="btn again">Again!</button>
17+
<div class="number">?</div>
18+
</header>
19+
20+
<main>
21+
<section class="left">
22+
<input type="number" class="guess" />
23+
<button class="btn check">Check!</button>
24+
</section>
25+
26+
<section class="right">
27+
<p class="message">Start guessing...</p>
28+
<p class="label-score">💯 Score: <span class="score">20</span></p>
29+
<p class="label-highscore">
30+
🥇 Highscore: <span class="highscore">0</span>
31+
</p>
32+
</section>
33+
</main>
34+
35+
36+
<script src="./script.js"></script>
37+
38+
</body>
39+
</html>

easy/guess-my-number/script.js

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
"use script";
2+
3+
const secretNumber = Math.trunc(Math.random() * 20) + 1;
4+
let score = 20;
5+
let highscore = 0;
6+
7+
document.querySelector(".check").addEventListener("click", function () {
8+
const guess = Number(document.querySelector(".guess").value);
9+
console.log(guess, typeof guess);
10+
11+
// When there is no input
12+
if (!guess) {
13+
document.querySelector(".message").textContent = "⛔ No Number!";
14+
15+
// When player wins
16+
} else if (guess === secretNumber) {
17+
document.querySelector(".message").textContent = "🎉 Correct Number!";
18+
document.querySelector(".number").textContent = secretNumber;
19+
document.querySelector("body").style.backgroundColor = "#60b347";
20+
document.querySelector(".number").style.width = "30rem";
21+
22+
if (score > highscore) {
23+
highscore = score;
24+
document.querySelector(".highscore").textContent = highscore;
25+
}
26+
} // When guess is too high
27+
else if (guess > secretNumber) {
28+
if (score > 1) {
29+
document.querySelector(".message").textContent = "📈 Too high!";
30+
score--;
31+
document.querySelector(".score").textContent = score;
32+
} else {
33+
document.querySelector(".message").textContent = "💥 You lost the game!";
34+
document.querySelector(".score").textContent = 0;
35+
}
36+
37+
// When guess is too low
38+
} else if (guess < secretNumber) {
39+
if (score > 1) {
40+
document.querySelector(".message").textContent = "📉 Too low!";
41+
score--;
42+
document.querySelector(".score").textContent = score;
43+
} else {
44+
document.querySelector(".message").textContent = "💥 You lost the game!";
45+
document.querySelector(".score").textContent = 0;
46+
}
47+
}
48+
});
49+
50+
// game restart
51+
document.querySelector('.again').addEventListener('click', function () {
52+
score = 20;
53+
54+
document.querySelector('.message').textContent = 'Start guessing...';
55+
document.querySelector('.score').textContent = score;
56+
document.querySelector('.number').textContent = '?';
57+
document.querySelector('body').style.backgroundColor = '#222';
58+
document.querySelector('.number').style.width = '15rem';
59+
document.querySelector('.guess').value = '';
60+
});

easy/guess-my-number/style.css

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
@import url('https://fonts.googleapis.com/css?family=Press+Start+2P&display=swap');
2+
3+
* {
4+
margin: 0;
5+
padding: 0;
6+
box-sizing: inherit;
7+
}
8+
9+
html {
10+
font-size: 62.5%;
11+
box-sizing: border-box;
12+
}
13+
14+
body {
15+
font-family: 'Press Start 2P', sans-serif;
16+
color: #eee;
17+
background-color: #222;
18+
/* background-color: #60b347; */
19+
}
20+
21+
/* LAYOUT */
22+
header {
23+
position: relative;
24+
height: 35vh;
25+
border-bottom: 7px solid #eee;
26+
}
27+
28+
main {
29+
height: 65vh;
30+
color: #eee;
31+
display: flex;
32+
align-items: center;
33+
justify-content: space-around;
34+
}
35+
36+
.left {
37+
width: 52rem;
38+
display: flex;
39+
flex-direction: column;
40+
align-items: center;
41+
}
42+
43+
.right {
44+
width: 52rem;
45+
font-size: 2rem;
46+
}
47+
48+
/* ELEMENTS STYLE */
49+
h1 {
50+
font-size: 4rem;
51+
text-align: center;
52+
position: absolute;
53+
width: 100%;
54+
top: 52%;
55+
left: 50%;
56+
transform: translate(-50%, -50%);
57+
}
58+
59+
.number {
60+
background: #eee;
61+
color: #333;
62+
font-size: 6rem;
63+
width: 15rem;
64+
padding: 3rem 0rem;
65+
text-align: center;
66+
position: absolute;
67+
bottom: 0;
68+
left: 50%;
69+
transform: translate(-50%, 50%);
70+
}
71+
72+
.between {
73+
font-size: 1.4rem;
74+
position: absolute;
75+
top: 2rem;
76+
right: 2rem;
77+
}
78+
79+
.again {
80+
position: absolute;
81+
top: 2rem;
82+
left: 2rem;
83+
}
84+
85+
.guess {
86+
background: none;
87+
border: 4px solid #eee;
88+
font-family: inherit;
89+
color: inherit;
90+
font-size: 5rem;
91+
padding: 2.5rem;
92+
width: 25rem;
93+
text-align: center;
94+
display: block;
95+
margin-bottom: 3rem;
96+
}
97+
98+
.btn {
99+
border: none;
100+
background-color: #eee;
101+
color: #222;
102+
font-size: 2rem;
103+
font-family: inherit;
104+
padding: 2rem 3rem;
105+
cursor: pointer;
106+
}
107+
108+
.btn:hover {
109+
background-color: #ccc;
110+
}
111+
112+
.message {
113+
margin-bottom: 8rem;
114+
height: 3rem;
115+
}
116+
117+
.label-score {
118+
margin-bottom: 2rem;
119+
}

0 commit comments

Comments
 (0)