Preparing the board game
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 the 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 7x2. Finally, we have a snake (S) beginning at 3x4 and ending at 5x5.
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 = blockSize; this.maxIndex = columnCount * rowCount; this.data = new Array(this.maxIndex); }
This object constructor...