Even if our game has a 3D representation, we will implement 2D gameplay like the original snake game. Our game items are born, will live, and die in a 2D area. Like chess, this board will be composed of rows and columns. But in our snake game, each square can be:
- An apple
- A snake
- A wall
- Empty
Here is an example of a board representation from the point of view of the engine:
This is a small 10x8 board; even if size does not matter, you will be able to define a bigger one. Your game, your rules! We have walls (W) surrounding the game area. An apple (A) is spawned at (7; 2). Finally, we have a snake (S) beginning at (3; 4) and ending at (5; 5).
It is time to create our board class. Please create a JS file called board.js:
function Board(columnCount, rowCount, blockSize) { this.columnCount = columnCount; this.rowCount = rowCount; this.blockSize...