Calculator Tools Calculator Tools
Create

RPS-15: Infinite Rock Paper Scissors

Jan 8, 2024

About this app

Play an infinite game of Rock Paper Scissors

RPS-15: Infinite Rock Paper Scissors Rock Paper Scissors - 15 ✊ ✋ ✌️ Score: 0 Reset Score

Related apps

Put this on your site

Source

                    <html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">

<title>RPS-15: Infinite Rock Paper Scissors</title>
<meta name="description" content="Play an infinite game of Rock Paper Scissors">
<meta name="keywords" content="rock paper scissors, game, infinite">

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;600&display=swap" rel="stylesheet">

<script type="text/javascript">
try {
// App Javascript Goes Here. Place your entire script content inside the try block for error handling.
const choices = ["rock", "paper", "scissors"];
let score = 0;

function playGame(userChoice) {
const computerChoice = getComputerChoice();
const result = getResult(userChoice, computerChoice);
displayResult(userChoice, computerChoice, result);
updateScore(result);
}

function getComputerChoice() {
const randomIndex = Math.floor(Math.random() * 3);
return choices[randomIndex];
}

function getResult(userChoice, computerChoice) {
if (userChoice === computerChoice) {
return "draw";
} else if (
(userChoice === "rock" && computerChoice === "scissors") ||
(userChoice === "paper" && computerChoice === "rock") ||
(userChoice === "scissors" && computerChoice === "paper")
) {
return "win";
} else {
return "lose";
}
}

function displayResult(userChoice, computerChoice, result) {
const resultText = document.getElementById("result-text");
const userChoiceText = capitalizeFirstLetter(userChoice);
const computerChoiceText = capitalizeFirstLetter(computerChoice);

if (result === "draw") {
resultText.innerHTML = `It's a draw! Both chose ${userChoiceText}.`;
} else if (result === "win") {
resultText.innerHTML = `You win! ${userChoiceText} beats ${computerChoiceText}.`;
} else {
resultText.innerHTML = `You lose! ${computerChoiceText} beats ${userChoiceText}.`;
}
}

function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}

function updateScore(result) {
if (result === "win") {
score++;
} else if (result === "lose") {
score--;
}

const scoreText = document.getElementById("score-text");
scoreText.innerHTML = `Score: ${score}`;
}

// This will run when the DOM is ready.
document.addEventListener("DOMContentLoaded", function() {
const buttons = document.getElementsByClassName("choice-button");
const resetButton = document.getElementById("reset-button");

for (let i = 0; i < buttons.length; i++) {
const button = buttons[i];
button.addEventListener("click", function() {
playGame(button.getAttribute("data-choice"));
});
}

resetButton.addEventListener("click", function() {
score = 0;
const scoreText = document.getElementById("score-text");
scoreText.innerHTML = "Score: 0";
});
});
} catch (error) {
// This will throw the error to the parent window.
throw error;
}
</script>

<style>
/* App CSS Goes Here */
body {
background-color: #f8f9fa;
font-family: 'Baloo 2', sans-serif;
}

#main-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}

h1 {
color: #343a40;
margin-bottom: 20px;
text-align: center;
}

.choice-button {
border: none;
border-radius: 50%;
width: 100px;
height: 100px;
margin: 0 10px;
background-color: #fff;
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: background-color 0.3s ease;
}

.choice-button:hover {
background-color: #f1f3f5;
}

#result-text {
color: #343a40;
margin-top: 20px;
text-align: center;
}

#score-text {
color: #343a40;
font-size: 20px;
margin-top: 20px;
text-align: center;
}

#reset-button {
border: none;
border-radius: 5px;
padding: 10px 20px;
margin-top: 20px;
background-color: #343a40;
color: #fff;
cursor: pointer;
transition: background-color 0.3s ease;
}

#reset-button:hover {
background-color: #23272b;
}
</style>
</head>
<body>
<div id="main-container" class="container">
<h1>Rock Paper Scissors - 15</h1>
<div>
<button class="choice-button" data-choice="rock">✊</button>
<button class="choice-button" data-choice="paper">✋</button>
<button class="choice-button" data-choice="scissors">✌️</button>
</div>
<div id="result-text"></div>
<div id="score-text">Score: 0</div>
<button id="reset-button">Reset Score</button>
</div>
</body>
</html>