scrimba
Build a Snake game in JavaScript
Google Challenge
Go Pro!Bootcamp

Bootcamp

Study group

Collaborate with peers in your dedicated #study-group channel.

Code reviews

Submit projects for review using the /review command in your #code-reviews channel

AboutCommentsNotes
Google Challenge
Expand for more info
index.js
run
preview
console
const grid = document.querySelector('.grid')
const startButton = document.getElementById('start')
const score = document.getElementById('score')
let squares = []
let currentSnake = [2,1,0]
let direction = 1

function createGrid() {
//create 100 of these elements with a for loop
for (let i=0; i < 100; i++) {
//create element
const square = document.createElement('div')
//add styling to the element
square.classList.add('square')
//put the element into our grid
grid.appendChild(square)
//push it into a new squares array
squares.push(square)
}
}
createGrid()

currentSnake.forEach(index => squares[index].classList.add('snake'))

function move() {
//remove last element from our currentSnake array
const tail = currentSnake.pop()
//remove styling from last element
squares[tail].classList.remove('snake')
//add square in direction we are heading
currentSnake.unshift(currentSnake[0] + direction)
//add styling so we can see it
squares[currentSnake[0]].classList.add('snake')
}
move()

let timerId = setInterval(move, 1000)


// 39 is right arrow
// 38 is for the up arrow
// 37 is for the left arrow
// 40 is for the down arrow

function control(e) {
if (e.keyCode === 39) {
console.log('right pressed')

} else if (e.keyCode === 38) {
console.log('up pressed')

} else if (e.keyCode === 37) {
console.log('left pressed')

} else if (e.keyCode === 40) {
console.log('down pressed')

}
}
document.addEventListener('keyup', control)
Console
/index.html
-2:55