Hello wizards, I hope you are doing great. Today in this blog you’ll learn how to create the "Rock, Paper & Scissor Game" project using HTML, CSS & JavaScript.
Preview
In the above video, you’ve seen the preview of the "Rock, Paper & Scissor 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.
Rock, Paper & Scissor Game [Source Code]
To get the following HTML, CSS & JS code for the Rock, Paper & Scissor Game project. You need to create three files one is a HTML file, second one is a CSS file and the another one is 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 .html extension for HTML code, .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>Rock Paper & Scissor</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h1>Rock, Paper & Scissor Game</h1>
<h2>Pick your choice</h2>
<div class="choices">
<img src="images/rock.jpg" alt="rock" id="rock">
<img src="images/paper.jpg" alt="paper" id="paper">
<img src="images/scissor.jpg" alt="scissor" id="scissor">
</div>
<div class="both-choices">
<h3>User Choice : <span class="user-choice">NA</span></h3>
<h3>Computer Choice : <span class="computer-choice">NA</span></h3>
</div>
<p class="result">Results will appear here...</p>
<div class="points">
<h3>User Points : <span class="user-points">0</span></h3>
<h3>Computer Points : <span class="computer-points">0</span></h3>
</div>
</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,
.container,
.choices,
.both-choices,
.points {
display: flex;
justify-content: center;
align-items: center;
}
body {
background-color: black;
color: white;
height: 100vh;
}
.container {
flex-direction: column;
gap: 20px;
}
.choices {
gap: 20px;
width: 400px;
}
.choices img {
width: 100px;
height: 100px;
cursor: pointer;
border-radius: 50%;
}
.choices img:active {
transform: scale(0.95);
}
.both-choices h3:nth-child(1) {
margin-right: 20px;
}
.both-choices span {
font-weight: 500;
color: yellow;
}
.result {
font-size: 28px;
color: yellow;
}
.points h3:nth-child(1) {
margin-right: 15px;
}
.points span {
font-weight: 500;
color: yellow;
}
const imgEls = document.querySelectorAll("img");
const resultEl = document.querySelector(".result");
const userChoiceEl = document.querySelector(".user-choice");
const computerChoiceEl = document.querySelector(".computer-choice");
const userPointsEl = document.querySelector(".user-points");
const computerPointsEl = document.querySelector(".computer-points");
let userPoints= 0;
let computerPoints = 0;
imgEls.forEach((img) => {
img.addEventListener("click", () => {
const computerTurn = computerChoice();
const result = gamePlay(img.id, computerTurn);
userChoiceEl.textContent = img.id;
computerChoiceEl.textContent = computerTurn;
resultEl.textContent = result;
});
});
// Computer randomly pick one choice from the given choices
function computerChoice() {
const choices = ["rock", "paper", "scissor"];
const randomChoice = Math.floor(Math.random() * choices.length);
return choices[randomChoice];
}
// it return result by checking user and computer selection
function gamePlay(userSelection, computerSelection) {
if (userSelection === computerSelection) {
return "It is a tie..!";
} else if (
(userSelection === "rock" && computerSelection === "scissor") ||
(userSelection === "paper" && computerSelection === "rock") ||
(userSelection === "scissor" && computerSelection === "paper")
) {
userPoints++;
userPointsEl.textContent = userPoints;
return "Hurrah! You win..! " + userSelection + " beats " + computerSelection;
} else {
computerPoints++;
computerPointsEl.textContent = computerPoints;
return "Oops! You lose...! " + computerSelection + " beats " + userSelection;
}
}