Top Digital Marketing Agency in Dhrangadhra | Website Development & Designing – Netbyzz
<!-- CODE = #A054 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>NETBYZZ A054</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<canvas id="Netbyzz" width="400" height="400"></canvas>
<div class="score">Score: 0</div>
<script src="script.js"></script>
</body>
</html>body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
background-color: #f0f0f0;
}
#Netbyzz {
border: 1px solid #333;
background-color: #f8f8f8;
}
.score {
position: absolute;
margin: auto;
font-size: 1.2em;
color: #333;
}const canvas = document.getElementById("Netbyzz");
const ctx = canvas.getContext("2d");
const scale = 20;
const rows = canvas.height / scale;
const columns = canvas.width / scale;
let snake;
let fruit;
(function setup() {
snake = new Snake();
fruit = new Fruit();
fruit.pickLocation();
window.setInterval(() => {
ctx.clearRect(0, 0, canvas.width, canvas.height);
fruit.draw();
snake.update();
snake.draw();
if (snake.eat(fruit)) {
fruit.pickLocation();
}
snake.checkCollision();
document.querySelector(".score").innerText = "Score: " + snake.total;
}, 250);
})();
window.addEventListener("keydown", (evt) => {
const direction = evt.key.replace("Arrow", "");
snake.changeDirection(direction);
});
function Snake() {
this.x = 0;
this.y = 0;
this.xSpeed = scale * 1;
this.ySpeed = 0;
this.total = 0;
this.tail = [];
this.draw = () => {
ctx.fillStyle = "#000";
for (let i = 0; i < this.tail.length; i++) {
ctx.fillRect(this.tail[i].x, this.tail[i].y, scale, scale);
}
ctx.fillRect(this.x, this.y, scale, scale);
};
this.update = () => {
for (let i = 0; i < this.tail.length - 1; i++) {
this.tail[i] = this.tail[i + 1];
}
this.tail[this.total - 1] = { x: this.x, y: this.y };
this.x += this.xSpeed;
this.y += this.ySpeed;
if (this.x >= canvas.width) {
this.x = 0;
}
if (this.y >= canvas.height) {
this.y = 0;
}
if (this.x < 0) {
this.x = canvas.width - scale;
}
if (this.y < 0) {
this.y = canvas.height - scale;
}
};
this.changeDirection = (direction) => {
switch (direction) {
case "Up":
if (this.ySpeed !== scale * 1) {
this.xSpeed = 0;
this.ySpeed = -scale * 1;
}
break;
case "Down":
if (this.ySpeed !== -scale * 1) {
this.xSpeed = 0;
this.ySpeed = scale * 1;
}
break;
case "Left":
if (this.xSpeed !== scale * 1) {
this.xSpeed = -scale * 1;
this.ySpeed = 0;
}
break;
case "Right":
if (this.xSpeed !== -scale * 1) {
this.xSpeed = scale * 1;
this.ySpeed = 0;
}
break;
}
};
this.eat = (fruit) => {
if (this.x === fruit.x && this.y === fruit.y) {
this.total++;
return true;
}
return false;
};
this.checkCollision = () => {
for (let i = 0; i < this.tail.length; i++) {
if (this.x === this.tail[i].x && this.y === this.tail[i].y) {
this.total = 0;
this.tail = [];
}
}
};
}
function Fruit() {
this.x;
this.y;
this.pickLocation = () => {
this.x = Math.floor(Math.random() * columns) * scale;
this.y = Math.floor(Math.random() * rows) * scale;
};
this.draw = () => {
ctx.fillStyle = "red";
ctx.fillRect(this.x, this.y, scale, scale);
};
}