From 849ec9f4bce0609116486dfe7f028f21fa656c8b Mon Sep 17 00:00:00 2001
From: sageTheDM <info@photofuel.tech>
Date: Tue, 25 Feb 2025 11:31:44 +0100
Subject: [PATCH 1/4] cool i borked it even further

---
 secret/snake/audio/dead.mp3  | Bin 0 -> 12729 bytes
 secret/snake/audio/down.mp3  | Bin 0 -> 5009 bytes
 secret/snake/audio/eat.mp3   | Bin 0 -> 4069 bytes
 secret/snake/audio/left.mp3  | Bin 0 -> 5427 bytes
 secret/snake/audio/right.mp3 | Bin 0 -> 5425 bytes
 secret/snake/audio/up.mp3    | Bin 0 -> 5634 bytes
 secret/snake/game.js         | 238 +++++++++++++++++------------------
 secret/snake/img/food.png    | Bin 0 -> 16210 bytes
 secret/snake/img/ground.png  | Bin 0 -> 34100 bytes
 9 files changed, 113 insertions(+), 125 deletions(-)
 create mode 100644 secret/snake/audio/dead.mp3
 create mode 100644 secret/snake/audio/down.mp3
 create mode 100644 secret/snake/audio/eat.mp3
 create mode 100644 secret/snake/audio/left.mp3
 create mode 100644 secret/snake/audio/right.mp3
 create mode 100644 secret/snake/audio/up.mp3
 create mode 100644 secret/snake/img/food.png
 create mode 100644 secret/snake/img/ground.png

diff --git a/secret/snake/audio/dead.mp3 b/secret/snake/audio/dead.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..414bf651437ba21f8a5557c384b2089ac3e83391
GIT binary patch
literal 12729
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

literal 0
HcmV?d00001

diff --git a/secret/snake/audio/down.mp3 b/secret/snake/audio/down.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..03533a07a0c29258ed8b10aa3a8f17efb814d789
GIT binary patch
literal 5009
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

literal 0
HcmV?d00001

diff --git a/secret/snake/audio/eat.mp3 b/secret/snake/audio/eat.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..076198c984e25182a72a16c90a441384805f1778
GIT binary patch
literal 4069
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

literal 0
HcmV?d00001

diff --git a/secret/snake/audio/left.mp3 b/secret/snake/audio/left.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..4d3d245db41598060de9f0f77e72bd4d976cec51
GIT binary patch
literal 5427
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
T08&ErJ_-Qjs8ZPfhYtS*#tG>^

literal 0
HcmV?d00001

diff --git a/secret/snake/audio/right.mp3 b/secret/snake/audio/right.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..64408eaa963e4def7a004e500ca9af7b970ea244
GIT binary patch
literal 5425
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
I{wo6g3mh;G9{>OV

literal 0
HcmV?d00001

diff --git a/secret/snake/audio/up.mp3 b/secret/snake/audio/up.mp3
new file mode 100644
index 0000000000000000000000000000000000000000..97cfbe99060083f737e28047deef99d173626e9a
GIT binary patch
literal 5634
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
NS65}2^*>_Ie*hwcSeF0*

literal 0
HcmV?d00001

diff --git a/secret/snake/game.js b/secret/snake/game.js
index 08d50d5..1dc78c9 100644
--- a/secret/snake/game.js
+++ b/secret/snake/game.js
@@ -1,150 +1,138 @@
 "use strict";
 
-const upButton = document.getElementById("up");
-const downButton = document.getElementById("down");
-const leftButton = document.getElementById("left");
-const rightButton = document.getElementById("right");
-const startButton = document.getElementById("start");
-const grid = document.createElement("div");
-grid.id = "grid";
-document.querySelector(".game").appendChild(grid);
+document.addEventListener("DOMContentLoaded", () => {
+  class SnakeGame {
+    constructor() {
+      this.cvs = document.getElementById("game");
+      this.ctx = this.cvs.getContext("2d");
+      this.startBtn = document.getElementById("start");
+      this.description = document.getElementById("description");
+      this.box = 32;
 
-let snake = [{ x: 5, y: 5 }];
-let apple = { x: 8, y: 5 };
-let direction = { x: 0, y: 0 };
-let gameInterval = null;
-let isGameRunning = false;
-const gridSize = 10;
+      this.ground = new Image();
+      this.ground.src = "img/ground.png";
 
-function initGame() {
-  grid.style.display = "grid";
-  grid.style.gridTemplateColumns = `repeat(${gridSize}, 1fr)`;
-  grid.style.gridTemplateRows = `repeat(${gridSize}, 1fr)`;
-  grid.style.width = "350px";
-  grid.style.height = "350px";
-  document.getElementById("title").style.display = "none";
-  document.getElementById("description").style.display = "none";
+      this.foodImg = new Image();
+      this.foodImg.src = "img/food.png";
 
-  isGameRunning = true;
-  snake = [{ x: 5, y: 5 }];
-  apple = spawnApple();
-  direction = { x: 0, y: 0 };
+      this.sounds = {
+        dead: new Audio("audio/dead.mp3"),
+        eat: new Audio("audio/eat.mp3"),
+        up: new Audio("audio/up.mp3"),
+        right: new Audio("audio/right.mp3"),
+        left: new Audio("audio/left.mp3"),
+        down: new Audio("audio/down.mp3"),
+      };
 
-  clearInterval(gameInterval);
-  gameInterval = setInterval(gameLoop, 200);
-  render();
-}
+      this.snake = [{ x: 9 * this.box, y: 10 * this.box }];
+      this.food = this.getRandomFoodPosition();
+      this.score = 0;
+      this.direction = null;
+      this.game = null;
 
-function spawnApple() {
-  let newApple;
-  do {
-    newApple = {
-      x: Math.floor(Math.random() * gridSize),
-      y: Math.floor(Math.random() * gridSize),
-    };
-  } while (
-    snake.some(
-      (segment) => segment.x === newApple.x && segment.y === newApple.y
-    )
-  );
-  return newApple;
-}
+      document.addEventListener("keydown", (event) =>
+        this.handleKeyPress(event)
+      );
+      this.initControls();
+      this.startBtn.addEventListener("click", () => this.startGame());
+    }
 
-function updateSnake() {
-  const newHead = {
-    x: snake[0].x + direction.x,
-    y: snake[0].y + direction.y,
-  };
+    getRandomFoodPosition() {
+      return {
+        x: Math.floor(Math.random() * 17 + 1) * this.box,
+        y: Math.floor(Math.random() * 15 + 3) * this.box,
+      };
+    }
 
-  if (newHead.x < 0) newHead.x = gridSize - 1;
-  if (newHead.y < 0) newHead.y = gridSize - 1;
-  if (newHead.x >= gridSize) newHead.x = 0;
-  if (newHead.y >= gridSize) newHead.y = 0;
+    handleKeyPress(event) {
+      const key = event.key.toLowerCase();
+      if ((key === "arrowleft" || key === "a") && this.direction !== "RIGHT")
+        this.changeDirection("LEFT");
+      if ((key === "arrowup" || key === "w") && this.direction !== "DOWN")
+        this.changeDirection("UP");
+      if ((key === "arrowright" || key === "d") && this.direction !== "LEFT")
+        this.changeDirection("RIGHT");
+      if ((key === "arrowdown" || key === "s") && this.direction !== "UP")
+        this.changeDirection("DOWN");
+    }
 
-  if (
-    snake.some((segment) => segment.x === newHead.x && segment.y === newHead.y)
-  ) {
-    gameOver();
-    return;
-  }
+    initControls() {
+      document
+        .getElementById("up")
+        .addEventListener("click", () => this.changeDirection("UP"));
+      document
+        .getElementById("down")
+        .addEventListener("click", () => this.changeDirection("DOWN"));
+      document
+        .getElementById("left")
+        .addEventListener("click", () => this.changeDirection("LEFT"));
+      document
+        .getElementById("right")
+        .addEventListener("click", () => this.changeDirection("RIGHT"));
+    }
 
-  snake.unshift(newHead);
+    changeDirection(newDirection) {
+      this.direction = newDirection;
+      this.sounds[newDirection.toLowerCase()].play();
+    }
 
-  if (newHead.x === apple.x && newHead.y === apple.y) {
-    apple = spawnApple();
-  } else {
-    snake.pop();
-  }
-}
+    collision(head, array) {
+      return array.some(
+        (segment) => segment.x === head.x && segment.y === head.y
+      );
+    }
 
-function render() {
-  grid.innerHTML = "";
+    draw() {
+      this.ctx.drawImage(this.ground, 0, 0);
 
-  for (let y = 0; y < gridSize; y++) {
-    for (let x = 0; x < gridSize; x++) {
-      const cell = document.createElement("div");
-      cell.classList.add("cell");
+      this.snake.forEach((segment, index) => {
+        this.ctx.fillStyle = index === 0 ? "green" : "white";
+        this.ctx.fillRect(segment.x, segment.y, this.box, this.box);
+        this.ctx.strokeStyle = "red";
+        this.ctx.strokeRect(segment.x, segment.y, this.box, this.box);
+      });
 
-      if ((x + y) % 2 === 0) {
-        cell.classList.add("light-green");
+      this.ctx.drawImage(this.foodImg, this.food.x, this.food.y);
+
+      let snakeX = this.snake[0].x;
+      let snakeY = this.snake[0].y;
+
+      if (this.direction === "LEFT") snakeX -= this.box;
+      if (this.direction === "UP") snakeY -= this.box;
+      if (this.direction === "RIGHT") snakeX += this.box;
+      if (this.direction === "DOWN") snakeY += this.box;
+
+      if (snakeX === this.food.x && snakeY === this.food.y) {
+        this.score++;
+        this.sounds.eat.play();
+        this.food = this.getRandomFoodPosition();
       } else {
-        cell.classList.add("dark-green");
+        this.snake.pop();
       }
 
-      if (snake.some((segment) => segment.x === x && segment.y === y)) {
-        cell.classList.add("snake");
+      let newHead = { x: snakeX, y: snakeY };
+      if (
+        snakeX < this.box ||
+        snakeX > 17 * this.box ||
+        snakeY < 3 * this.box ||
+        snakeY > 17 * this.box ||
+        this.collision(newHead, this.snake)
+      ) {
+        clearInterval(this.game);
+        this.sounds.dead.play();
       }
 
-      if (apple.x === x && apple.y === y) {
-        cell.classList.add("apple");
-      }
+      this.snake.unshift(newHead);
+      this.ctx.fillStyle = "white";
+      this.ctx.font = "45px Changa one";
+      this.ctx.fillText(this.score, 2 * this.box, 1.6 * this.box);
+    }
 
-      grid.appendChild(cell);
+    startGame() {
+      this.description.style.display = "none";
+      this.game = setInterval(() => this.draw(), 100);
     }
   }
-}
 
-function gameLoop() {
-  if (!isGameRunning) return;
-  updateSnake();
-  render();
-}
-
-function gameOver() {
-  alert("Game Over!");
-  clearInterval(gameInterval);
-  isGameRunning = false;
-}
-
-function handleDirectionInput(key) {
-  switch (key) {
-    case "ArrowUp":
-    case "w":
-      if (direction.y === 0) direction = { x: 0, y: -1 };
-      break;
-    case "ArrowDown":
-    case "s":
-      if (direction.y === 0) direction = { x: 0, y: 1 };
-      break;
-    case "ArrowLeft":
-    case "a":
-      if (direction.x === 0) direction = { x: -1, y: 0 };
-      break;
-    case "ArrowRight":
-    case "d":
-      if (direction.x === 0) direction = { x: 1, y: 0 };
-      break;
-  }
-}
-
-upButton.addEventListener("click", () => handleDirectionInput("ArrowUp"));
-downButton.addEventListener("click", () => handleDirectionInput("ArrowDown"));
-leftButton.addEventListener("click", () => handleDirectionInput("ArrowLeft"));
-rightButton.addEventListener("click", () => handleDirectionInput("ArrowRight"));
-startButton.addEventListener("click", () => {
-  if (!isGameRunning) initGame();
-});
-
-document.addEventListener("keydown", (event) => {
-  handleDirectionInput(event.key);
+  new SnakeGame();
 });
diff --git a/secret/snake/img/food.png b/secret/snake/img/food.png
new file mode 100644
index 0000000000000000000000000000000000000000..921fe782aaa3987ea2edf8d4eef2f8dbf53265a2
GIT binary patch
literal 16210
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

literal 0
HcmV?d00001

diff --git a/secret/snake/img/ground.png b/secret/snake/img/ground.png
new file mode 100644
index 0000000000000000000000000000000000000000..218b19095eb37c9aba704095563dea5abeff7661
GIT binary patch
literal 34100
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

literal 0
HcmV?d00001

-- 
2.39.5


From c6d1a47097295b91f9590a20ca2df10d9fd66537 Mon Sep 17 00:00:00 2001
From: sageTheDM <info@photofuel.tech>
Date: Tue, 25 Feb 2025 11:32:25 +0100
Subject: [PATCH 2/4] nice I can't make it work

---
 secret/snake/game.js | 237 ++++++++++++++++++++-----------------------
 1 file changed, 111 insertions(+), 126 deletions(-)

diff --git a/secret/snake/game.js b/secret/snake/game.js
index 1dc78c9..22cf87f 100644
--- a/secret/snake/game.js
+++ b/secret/snake/game.js
@@ -1,138 +1,123 @@
 "use strict";
 
 document.addEventListener("DOMContentLoaded", () => {
-  class SnakeGame {
-    constructor() {
-      this.cvs = document.getElementById("game");
-      this.ctx = this.cvs.getContext("2d");
-      this.startBtn = document.getElementById("start");
-      this.description = document.getElementById("description");
-      this.box = 32;
+  const cvs = document.getElementById("game");
+  const ctx = cvs.getContext("2d");
+  const startBtn = document.getElementById("start");
+  const description = document.getElementById("description");
+  const box = 32;
 
-      this.ground = new Image();
-      this.ground.src = "img/ground.png";
+  const ground = new Image();
+  ground.src = "img/ground.png";
 
-      this.foodImg = new Image();
-      this.foodImg.src = "img/food.png";
+  const foodImg = new Image();
+  foodImg.src = "img/food.png";
 
-      this.sounds = {
-        dead: new Audio("audio/dead.mp3"),
-        eat: new Audio("audio/eat.mp3"),
-        up: new Audio("audio/up.mp3"),
-        right: new Audio("audio/right.mp3"),
-        left: new Audio("audio/left.mp3"),
-        down: new Audio("audio/down.mp3"),
-      };
+  let dead = new Audio("audio/dead.mp3");
+  let eat = new Audio("audio/eat.mp3");
+  let up = new Audio("audio/up.mp3");
+  let right = new Audio("audio/right.mp3");
+  let left = new Audio("audio/left.mp3");
+  let down = new Audio("audio/down.mp3");
 
-      this.snake = [{ x: 9 * this.box, y: 10 * this.box }];
-      this.food = this.getRandomFoodPosition();
-      this.score = 0;
-      this.direction = null;
-      this.game = null;
+  let snake = [{ x: 9 * box, y: 10 * box }];
+  let food = {
+    x: Math.floor(Math.random() * 17 + 1) * box,
+    y: Math.floor(Math.random() * 15 + 3) * box,
+  };
+  let score = 0;
+  let d;
+  let game;
 
-      document.addEventListener("keydown", (event) =>
-        this.handleKeyPress(event)
-      );
-      this.initControls();
-      this.startBtn.addEventListener("click", () => this.startGame());
-    }
+  document.addEventListener("keydown", direction);
+  document
+    .getElementById("up")
+    .addEventListener("click", () => changeDirection("UP"));
+  document
+    .getElementById("down")
+    .addEventListener("click", () => changeDirection("DOWN"));
+  document
+    .getElementById("left")
+    .addEventListener("click", () => changeDirection("LEFT"));
+  document
+    .getElementById("right")
+    .addEventListener("click", () => changeDirection("RIGHT"));
+  startBtn.addEventListener("click", startGame);
 
-    getRandomFoodPosition() {
-      return {
-        x: Math.floor(Math.random() * 17 + 1) * this.box,
-        y: Math.floor(Math.random() * 15 + 3) * this.box,
-      };
-    }
-
-    handleKeyPress(event) {
-      const key = event.key.toLowerCase();
-      if ((key === "arrowleft" || key === "a") && this.direction !== "RIGHT")
-        this.changeDirection("LEFT");
-      if ((key === "arrowup" || key === "w") && this.direction !== "DOWN")
-        this.changeDirection("UP");
-      if ((key === "arrowright" || key === "d") && this.direction !== "LEFT")
-        this.changeDirection("RIGHT");
-      if ((key === "arrowdown" || key === "s") && this.direction !== "UP")
-        this.changeDirection("DOWN");
-    }
-
-    initControls() {
-      document
-        .getElementById("up")
-        .addEventListener("click", () => this.changeDirection("UP"));
-      document
-        .getElementById("down")
-        .addEventListener("click", () => this.changeDirection("DOWN"));
-      document
-        .getElementById("left")
-        .addEventListener("click", () => this.changeDirection("LEFT"));
-      document
-        .getElementById("right")
-        .addEventListener("click", () => this.changeDirection("RIGHT"));
-    }
-
-    changeDirection(newDirection) {
-      this.direction = newDirection;
-      this.sounds[newDirection.toLowerCase()].play();
-    }
-
-    collision(head, array) {
-      return array.some(
-        (segment) => segment.x === head.x && segment.y === head.y
-      );
-    }
-
-    draw() {
-      this.ctx.drawImage(this.ground, 0, 0);
-
-      this.snake.forEach((segment, index) => {
-        this.ctx.fillStyle = index === 0 ? "green" : "white";
-        this.ctx.fillRect(segment.x, segment.y, this.box, this.box);
-        this.ctx.strokeStyle = "red";
-        this.ctx.strokeRect(segment.x, segment.y, this.box, this.box);
-      });
-
-      this.ctx.drawImage(this.foodImg, this.food.x, this.food.y);
-
-      let snakeX = this.snake[0].x;
-      let snakeY = this.snake[0].y;
-
-      if (this.direction === "LEFT") snakeX -= this.box;
-      if (this.direction === "UP") snakeY -= this.box;
-      if (this.direction === "RIGHT") snakeX += this.box;
-      if (this.direction === "DOWN") snakeY += this.box;
-
-      if (snakeX === this.food.x && snakeY === this.food.y) {
-        this.score++;
-        this.sounds.eat.play();
-        this.food = this.getRandomFoodPosition();
-      } else {
-        this.snake.pop();
-      }
-
-      let newHead = { x: snakeX, y: snakeY };
-      if (
-        snakeX < this.box ||
-        snakeX > 17 * this.box ||
-        snakeY < 3 * this.box ||
-        snakeY > 17 * this.box ||
-        this.collision(newHead, this.snake)
-      ) {
-        clearInterval(this.game);
-        this.sounds.dead.play();
-      }
-
-      this.snake.unshift(newHead);
-      this.ctx.fillStyle = "white";
-      this.ctx.font = "45px Changa one";
-      this.ctx.fillText(this.score, 2 * this.box, 1.6 * this.box);
-    }
-
-    startGame() {
-      this.description.style.display = "none";
-      this.game = setInterval(() => this.draw(), 100);
-    }
+  function direction(event) {
+    const key = event.key.toLowerCase();
+    if ((key === "arrowleft" || key === "a") && d !== "RIGHT")
+      changeDirection("LEFT");
+    if ((key === "arrowup" || key === "w") && d !== "DOWN")
+      changeDirection("UP");
+    if ((key === "arrowright" || key === "d") && d !== "LEFT")
+      changeDirection("RIGHT");
+    if ((key === "arrowdown" || key === "s") && d !== "UP")
+      changeDirection("DOWN");
   }
 
-  new SnakeGame();
+  function changeDirection(newDirection) {
+    d = newDirection;
+    if (newDirection === "LEFT") left.play();
+    if (newDirection === "UP") up.play();
+    if (newDirection === "RIGHT") right.play();
+    if (newDirection === "DOWN") down.play();
+  }
+
+  function collision(head, array) {
+    return array.some(
+      (segment) => segment.x === head.x && segment.y === head.y
+    );
+  }
+
+  function draw() {
+    ctx.drawImage(ground, 0, 0);
+    snake.forEach((segment, index) => {
+      ctx.fillStyle = index === 0 ? "green" : "white";
+      ctx.fillRect(segment.x, segment.y, box, box);
+      ctx.strokeStyle = "red";
+      ctx.strokeRect(segment.x, segment.y, box, box);
+    });
+    ctx.drawImage(foodImg, food.x, food.y);
+
+    let snakeX = snake[0].x;
+    let snakeY = snake[0].y;
+    if (d === "LEFT") snakeX -= box;
+    if (d === "UP") snakeY -= box;
+    if (d === "RIGHT") snakeX += box;
+    if (d === "DOWN") snakeY += box;
+
+    if (snakeX === food.x && snakeY === food.y) {
+      score++;
+      eat.play();
+      food = {
+        x: Math.floor(Math.random() * 17 + 1) * box,
+        y: Math.floor(Math.random() * 15 + 3) * box,
+      };
+    } else {
+      snake.pop();
+    }
+
+    let newHead = { x: snakeX, y: snakeY };
+    if (
+      snakeX < box ||
+      snakeX > 17 * box ||
+      snakeY < 3 * box ||
+      snakeY > 17 * box ||
+      collision(newHead, snake)
+    ) {
+      clearInterval(game);
+      dead.play();
+    }
+
+    snake.unshift(newHead);
+    ctx.fillStyle = "white";
+    ctx.font = "45px Changa one";
+    ctx.fillText(score, 2 * box, 1.6 * box);
+  }
+
+  function startGame() {
+    description.style.display = "none";
+    game = setInterval(draw, 100);
+  }
 });
-- 
2.39.5


From c8457d3b1c6dccc5a42d9a2e7f4174f8b76f48b7 Mon Sep 17 00:00:00 2001
From: sageTheDM <info@photofuel.tech>
Date: Tue, 25 Feb 2025 12:00:40 +0100
Subject: [PATCH 3/4] WHY IS THIS BULLSHIT WORKING

---
 secret/snake/game.js    | 251 +++++++++++++++++++++++-----------------
 secret/snake/index.html |   2 +-
 secret/snake/test.html  | 171 +++++++++++++++++++++++++++
 3 files changed, 314 insertions(+), 110 deletions(-)
 create mode 100644 secret/snake/test.html

diff --git a/secret/snake/game.js b/secret/snake/game.js
index 22cf87f..2f6ea42 100644
--- a/secret/snake/game.js
+++ b/secret/snake/game.js
@@ -1,123 +1,156 @@
+// testing from old tutorial
+
 "use strict";
 
-document.addEventListener("DOMContentLoaded", () => {
-  const cvs = document.getElementById("game");
-  const ctx = cvs.getContext("2d");
-  const startBtn = document.getElementById("start");
-  const description = document.getElementById("description");
-  const box = 32;
+const cvs = document.getElementById("snake");
+const ctx = cvs.getContext("2d");
 
-  const ground = new Image();
-  ground.src = "img/ground.png";
+// create the unit
+const box = 32;
 
-  const foodImg = new Image();
-  foodImg.src = "img/food.png";
+// load images
 
-  let dead = new Audio("audio/dead.mp3");
-  let eat = new Audio("audio/eat.mp3");
-  let up = new Audio("audio/up.mp3");
-  let right = new Audio("audio/right.mp3");
-  let left = new Audio("audio/left.mp3");
-  let down = new Audio("audio/down.mp3");
+const ground = new Image();
+ground.src = "img/ground.png";
 
-  let snake = [{ x: 9 * box, y: 10 * box }];
-  let food = {
-    x: Math.floor(Math.random() * 17 + 1) * box,
-    y: Math.floor(Math.random() * 15 + 3) * box,
+const foodImg = new Image();
+foodImg.src = "img/food.png";
+
+// load audio files
+
+let dead = new Audio();
+let eat = new Audio();
+let up = new Audio();
+let right = new Audio();
+let left = new Audio();
+let down = new Audio();
+
+dead.src = "audio/dead.mp3";
+eat.src = "audio/eat.mp3";
+up.src = "audio/up.mp3";
+right.src = "audio/right.mp3";
+left.src = "audio/left.mp3";
+down.src = "audio/down.mp3";
+
+// create the snake
+
+let snake = [];
+
+snake[0] = {
+  x: 9 * box,
+  y: 10 * box,
+};
+
+// create the food
+
+let food = {
+  x: Math.floor(Math.random() * 17 + 1) * box,
+  y: Math.floor(Math.random() * 15 + 3) * box,
+};
+
+// create the score var
+
+let score = 0;
+
+//control the snake
+
+let d;
+
+document.addEventListener("keydown", direction);
+
+function direction(event) {
+  let key = event.keyCode;
+  if (key == 37 && d != "RIGHT") {
+    left.play();
+    d = "LEFT";
+  } else if (key == 38 && d != "DOWN") {
+    d = "UP";
+    up.play();
+  } else if (key == 39 && d != "LEFT") {
+    d = "RIGHT";
+    right.play();
+  } else if (key == 40 && d != "UP") {
+    d = "DOWN";
+    down.play();
+  }
+}
+
+// cheack collision function
+function collision(head, array) {
+  for (let i = 0; i < array.length; i++) {
+    if (head.x == array[i].x && head.y == array[i].y) {
+      return true;
+    }
+  }
+  return false;
+}
+
+// draw everything to the canvas
+
+function draw() {
+  ctx.drawImage(ground, 0, 0);
+
+  for (let i = 0; i < snake.length; i++) {
+    ctx.fillStyle = i == 0 ? "green" : "white";
+    ctx.fillRect(snake[i].x, snake[i].y, box, box);
+
+    ctx.strokeStyle = "red";
+    ctx.strokeRect(snake[i].x, snake[i].y, box, box);
+  }
+
+  ctx.drawImage(foodImg, food.x, food.y);
+
+  // old head position
+  let snakeX = snake[0].x;
+  let snakeY = snake[0].y;
+
+  // which direction
+  if (d == "LEFT") snakeX -= box;
+  if (d == "UP") snakeY -= box;
+  if (d == "RIGHT") snakeX += box;
+  if (d == "DOWN") snakeY += box;
+
+  // if the snake eats the food
+  if (snakeX == food.x && snakeY == food.y) {
+    score++;
+    eat.play();
+    food = {
+      x: Math.floor(Math.random() * 17 + 1) * box,
+      y: Math.floor(Math.random() * 15 + 3) * box,
+    };
+    // we don't remove the tail
+  } else {
+    // remove the tail
+    snake.pop();
+  }
+
+  // add new Head
+
+  let newHead = {
+    x: snakeX,
+    y: snakeY,
   };
-  let score = 0;
-  let d;
-  let game;
 
-  document.addEventListener("keydown", direction);
-  document
-    .getElementById("up")
-    .addEventListener("click", () => changeDirection("UP"));
-  document
-    .getElementById("down")
-    .addEventListener("click", () => changeDirection("DOWN"));
-  document
-    .getElementById("left")
-    .addEventListener("click", () => changeDirection("LEFT"));
-  document
-    .getElementById("right")
-    .addEventListener("click", () => changeDirection("RIGHT"));
-  startBtn.addEventListener("click", startGame);
+  // game over
 
-  function direction(event) {
-    const key = event.key.toLowerCase();
-    if ((key === "arrowleft" || key === "a") && d !== "RIGHT")
-      changeDirection("LEFT");
-    if ((key === "arrowup" || key === "w") && d !== "DOWN")
-      changeDirection("UP");
-    if ((key === "arrowright" || key === "d") && d !== "LEFT")
-      changeDirection("RIGHT");
-    if ((key === "arrowdown" || key === "s") && d !== "UP")
-      changeDirection("DOWN");
+  if (
+    snakeX < box ||
+    snakeX > 17 * box ||
+    snakeY < 3 * box ||
+    snakeY > 17 * box ||
+    collision(newHead, snake)
+  ) {
+    clearInterval(game);
+    dead.play();
   }
 
-  function changeDirection(newDirection) {
-    d = newDirection;
-    if (newDirection === "LEFT") left.play();
-    if (newDirection === "UP") up.play();
-    if (newDirection === "RIGHT") right.play();
-    if (newDirection === "DOWN") down.play();
-  }
+  snake.unshift(newHead);
 
-  function collision(head, array) {
-    return array.some(
-      (segment) => segment.x === head.x && segment.y === head.y
-    );
-  }
+  ctx.fillStyle = "white";
+  ctx.font = "45px Changa one";
+  ctx.fillText(score, 2 * box, 1.6 * box);
+}
 
-  function draw() {
-    ctx.drawImage(ground, 0, 0);
-    snake.forEach((segment, index) => {
-      ctx.fillStyle = index === 0 ? "green" : "white";
-      ctx.fillRect(segment.x, segment.y, box, box);
-      ctx.strokeStyle = "red";
-      ctx.strokeRect(segment.x, segment.y, box, box);
-    });
-    ctx.drawImage(foodImg, food.x, food.y);
+// call draw function every 100 ms
 
-    let snakeX = snake[0].x;
-    let snakeY = snake[0].y;
-    if (d === "LEFT") snakeX -= box;
-    if (d === "UP") snakeY -= box;
-    if (d === "RIGHT") snakeX += box;
-    if (d === "DOWN") snakeY += box;
-
-    if (snakeX === food.x && snakeY === food.y) {
-      score++;
-      eat.play();
-      food = {
-        x: Math.floor(Math.random() * 17 + 1) * box,
-        y: Math.floor(Math.random() * 15 + 3) * box,
-      };
-    } else {
-      snake.pop();
-    }
-
-    let newHead = { x: snakeX, y: snakeY };
-    if (
-      snakeX < box ||
-      snakeX > 17 * box ||
-      snakeY < 3 * box ||
-      snakeY > 17 * box ||
-      collision(newHead, snake)
-    ) {
-      clearInterval(game);
-      dead.play();
-    }
-
-    snake.unshift(newHead);
-    ctx.fillStyle = "white";
-    ctx.font = "45px Changa one";
-    ctx.fillText(score, 2 * box, 1.6 * box);
-  }
-
-  function startGame() {
-    description.style.display = "none";
-    game = setInterval(draw, 100);
-  }
-});
+let game = setInterval(draw, 100);
diff --git a/secret/snake/index.html b/secret/snake/index.html
index 183027f..7f81ed2 100644
--- a/secret/snake/index.html
+++ b/secret/snake/index.html
@@ -38,7 +38,7 @@
             <p>▲ or W or arrow up = move up</p>
             <p>▼ or S or arrow down = move down</p>
           </div>
-          <canvas id="game"></canvas>
+          <canvas id="snake" width="400" height="400"></canvas>
         </article>
       </div>
 
diff --git a/secret/snake/test.html b/secret/snake/test.html
new file mode 100644
index 0000000..a10dce8
--- /dev/null
+++ b/secret/snake/test.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Snake Game</title>
+    <style>
+      canvas {
+        border: 1px solid black;
+      }
+      #restartBtn {
+        padding: 10px 20px;
+        font-size: 16px;
+        cursor: pointer;
+        margin-top: 20px;
+      }
+    </style>
+  </head>
+  <body>
+    <canvas id="snake" width="608" height="608"></canvas>
+    <button id="restartBtn" style="display: none">Restart</button>
+
+    <script>
+      "use strict";
+
+      const cvs = document.getElementById("snake");
+      const ctx = cvs.getContext("2d");
+
+      const box = 32;
+
+      const ground = new Image();
+      ground.src = "img/ground.png";
+
+      const foodImg = new Image();
+      foodImg.src = "img/food.png";
+
+      let dead = new Audio();
+      let eat = new Audio();
+      let up = new Audio();
+      let right = new Audio();
+      let left = new Audio();
+      let down = new Audio();
+
+      dead.src = "audio/dead.mp3";
+      eat.src = "audio/eat.mp3";
+      up.src = "audio/up.mp3";
+      right.src = "audio/right.mp3";
+      left.src = "audio/left.mp3";
+      down.src = "audio/down.mp3";
+
+      let snake = [];
+      snake[0] = { x: 9 * box, y: 10 * box };
+
+      let food = {
+        x: Math.floor(Math.random() * 17 + 1) * box,
+        y: Math.floor(Math.random() * 15 + 3) * box,
+      };
+
+      let score = 0;
+
+      let d;
+      let game;
+
+      document.addEventListener("keydown", direction);
+
+      function direction(event) {
+        let key = event.keyCode;
+
+        if ((key == 37 || key == 65) && d != "RIGHT") {
+          left.play();
+          d = "LEFT";
+        } else if ((key == 38 || key == 87) && d != "DOWN") {
+          d = "UP";
+          up.play();
+        } else if ((key == 39 || key == 68) && d != "LEFT") {
+          d = "RIGHT";
+          right.play();
+        } else if ((key == 40 || key == 83) && d != "UP") {
+          d = "DOWN";
+          down.play();
+        }
+      }
+
+      function collision(head, array) {
+        for (let i = 0; i < array.length; i++) {
+          if (head.x == array[i].x && head.y == array[i].y) {
+            return true;
+          }
+        }
+        return false;
+      }
+
+      function draw() {
+        ctx.drawImage(ground, 0, 0);
+
+        for (let i = 0; i < snake.length; i++) {
+          ctx.fillStyle = i == 0 ? "green" : "white";
+          ctx.fillRect(snake[i].x, snake[i].y, box, box);
+
+          ctx.strokeStyle = "red";
+          ctx.strokeRect(snake[i].x, snake[i].y, box, box);
+        }
+
+        ctx.drawImage(foodImg, food.x, food.y);
+
+        let snakeX = snake[0].x;
+        let snakeY = snake[0].y;
+
+        if (d == "LEFT") snakeX -= box;
+        if (d == "UP") snakeY -= box;
+        if (d == "RIGHT") snakeX += box;
+        if (d == "DOWN") snakeY += box;
+
+        if (snakeX == food.x && snakeY == food.y) {
+          score++;
+          eat.play();
+          food = {
+            x: Math.floor(Math.random() * 17 + 1) * box,
+            y: Math.floor(Math.random() * 15 + 3) * box,
+          };
+        } else {
+          snake.pop();
+        }
+
+        let newHead = { x: snakeX, y: snakeY };
+
+        if (
+          snakeX < box ||
+          snakeX > 17 * box ||
+          snakeY < 3 * box ||
+          snakeY > 17 * box ||
+          collision(newHead, snake)
+        ) {
+          clearInterval(game);
+          dead.play();
+
+          // Delay Game Over message
+          setTimeout(() => {
+            alert("Game Over!");
+            document.getElementById("restartBtn").style.display = "block";
+          }, 500); // Wait 0.5 seconds before showing the message
+          return;
+        }
+
+        snake.unshift(newHead);
+
+        ctx.fillStyle = "white";
+        ctx.font = "45px Changa one";
+        ctx.fillText(score, 2 * box, 1.6 * box);
+      }
+
+      function restartGame() {
+        snake = [{ x: 9 * box, y: 10 * box }];
+        food = {
+          x: Math.floor(Math.random() * 17 + 1) * box,
+          y: Math.floor(Math.random() * 15 + 3) * box,
+        };
+        score = 0;
+        d = "";
+        document.getElementById("restartBtn").style.display = "none";
+        game = setInterval(draw, 150); // Reduced speed (increased interval time to 150ms)
+      }
+
+      document
+        .getElementById("restartBtn")
+        .addEventListener("click", restartGame);
+
+      game = setInterval(draw, 150); // Start the game with reduced speed
+    </script>
+  </body>
+</html>
-- 
2.39.5


From cd401ee5b65d28e453e93845621bdf17980ee51e Mon Sep 17 00:00:00 2001
From: sageTheDM <info@photofuel.tech>
Date: Tue, 25 Feb 2025 13:33:17 +0100
Subject: [PATCH 4/4] why is one working and the other isn't

---
 secret/snake/game.js   | 143 +++++++++----------------------
 secret/snake/test.html | 186 +++++++++++++++++++++++------------------
 2 files changed, 147 insertions(+), 182 deletions(-)

diff --git a/secret/snake/game.js b/secret/snake/game.js
index 2f6ea42..f94dc2e 100644
--- a/secret/snake/game.js
+++ b/secret/snake/game.js
@@ -1,156 +1,95 @@
-// testing from old tutorial
-
 "use strict";
 
 const cvs = document.getElementById("snake");
 const ctx = cvs.getContext("2d");
+const box = 20;
 
-// create the unit
-const box = 32;
-
-// load images
-
-const ground = new Image();
-ground.src = "img/ground.png";
-
-const foodImg = new Image();
-foodImg.src = "img/food.png";
-
-// load audio files
-
-let dead = new Audio();
-let eat = new Audio();
-let up = new Audio();
-let right = new Audio();
-let left = new Audio();
-let down = new Audio();
-
-dead.src = "audio/dead.mp3";
-eat.src = "audio/eat.mp3";
-up.src = "audio/up.mp3";
-right.src = "audio/right.mp3";
-left.src = "audio/left.mp3";
-down.src = "audio/down.mp3";
-
-// create the snake
-
-let snake = [];
-
-snake[0] = {
-  x: 9 * box,
-  y: 10 * box,
-};
-
-// create the food
-
+let snake = [{ x: 9 * box, y: 10 * box }];
 let food = {
-  x: Math.floor(Math.random() * 17 + 1) * box,
-  y: Math.floor(Math.random() * 15 + 3) * box,
+  x: Math.floor(Math.random() * 19 + 1) * box,
+  y: Math.floor(Math.random() * 19 + 1) * box,
 };
-
-// create the score var
-
 let score = 0;
-
-//control the snake
-
 let d;
+let game;
 
 document.addEventListener("keydown", direction);
-
 function direction(event) {
   let key = event.keyCode;
-  if (key == 37 && d != "RIGHT") {
-    left.play();
-    d = "LEFT";
-  } else if (key == 38 && d != "DOWN") {
-    d = "UP";
-    up.play();
-  } else if (key == 39 && d != "LEFT") {
-    d = "RIGHT";
-    right.play();
-  } else if (key == 40 && d != "UP") {
-    d = "DOWN";
-    down.play();
-  }
+  if ((key == 37 || key == 65) && d != "RIGHT") d = "LEFT";
+  else if ((key == 38 || key == 87) && d != "DOWN") d = "UP";
+  else if ((key == 39 || key == 68) && d != "LEFT") d = "RIGHT";
+  else if ((key == 40 || key == 83) && d != "UP") d = "DOWN";
 }
 
-// cheack collision function
 function collision(head, array) {
-  for (let i = 0; i < array.length; i++) {
-    if (head.x == array[i].x && head.y == array[i].y) {
-      return true;
-    }
-  }
-  return false;
+  return array.some((part) => head.x == part.x && head.y == part.y);
 }
 
-// draw everything to the canvas
-
 function draw() {
-  ctx.drawImage(ground, 0, 0);
+  ctx.fillStyle = "#0f380f";
+  ctx.fillRect(0, 0, cvs.width, cvs.height);
+
+  ctx.fillStyle = "red";
+  ctx.fillRect(food.x, food.y, box, box);
 
   for (let i = 0; i < snake.length; i++) {
-    ctx.fillStyle = i == 0 ? "green" : "white";
+    ctx.fillStyle = i == 0 ? "lime" : "white";
     ctx.fillRect(snake[i].x, snake[i].y, box, box);
-
-    ctx.strokeStyle = "red";
+    ctx.strokeStyle = "black";
     ctx.strokeRect(snake[i].x, snake[i].y, box, box);
   }
 
-  ctx.drawImage(foodImg, food.x, food.y);
-
-  // old head position
   let snakeX = snake[0].x;
   let snakeY = snake[0].y;
 
-  // which direction
   if (d == "LEFT") snakeX -= box;
   if (d == "UP") snakeY -= box;
   if (d == "RIGHT") snakeX += box;
   if (d == "DOWN") snakeY += box;
 
-  // if the snake eats the food
   if (snakeX == food.x && snakeY == food.y) {
     score++;
-    eat.play();
     food = {
-      x: Math.floor(Math.random() * 17 + 1) * box,
-      y: Math.floor(Math.random() * 15 + 3) * box,
+      x: Math.floor(Math.random() * 19 + 1) * box,
+      y: Math.floor(Math.random() * 19 + 1) * box,
     };
-    // we don't remove the tail
   } else {
-    // remove the tail
     snake.pop();
   }
 
-  // add new Head
-
-  let newHead = {
-    x: snakeX,
-    y: snakeY,
-  };
-
-  // game over
+  let newHead = { x: snakeX, y: snakeY };
 
   if (
-    snakeX < box ||
-    snakeX > 17 * box ||
-    snakeY < 3 * box ||
-    snakeY > 17 * box ||
+    snakeX < 0 ||
+    snakeX >= cvs.width ||
+    snakeY < 0 ||
+    snakeY >= cvs.height ||
     collision(newHead, snake)
   ) {
     clearInterval(game);
-    dead.play();
+    document.getElementById("restartBtn").style.display = "block";
+    return;
   }
 
   snake.unshift(newHead);
 
   ctx.fillStyle = "white";
-  ctx.font = "45px Changa one";
-  ctx.fillText(score, 2 * box, 1.6 * box);
+  ctx.font = "20px Arial";
+  ctx.fillText("Score: " + score, 10, 20);
 }
 
-// call draw function every 100 ms
+function restartGame() {
+  snake = [{ x: 9 * box, y: 10 * box }];
+  food = {
+    x: Math.floor(Math.random() * 19 + 1) * box,
+    y: Math.floor(Math.random() * 19 + 1) * box,
+  };
+  score = 0;
+  d = "";
+  document.getElementById("restartBtn").style.display = "none";
+  game = setInterval(draw, 150);
+}
 
-let game = setInterval(draw, 100);
+document.getElementById("restartBtn").addEventListener("click", restartGame);
+game = setInterval(draw, 150);
diff --git a/secret/snake/test.html b/secret/snake/test.html
index a10dce8..12a5cfb 100644
--- a/secret/snake/test.html
+++ b/secret/snake/test.html
@@ -3,106 +3,140 @@
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-    <title>Snake Game</title>
+    <title>Snake Game - GameBoy Style</title>
     <style>
+      /* Base Reset */
+      body,
+      html {
+        margin: 0;
+        padding: 0;
+        font-family: monospace;
+        background-color: #3a2d56;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        height: 100vh;
+      }
+
+      /* GameBoy Layout */
+      .gameboy {
+        background-color: #5f4c82;
+        width: 441px;
+        height: 735px;
+        border-radius: 20px;
+        box-shadow: 0 8px 16px rgba(0, 0, 0, 0.6);
+        display: flex;
+        flex-direction: column;
+        align-items: center;
+        padding: 10px;
+        position: relative;
+      }
+
+      @media (max-width: 768px) {
+        .gameboy {
+          width: 100vw;
+          height: 100vh;
+          border-radius: 0;
+        }
+      }
+
+      /* Screen */
+      .screen {
+        background-color: black;
+        border: 4px solid #0f380f;
+        width: 90%;
+        height: 55%;
+        margin-top: 20px;
+        border-radius: 10px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        box-shadow: inset 0 4px 8px rgba(0, 0, 0, 0.5);
+        overflow: hidden;
+      }
+
       canvas {
         border: 1px solid black;
       }
+
+      /* Restart Button */
       #restartBtn {
         padding: 10px 20px;
         font-size: 16px;
         cursor: pointer;
         margin-top: 20px;
+        background-color: #0f380f;
+        color: white;
+        border: none;
+        border-radius: 5px;
+        display: none;
+      }
+
+      #restartBtn:hover {
+        background-color: #9bbc0f;
+      }
+
+      /* Titles */
+      h1 {
+        font-size: 1.8rem;
+        margin-bottom: 10px;
+        text-transform: uppercase;
+        color: #9bbc0f;
       }
     </style>
   </head>
   <body>
-    <canvas id="snake" width="608" height="608"></canvas>
-    <button id="restartBtn" style="display: none">Restart</button>
+    <div class="gameboy">
+      <h1>Snake Game</h1>
+      <div class="screen">
+        <canvas id="snake" width="400" height="400"></canvas>
+      </div>
+      <button id="restartBtn">Restart</button>
+    </div>
 
     <script>
       "use strict";
 
       const cvs = document.getElementById("snake");
       const ctx = cvs.getContext("2d");
+      const box = 20;
 
-      const box = 32;
-
-      const ground = new Image();
-      ground.src = "img/ground.png";
-
-      const foodImg = new Image();
-      foodImg.src = "img/food.png";
-
-      let dead = new Audio();
-      let eat = new Audio();
-      let up = new Audio();
-      let right = new Audio();
-      let left = new Audio();
-      let down = new Audio();
-
-      dead.src = "audio/dead.mp3";
-      eat.src = "audio/eat.mp3";
-      up.src = "audio/up.mp3";
-      right.src = "audio/right.mp3";
-      left.src = "audio/left.mp3";
-      down.src = "audio/down.mp3";
-
-      let snake = [];
-      snake[0] = { x: 9 * box, y: 10 * box };
-
+      let snake = [{ x: 9 * box, y: 10 * box }];
       let food = {
-        x: Math.floor(Math.random() * 17 + 1) * box,
-        y: Math.floor(Math.random() * 15 + 3) * box,
+        x: Math.floor(Math.random() * 19 + 1) * box,
+        y: Math.floor(Math.random() * 19 + 1) * box,
       };
-
       let score = 0;
-
       let d;
       let game;
 
       document.addEventListener("keydown", direction);
-
       function direction(event) {
         let key = event.keyCode;
-
-        if ((key == 37 || key == 65) && d != "RIGHT") {
-          left.play();
-          d = "LEFT";
-        } else if ((key == 38 || key == 87) && d != "DOWN") {
-          d = "UP";
-          up.play();
-        } else if ((key == 39 || key == 68) && d != "LEFT") {
-          d = "RIGHT";
-          right.play();
-        } else if ((key == 40 || key == 83) && d != "UP") {
-          d = "DOWN";
-          down.play();
-        }
+        if ((key == 37 || key == 65) && d != "RIGHT") d = "LEFT";
+        else if ((key == 38 || key == 87) && d != "DOWN") d = "UP";
+        else if ((key == 39 || key == 68) && d != "LEFT") d = "RIGHT";
+        else if ((key == 40 || key == 83) && d != "UP") d = "DOWN";
       }
 
       function collision(head, array) {
-        for (let i = 0; i < array.length; i++) {
-          if (head.x == array[i].x && head.y == array[i].y) {
-            return true;
-          }
-        }
-        return false;
+        return array.some((part) => head.x == part.x && head.y == part.y);
       }
 
       function draw() {
-        ctx.drawImage(ground, 0, 0);
+        ctx.fillStyle = "#0f380f";
+        ctx.fillRect(0, 0, cvs.width, cvs.height);
+
+        ctx.fillStyle = "red";
+        ctx.fillRect(food.x, food.y, box, box);
 
         for (let i = 0; i < snake.length; i++) {
-          ctx.fillStyle = i == 0 ? "green" : "white";
+          ctx.fillStyle = i == 0 ? "lime" : "white";
           ctx.fillRect(snake[i].x, snake[i].y, box, box);
-
-          ctx.strokeStyle = "red";
+          ctx.strokeStyle = "black";
           ctx.strokeRect(snake[i].x, snake[i].y, box, box);
         }
 
-        ctx.drawImage(foodImg, food.x, food.y);
-
         let snakeX = snake[0].x;
         let snakeY = snake[0].y;
 
@@ -113,10 +147,9 @@
 
         if (snakeX == food.x && snakeY == food.y) {
           score++;
-          eat.play();
           food = {
-            x: Math.floor(Math.random() * 17 + 1) * box,
-            y: Math.floor(Math.random() * 15 + 3) * box,
+            x: Math.floor(Math.random() * 19 + 1) * box,
+            y: Math.floor(Math.random() * 19 + 1) * box,
           };
         } else {
           snake.pop();
@@ -125,47 +158,40 @@
         let newHead = { x: snakeX, y: snakeY };
 
         if (
-          snakeX < box ||
-          snakeX > 17 * box ||
-          snakeY < 3 * box ||
-          snakeY > 17 * box ||
+          snakeX < 0 ||
+          snakeX >= cvs.width ||
+          snakeY < 0 ||
+          snakeY >= cvs.height ||
           collision(newHead, snake)
         ) {
           clearInterval(game);
-          dead.play();
-
-          // Delay Game Over message
-          setTimeout(() => {
-            alert("Game Over!");
-            document.getElementById("restartBtn").style.display = "block";
-          }, 500); // Wait 0.5 seconds before showing the message
+          document.getElementById("restartBtn").style.display = "block";
           return;
         }
 
         snake.unshift(newHead);
 
         ctx.fillStyle = "white";
-        ctx.font = "45px Changa one";
-        ctx.fillText(score, 2 * box, 1.6 * box);
+        ctx.font = "20px Arial";
+        ctx.fillText("Score: " + score, 10, 20);
       }
 
       function restartGame() {
         snake = [{ x: 9 * box, y: 10 * box }];
         food = {
-          x: Math.floor(Math.random() * 17 + 1) * box,
-          y: Math.floor(Math.random() * 15 + 3) * box,
+          x: Math.floor(Math.random() * 19 + 1) * box,
+          y: Math.floor(Math.random() * 19 + 1) * box,
         };
         score = 0;
         d = "";
         document.getElementById("restartBtn").style.display = "none";
-        game = setInterval(draw, 150); // Reduced speed (increased interval time to 150ms)
+        game = setInterval(draw, 150);
       }
 
       document
         .getElementById("restartBtn")
         .addEventListener("click", restartGame);
-
-      game = setInterval(draw, 150); // Start the game with reduced speed
+      game = setInterval(draw, 150);
     </script>
   </body>
 </html>
-- 
2.39.5