Develope Snake game using Html Code

How to develope a snake game using Html Code

 So, Hello Guys Once Again Welcome To My blog

I think You all are excited to develope the snake game using html code



so Here are the code


<html>

<head>

  <title>Suryanshsk snake game</title>

<fontcolor="white">

<h1><center>Snake game By Suryanshsk</center></h1>

</font>

  <style>

  html, body {

 height: 100%;

    margin: 10;   

  }

  body {

    background: skyblue;

    display:flex;

    align-items:center;

  }

  canvas {

    border: 20px solid white;

  }

  </style>

</head>

<body>

<canvas width="500" height="400" id="game"></canvas>

<script>

var canvas = document.getElementById('game');

var context = canvas.getContext('2d');


var grid = 16;

var count = 1;

  

var snake = {

  x: 160,

  y: 160,

  

  // snake velocity. moves one grid length every frame in either the x or y direction

  dx: grid,

  dy: 0,

  

  // keep track of all grids the snake body occupies

  cells: [],

  

  // length of the snake. grows when eating an apple

  maxCells: 4

};

var apple = {

  x: 320,

  y: 320

};


// get random whole numbers in a specific range

function getRandomInt(min, max) {

  return Math.floor(Math.random() * (max - min)) + min;

}


// game loop

function loop() {

  requestAnimationFrame(loop);


  // slow game loop to 15 fps instead of 60 (150/15 = 10)

  if (++count < 7) {

    return;

  }


  count = 0;

  context.clearRect(0,0,canvas.width,canvas.height);


  // move snake by it's velocity

  snake.x += snake.dx;

  snake.y += snake.dy;


  // wrap snake position horizontally on edge of screen

  if (snake.x < 2) {

    snake.x = canvas.width - grid;

  }

  else if (snake.x >= canvas.width) {

    snake.x = 0;

  }

  

  // wrap snake position vertically on edge of screen

  if (snake.y < 0) {

    snake.y = canvas.height - grid;

  }

  else if (snake.y >= canvas.height) {

    snake.y = 0;

  }


  // keep track of where snake has been. front of the array is always the head

  snake.cells.unshift({x: snake.x, y: snake.y});


  // remove cells as we move away from them

  if (snake.cells.length > snake.maxCells) {

    snake.cells.pop();

  }


  // draw apple

  context.fillStyle = 'Red';

  context.fillRect(apple.x, apple.y, grid-2, grid-1);


  // draw snake one cell at a time

  context.fillStyle = 'blue';

  snake.cells.forEach(function(cell, index) {

    

    // drawing 1 px smaller than the grid creates a grid effect in the snake body so you can see how long it is

    context.fillRect(cell.x, cell.y, grid-1, grid-1);  


    // snake ate apple

    if (cell.x ===apple.x && cell.y === apple.y) {

      snake.maxCells++;


      // canvas is 400x400 which is 25x50 grids 

      apple.x = getRandomInt(0, 6) * grid;

      apple.y = getRandomInt(0, 6) * grid;

    }


    // check collision with all cells after this one (modified bubble sort)

    for (var i = index + 1; i < snake.cells.length; i++) {

      

      // snake occupies same space as a body part. reset game

      if (cell.x === snake.cells[i].x && cell.y === snake.cells[i].y) {

        snake.x = 160;

        snake.y = 160;

        snake.cells = [];

        snake.maxCells = 4;

        snake.dx = grid;

        snake.dy = 0;


        apple.x = getRandomInt(0, 10) * grid;

        apple.y = getRandomInt(0, 10) * grid;

      }

    }

  });

}


// listen to keyboard events to move the snake

document.addEventListener('keydown', function(e) {

  // prevent snake from backtracking on itself by checking that it's 

  // not already moving on the same axis (pressing left while moving

  // left won't do anything, and pressing right while moving left

  // shouldn't let you collide with your own body)

  

  // left arrow key

  if (e.which === 37 && snake.dx === 0) {

    snake.dx = -grid;

    snake.dy = 0;

  }

  // up arrow key

  else if (e.which === 38 && snake.dy === 0) {

    snake.dy = -grid;

    snake.dx = 0;

  }

  // right arrow key

  else if (e.which === 39 && snake.dx === 0) {

    snake.dx = grid;

    snake.dy = 0;

  }

  // down arrow key

  else if (e.which === 40 && snake.dy === 0) {

    snake.dy = grid;

    snake.dx = 0;

  }

});


// start the game

requestAnimationFrame(loop);

</script>

</body>

</html>


Follow me on Instagram




Comments

Popular posts from this blog

Hotel Billing Management Software By Suryanshsk

Write a program that prompts the user to input number of calls and calculate the monthly telephone bills as per the following rule: Minimum Rs. 200 for up to 100 calls. Plus Rs. 0.60 per call for next 50 calls. Plus Rs. 0.50 per call for next 50 calls. Plus Rs. 0.40 per call for any call beyond 200 calls.

Suryanshsk