Skip to content

Commit fbdf3be

Browse files
Merge pull request #517 from sukumar0/added-Guess_my_number_game
Adding a Interactive Game " Guess my number"
2 parents a791601 + 7afda17 commit fbdf3be

File tree

7 files changed

+272
-0
lines changed

7 files changed

+272
-0
lines changed

Guess_my_number/.prettierrc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"singleQuote": true,
3+
"arrowParens": "avoid"
4+
}

Guess_my_number/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Guess my number
2+
3+
This is a simple game of guessing correct number from 1 to 20 with functionalities like score and highscore.
4+
5+
### Technologies Used :
6+
7+
<li>HTML</li>
8+
<li>CSS</li>
9+
<li>JavaScript</li>
10+
11+
### Steps to use :
12+
13+
<li>Download or clone the repository</li>
14+
<li>Go to (Guess_my_number) folder</li>
15+
<li>Run the index.html in your browser</li>
16+
<li>Play 😉</li>
17+
18+
### Screenshot :
19+
20+
![Alt text](/Guess_my_number/images/gmn1.PNG)
21+
![Alt text](/Guess_my_number/images/gmn2.PNG)

Guess_my_number/images/gmn1.PNG

23.9 KB
Loading

Guess_my_number/images/gmn2.PNG

26.3 KB
Loading

Guess_my_number/index.html

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

Guess_my_number/script.js

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
'use strict';
2+
3+
/*
4+
console.log(document.querySelector('.message').textContent);
5+
document.querySelector('.message').textContent = '🎉 Correct Number!';
6+
7+
document.querySelector('.number').textContent = 13;
8+
document.querySelector('.score').textContent = 10;
9+
10+
document.querySelector('.guess').value = 23;
11+
console.log(document.querySelector('.guess').value);
12+
*/
13+
14+
let secretNumber = Math.trunc(Math.random() * 20) + 1;
15+
let score = 20;
16+
let highscore = 0;
17+
18+
const displayMessage = function (message) {
19+
document.querySelector('.message').textContent = message;
20+
};
21+
22+
document.querySelector('.check').addEventListener('click', function () {
23+
const guess = Number(document.querySelector('.guess').value);
24+
console.log(guess, typeof guess);
25+
26+
// When there is no input
27+
if (!guess) {
28+
// document.querySelector('.message').textContent = '⛔️ No number!';
29+
displayMessage('⛔️ No number!');
30+
31+
// When player wins
32+
} else if (guess === secretNumber) {
33+
// document.querySelector('.message').textContent = '🎉 Correct Number!';
34+
displayMessage('🎉 Correct Number!');
35+
document.querySelector('.number').textContent = secretNumber;
36+
37+
document.querySelector('body').style.backgroundColor = '#60b347';
38+
document.querySelector('.number').style.width = '30rem';
39+
40+
if (score > highscore) {
41+
highscore = score;
42+
document.querySelector('.highscore').textContent = highscore;
43+
}
44+
45+
// When guess is wrong
46+
} else if (guess !== secretNumber) {
47+
if (score > 1) {
48+
// document.querySelector('.message').textContent =
49+
// guess > secretNumber ? '📈 Too high!' : '📉 Too low!';
50+
displayMessage(guess > secretNumber ? '📈 Too high!' : '📉 Too low!');
51+
score--;
52+
document.querySelector('.score').textContent = score;
53+
} else {
54+
// document.querySelector('.message').textContent = '💥 You lost the game!';
55+
displayMessage('💥 You lost the game!');
56+
document.querySelector('.score').textContent = 0;
57+
}
58+
}
59+
60+
// // When guess is too high
61+
// } else if (guess > secretNumber) {
62+
// if (score > 1) {
63+
// document.querySelector('.message').textContent = '📈 Too high!';
64+
// score--;
65+
// document.querySelector('.score').textContent = score;
66+
// } else {
67+
// document.querySelector('.message').textContent = '💥 You lost the game!';
68+
// document.querySelector('.score').textContent = 0;
69+
// }
70+
71+
// // When guess is too low
72+
// } else if (guess < secretNumber) {
73+
// if (score > 1) {
74+
// document.querySelector('.message').textContent = '📉 Too low!';
75+
// score--;
76+
// document.querySelector('.score').textContent = score;
77+
// } else {
78+
// document.querySelector('.message').textContent = '💥 You lost the game!';
79+
// document.querySelector('.score').textContent = 0;
80+
// }
81+
// }
82+
});
83+
84+
document.querySelector('.again').addEventListener('click', function () {
85+
score = 20;
86+
secretNumber = Math.trunc(Math.random() * 20) + 1;
87+
88+
// document.querySelector('.message').textContent = 'Start guessing...';
89+
displayMessage('Start guessing...');
90+
document.querySelector('.score').textContent = score;
91+
document.querySelector('.number').textContent = '?';
92+
document.querySelector('.guess').value = '';
93+
94+
document.querySelector('body').style.backgroundColor = '#222';
95+
document.querySelector('.number').style.width = '15rem';
96+
});

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)