JavaScript Snake Game: Classic Arcade Fun with HTML5 Canvas

15 Oct 2023 Balmiki Mandal 0 JavaScript

Snake Game in JavaScript Step-by-Step

Introduction

The Snake game is a classic arcade game in which the player controls a snake that grows longer as it eats food. The goal of the game is to avoid running into walls or the snake's own body.

Prerequisites

To create a Snake game in JavaScript, you will need the following:

  • A basic understanding of JavaScript
  • A text editor
  • A web browser

Steps

1. Create a new HTML file and add the following code:

HTML
<!DOCTYPE html>
<html>
<head>
  <title>Snake Game</title>
</head>
<body>
  <canvas id="canvas" width="500" height="500"></canvas>
</body>
</html>

This will create a canvas element on the page where you can draw the snake game.

 

2. Create a new JavaScript file and add the following code:

JavaScript
const canvas = document.getElementById('canvas');
const ctx = canvas.getContext('2d');

// Define the snake
let snake = [[10, 10], [9, 10], [8, 10]];

// Define the direction of the snake
let direction = 'right';

// Define the speed of the snake
let speed = 5;

// Define the food
let food = [20, 20];

// Draw the snake
function drawSnake() {
  ctx.fillStyle = 'black';
  for (let i = 0; i < snake.length; i++) {
    ctx.fillRect(snake[i][0], snake[i][1], 10, 10);
  }
}

// Draw the food
function drawFood() {
  ctx.fillStyle = 'red';
  ctx.fillRect(food[0], food[1], 10, 10);
}

// Move the snake
function moveSnake() {
  // Get the head of the snake
  const head = snake[0];

  // Move the head in the specified direction
  switch (direction) {
    case 'right':
      head[0] += speed;
      break;
    case 'left':
      head[0] -= speed;
      break;
    case 'up':
      head[1] -= speed;
      break;
    case 'down':
      head[1] += speed;
      break;
  }

  // Check if the snake has eaten the food
  if (head[0] === food[0] && head[1] === food[1]) {
    // Increase the length of the snake
    snake.push([snake[snake.length - 1][0], snake[snake.length - 1][1]]);

    // Generate a new food location
    food = [Math.floor(Math.random() * canvas.width), Math.floor(Math.random() * canvas.height)];
  }

  // Check if the snake has hit a wall or itself
  if (head[0] < 0 || head[0] >= canvas.width || head[1] < 0 || head[1] >= canvas.height || snake.some((segment) => segment[0] === head[0] && segment[1] === head[1])) {
    // Game over
    alert('Game over!');
  }

  // Update the snake's body
  snake.shift();
}

// Game loop
function gameLoop() {
  // Clear the canvas
  ctx.clearRect(0, 0, canvas.width, canvas.height);

  // Draw the snake
  drawSnake();

  // Draw the food
  drawFood();

  // Move the snake
  moveSnake();

  // Request the next frame
  requestAnimationFrame(gameLoop);
}

// Start the game loop
gameLoop();

This code will create a basic Snake game that you can play with the arrow keys.

Adding Features

You can add more features to your Snake game, such as:

  • Different levels with different difficulty levels
  • Power-ups that give the snake special abilities
  • A multiplayer mode where two players can compete against each other

You can also use CSS to style the game and make it look more appealing.

Conclusion

Creating a Snake game in JavaScript is a fun and challenging project. By following the steps above, you can create a basic game that you can play with your friends and family.

Top Resources Now:


Enroll Now:


[JavaScript 2023-2024: From Scratch to Advanced] "Start Supercharging Your Productivity!"

Contact Us:


  • For any inquiries, please email us at [[email protected]].
  • Follow us on insta  [ electro4u_offical_ ] for updates and tips.

 

Note: If you encounter any issues or specific errors when running this program, please let me know and I'll be happy to help debug them!

BY: Balmiki Mandal

Related Blogs

Post Comments.

Login to Post a Comment

No comments yet, Be the first to comment.