<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Catch the Box Game</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
font-family: Arial, sans-serif;
background: #282c34;
color: white;
text-align: center;
}
h1 {
margin-top: 20px;
}
#gameCanvas {
background: #1e1e1e;
border: 2px solid white;
margin: auto;
display: block;
margin-top: 20px;
}
#score {
font-size: 24px;
margin-top: 10px;
}
</style>
</head>
<body>
<h1>🎯 Catch the Box Game</h1>
<div id="score">Score: 0</div>
<canvas id="gameCanvas" width="600" height="400"></canvas>
<script>
const canvas = document.getElementById("gameCanvas");
const ctx = canvas.getContext("2d");
let box = {
x: Math.random() * 550,
y: Math.random() * 350,
size: 50,
color: "red"
};
let score = 0;
function drawBox() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = box.color;
ctx.fillRect(box.x, box.y, box.size, box.size);
}
canvas.addEventListener("click", function (e) {
const rect = canvas.getBoundingClientRect();
const clickX = e.clientX - rect.left;
const clickY = e.clientY - rect.top;
if (
clickX >= box.x &&
clickX <= box.x + box.size &&
clickY >= box.y &&
clickY <= box.y + box.size
) {
score++;
document.getElementById("score").innerText = "Score: " + score;
moveBox();
}
});
function moveBox() {
box.x = Math.random() * (canvas.width - box.size);
box.y = Math.random() * (canvas.height - box.size);
drawBox();
}
drawBox();
</script>
</body>
</html>
PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgPG1ldGEgY2hhcnNldD0iVVRGLTgiIC8+CiAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiLz4KICA8dGl0bGU+Q2F0Y2ggdGhlIEJveCBHYW1lPC90aXRsZT4KICA8c3R5bGU+CiAgICBib2R5IHsKICAgICAgbWFyZ2luOiAwOwogICAgICBwYWRkaW5nOiAwOwogICAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgICBmb250LWZhbWlseTogQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAgIGJhY2tncm91bmQ6ICMyODJjMzQ7CiAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgfQoKICAgIGgxIHsKICAgICAgbWFyZ2luLXRvcDogMjBweDsKICAgIH0KCiAgICAjZ2FtZUNhbnZhcyB7CiAgICAgIGJhY2tncm91bmQ6ICMxZTFlMWU7CiAgICAgIGJvcmRlcjogMnB4IHNvbGlkIHdoaXRlOwogICAgICBtYXJnaW46IGF1dG87CiAgICAgIGRpc3BsYXk6IGJsb2NrOwogICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgfQoKICAgICNzY29yZSB7CiAgICAgIGZvbnQtc2l6ZTogMjRweDsKICAgICAgbWFyZ2luLXRvcDogMTBweDsKICAgIH0KICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgoKPGgxPvCfjq8gQ2F0Y2ggdGhlIEJveCBHYW1lPC9oMT4KPGRpdiBpZD0ic2NvcmUiPlNjb3JlOiAwPC9kaXY+CjxjYW52YXMgaWQ9ImdhbWVDYW52YXMiIHdpZHRoPSI2MDAiIGhlaWdodD0iNDAwIj48L2NhbnZhcz4KCjxzY3JpcHQ+CiAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdhbWVDYW52YXMiKTsKICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKCiAgbGV0IGJveCA9IHsKICAgIHg6IE1hdGgucmFuZG9tKCkgKiA1NTAsCiAgICB5OiBNYXRoLnJhbmRvbSgpICogMzUwLAogICAgc2l6ZTogNTAsCiAgICBjb2xvcjogInJlZCIKICB9OwoKICBsZXQgc2NvcmUgPSAwOwoKICBmdW5jdGlvbiBkcmF3Qm94KCkgewogICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwogICAgY3R4LmZpbGxTdHlsZSA9IGJveC5jb2xvcjsKICAgIGN0eC5maWxsUmVjdChib3gueCwgYm94LnksIGJveC5zaXplLCBib3guc2l6ZSk7CiAgfQoKICBjYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbiAoZSkgewogICAgY29uc3QgcmVjdCA9IGNhbnZhcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIGNvbnN0IGNsaWNrWCA9IGUuY2xpZW50WCAtIHJlY3QubGVmdDsKICAgIGNvbnN0IGNsaWNrWSA9IGUuY2xpZW50WSAtIHJlY3QudG9wOwoKICAgIGlmICgKICAgICAgY2xpY2tYID49IGJveC54ICYmCiAgICAgIGNsaWNrWCA8PSBib3gueCArIGJveC5zaXplICYmCiAgICAgIGNsaWNrWSA+PSBib3gueSAmJgogICAgICBjbGlja1kgPD0gYm94LnkgKyBib3guc2l6ZQogICAgKSB7CiAgICAgIHNjb3JlKys7CiAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzY29yZSIpLmlubmVyVGV4dCA9ICJTY29yZTogIiArIHNjb3JlOwogICAgICBtb3ZlQm94KCk7CiAgICB9CiAgfSk7CgogIGZ1bmN0aW9uIG1vdmVCb3goKSB7CiAgICBib3gueCA9IE1hdGgucmFuZG9tKCkgKiAoY2FudmFzLndpZHRoIC0gYm94LnNpemUpOwogICAgYm94LnkgPSBNYXRoLnJhbmRvbSgpICogKGNhbnZhcy5oZWlnaHQgLSBib3guc2l6ZSk7CiAgICBkcmF3Qm94KCk7CiAgfQoKICBkcmF3Qm94KCk7Cjwvc2NyaXB0PgoKPC9ib2R5Pgo8L2h0bWw+Cg==
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>Catch the Box Game</title>
<style>
body {
margin: 0;
padding: 0;
overflow: hidden;
font-family: Arial, sans-serif;
background: #282c34;
color: white;
text-align: center;
}
h1 {
margin-top: 20px;
}
#gameCanvas {
background: #1e1e1e;
border: 2px solid white;
margin: auto;
display: block;
margin-top: 20px;
}
#score {
font-size: 24px;
margin-top: 10px;
}
</style>
</head>
<body>
<h1>🎯 Catch the Box Game</h1>
<div id="score">Score: 0</div>
<canvas id="gameCanvas" width="600" height="400"></canvas>
<script>
const canvas = document.getElementById("gameCanvas");
const ctx = canvas.getContext("2d");
let box = {
x: Math.random() * 550,
y: Math.random() * 350,
size: 50,
color: "red"
};
let score = 0;
function drawBox() {
ctx.clearRect(0, 0, canvas.width, canvas.height);
ctx.fillStyle = box.color;
ctx.fillRect(box.x, box.y, box.size, box.size);
}
canvas.addEventListener("click", function (e) {
const rect = canvas.getBoundingClientRect();
const clickX = e.clientX - rect.left;
const clickY = e.clientY - rect.top;
if (
clickX >= box.x &&
clickX <= box.x + box.size &&
clickY >= box.y &&
clickY <= box.y + box.size
) {
score++;
document.getElementById("score").innerText = "Score: " + score;
moveBox();
}
});
function moveBox() {
box.x = Math.random() * (canvas.width - box.size);
box.y = Math.random() * (canvas.height - box.size);
drawBox();
}
drawBox();
</script>
</body>
</html>