Hello wizards, I hope you are doing great. Today in this blog you’ll learn how to create the "Number Guessing Game" project using HTML, CSS & JavaScript.
Preview
In the above video, you’ve seen the preview of the "Number Guessing Game" project and I hope now you are able to create this type of project. If not, I have provided all the HTML CSS, and JavaScript code below.
Number Guessing Game [Source Code]
To get the following HTML, CSS & JS code for the Number Guessing Game project. You need to create three files one is an HTML file, the second one is a CSS file and another one is a JS file. After creating these three files then you can copy-paste the given codes on your document.
Remember, you’ve to create a file with a .html extension for HTML code, a .css extension for CSS code, and .js for JavaScript code.
You can also download all source code files from the given download button.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Number Guessing Game</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Number Guessing Game</h1>
<div class="container">
<h2 class="heading">Guess a number between 1 to 100</h2>
<input type="number" placeholder="Guess a number" />
<p class="guess"></p>
<button class="checkBtn">Check</button>
<p class="chances">You have only <span class="chance">10</span> chances</p>
</div>
<script src="index.js"></script>
</body>
</html>
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@100;200;300;400;500;600;700;800;900&display=swap");
* {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Poppins", sans-serif;
}
body {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
min-height: 100vh;
background: #db3069;
}
h1 {
font-size: 24px;
margin-bottom: 20px;
padding: 10px 50px;
color: #1446a0;
background-color: white;
border-radius: 50px;
}
.container {
text-align: center;
padding: 25px;
background: white;
border-radius: 20px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.2);
}
.container h2 {
font-size: 20px;
color: #1446a0;
font-weight: 500;
}
.container .guess {
color: #1446a0;
font-size: 18px;
margin: 10px 0;
}
.container .chances {
color: black;
font-size: 16px;
margin-top: 5px;
}
.container input {
font-size: 20px;
padding: 0 20px;
text-align: center;
width: 100%;
height: 50px;
margin: 10px 0;
border: 3px solid #1446a0;
border-radius: 5px;
}
input:disabled {
cursor: not-allowed;
}
/* To remove the controls in the input field */
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
margin: 0;
}
/* Firefox */
input[type="number"] {
-moz-appearance: textfield;
}
.checkBtn {
font-size: 18px;
margin: 10px 0;
padding: 10px 40px;
color: white;
background: #1446a0;
border: none;
border-radius: 5px;
cursor: pointer;
}
.checkBtn:active {
transform: scale(0.95);
}
const inputEl = document.querySelector("input");
const guessEl = document.querySelector(".guess");
const checkBtnEl = document.querySelector("button");
const remainingChancesTextEl = document.querySelector(".chances");
const remainingChancesEl = document.querySelector(".chance");
let randomNumber = Math.floor(Math.random() * 100);
totalChances = 10;
checkBtnEl.addEventListener("click", () => {
totalChances--;
let inputValue = inputEl.value;
if (totalChances === 0) {
inputValue = "";
inputEl.disabled = true;
guessEl.textContent = "Oops...! Bad luck😥, You lost the game."
guessEl.style.color = "red";
checkBtnEl.textContent = "Play Again...😉";
remainingChancesTextEl.textContent = "No chances left"
}
else if (totalChances < 0) {
window.location.reload();
}
else if (inputValue == randomNumber) {
inputEl.disabled = true;
guessEl.textContent = "Hurrah...! Congratulations😍, You won the game."
guessEl.style.color = "green";
checkBtnEl.textContent = "Play Again...😉";
totalChances = 0;
} else if (inputValue > randomNumber && inputValue < 100) {
guessEl.textContent = "Your Guess is High👍.";
remainingChancesEl.textContent = totalChances;
guessEl.style.color = "#1446a0";
} else if (inputValue < randomNumber && inputValue > 0) {
guessEl.textContent = "Your Guess is low👎.";
remainingChancesEl.textContent = totalChances;
guessEl.style.color = "#1446a0";
} else {
guessEl.textContent = "Your number is invalid.";
remainingChancesEl.textContent = totalChances;
guessEl.style.color = "red";
}
});
