Ping Pong Game 🏓
Info
Created On: April 10, 2023
Created By:
AI
Model: gpt-4-0314
Time: 1681153605 seconds
Prompt Tokens: 1825
Completion Tokens: 1355
Total Token Cost: 3180
Get This App On Your Website
Copy Code
1. Copy the code above with the iframe and link.
2. Paste the code into your website.
3. Resize the iframe to fit your website.
Javascript, HTML, CSS Code
Copy
<html>
<head>
<script type="text/javascript"> window.addEventListener('error', function(event) { var message = JSON.parse(JSON.stringify(event.message)); var source = event.filename; var lineno = event.lineno; var colno = event.colno; var error = event.error; window.parent.postMessage({ type: 'iframeError', details: { message: message, source: source, lineno: lineno, colno: colno, error: error ? error.stack : '' } }, '*'); }); window.addEventListener('unhandledrejection', function(event) { window.parent.postMessage({ type: 'iframePromiseRejection', details: { reason: event.reason } }, '*'); }); </script>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Ping Pong Game 🏓</title>
<meta name="description" content="A fun and colorful single-player ping pong game with computer opponent in the style of Atari Pong.">
<meta name="keywords" content="ping pong, atari pong, game, single player, web app, computer opponent">
<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">
<style>
body {
background: linear-gradient(45deg, #E91E63, #2196F3);
font-family: 'Courier New', monospace;
}
#game-container {
position: relative;
width: 100%;
height: 75vh;
max-width: 600px;
margin: 5% auto;
background-color: #212121;
border-radius: 10px;
overflow: hidden;
}
#player-paddle, #computer-paddle {
position: absolute;
width: 20px;
height: 100px;
background-color: #FFF;
}
#player-paddle {
left: 0;
}
#computer-paddle {
right: 0;
}
#ball {
position: absolute;
width: 15px;
height: 15px;
background-color: #FFF;
border-radius: 50%;
}
.score {
color: #FFF;
font-size: 24px;
text-align: center;
margin-bottom: 20px;
}
</style>
<script type="text/javascript">
$(document).ready(function () {
const playerPaddle = $("#player-paddle");
const computerPaddle = $("#computer-paddle");
const ball = $("#ball");
const gameContainer = $("#game-container");
const playerScore = $("#player-score");
const computerScore = $("#computer-score");
let ballSpeedX = 2;
let ballSpeedY = 2;
let playerWins = 0;
let computerWins = 0;
function updateScore() {
playerScore.text(playerWins);
computerScore.text(computerWins);
}
updateScore();
$(document).mousemove(function (event) {
let y = event.pageY - gameContainer.offset().top - playerPaddle.height() / 2;
if (y < 0) y = 0;
if (y > gameContainer.height() - playerPaddle.height()) y = gameContainer.height() - playerPaddle.height();
playerPaddle.css("top", y + "px");
});
function animateBall() {
ball.css("left", (parseInt(ball.css("left")) + ballSpeedX) + "px");
ball.css("top", (parseInt(ball.css("top")) + ballSpeedY) + "px");
let computerY = parseInt(ball.css("top")) - computerPaddle.height() / 2;
if (computerY < 0) computerY = 0;
if (computerY > gameContainer.height() - computerPaddle.height()) computerY = gameContainer.height() - computerPaddle.height();
computerPaddle.css("top", computerY + "px");
if (parseInt(ball.css("top")) <= 0 || parseInt(ball.css("top")) >= gameContainer.height() - ball.height()) {
ballSpeedY = -ballSpeedY;
}
if (parseInt(ball.css("left")) <= playerPaddle.width() && parseInt(ball.css("left")) >= 0) {
if (parseInt(ball.css("top")) >= parseInt(playerPaddle.css("top")) - ball.height() && parseInt(ball.css("top")) <= parseInt(playerPaddle.css("top")) + playerPaddle.height()) {
ballSpeedX = -ballSpeedX;
}
}
if (parseInt(ball.css("left")) >= gameContainer.width() - ball.width() - computerPaddle.width() && parseInt(ball.css("left")) <= gameContainer.width() - ball.width()) {
if (parseInt(ball.css("top")) >= parseInt(computerPaddle.css("top")) - ball.height() && parseInt(ball.css("top")) <= parseInt(computerPaddle.css("top")) + computerPaddle.height()) {
ballSpeedX = -ballSpeedX;
}
}
if (parseInt(ball.css("left")) >= gameContainer.width() - ball.width()) {
playerWins++;
updateScore();
ball.css("left", "50%");
ball.css("top", "50%");
}
if (parseInt(ball.css("left")) < 0) {
computerWins++;
updateScore();
ball.css("left", "50%");
ball.css("top", "50%");
}
requestAnimationFrame(animateBall);
}
animateBall();
});
</script>
<link rel="canonical" href="https://calculator.tools/prompt/86/">
<meta charset="utf-8">
</head>
<body>
<div id="main-container" class="container">
<h1 class="text-center text-white mb-4">🏓 Ping Pong Game</h1>
<div class="row mb-4">
<div class="col">
<p class="score" id="player-score">0</p>
</div>
<div class="col">
<p class="score" id="computer-score">0</p>
</div>
</div>
<div id="game-container">
<div id="player-paddle"></div>
<div id="computer-paddle"></div>
<div id="ball"></div>
</div>
</div>
<script type="text/javascript"> var localStoragePrefix = "ct-{{ cachebreaker }}"; var lastSave = 0; function saveLocal(data) { if (Date.now() - lastSave < 1000) { return; } let cookie = localStoragePrefix + "=" + JSON.stringify(data) + "; path=" + window.location.pathname + "'; SameSite=Strict"; cookie += "; expires=" + new Date(Date.now() + 1000 * 60 * 60 * 24 * 365 * 1000).toUTCString(); document.cookie = cookie; lastSave = Date.now(); } function loadLocal() { var cookiePrefix = localStoragePrefix + "="; var cookieStart = document.cookie.indexOf(cookiePrefix); if (cookieStart > -1) { let cookieEnd = document.cookie.indexOf(";", cookieStart); if (cookieEnd == -1) { cookieEnd = document.cookie.length; } var cookieData = document.cookie.substring(cookieStart + cookiePrefix.length, cookieEnd); return JSON.parse(cookieData); } } </script>
<script type="text/javascript"> window.addEventListener('load', function() { var observer = new MutationObserver(function() { window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); observer.observe(document.body, {attributes: true, childList: true, subtree: true}); window.parent.postMessage({height: document.documentElement.scrollHeight || document.body.scrollHeight},"*"); }); </script>
</body>
</html>