Lesson 10
Expected Results
What your snake.js file should look like:
var drawSnake = function(snakeToDraw) { var drawableSnake = { color: "green", pixels: snakeToDraw }; var drawableObjects = [drawableSnake]; CHUNK.draw(drawableObjects); } var moveSegment = function(segment) { switch(segment.direction) { case "down": return { top: segment.top + 1, left: segment.left }; case "up": return { top: segment.top - 1, left: segment.left }; case "right": return { top: segment.top, left: segment.left + 1 } case "left": return { top: segment.top, left: segment.left - 1 } default: return segment; } } var segmentFurtherForwardThan = function(index, snake) { if (snake[index - 1] === undefined) { return snake[index]; } else { return snake[index - 1]; } } var moveSnake = function(snake) { return snake.map(function(oldSegment, segmentIndex) { var newSegment = moveSegment(oldSegment); newSegment.direction = segmentFurtherForwardThan(segmentIndex, snake).direction; return newSegment; }); } var advanceGame = function() { snake = moveSnake(snake); if (CHUNK.detectCollisionBetween(snake, CHUNK.gameBoundaries())) { CHUNK.endGame(); CHUNK.flashMessage("Whoops! you hit a wall!"); } drawSnake(snake); } var changeDirection = function(direction) { snake[0].direction = direction; } var snake = [{ top: 1, left: 0, direction: "down" }, { top: 0, left: 0, direction: "down" }]; CHUNK.executeNTimesPerSecond(advanceGame, 1); CHUNK.onArrowKey(changeDirection);
How the game should work so far:
Next Step:
Go on to Lesson 11