Skip to content

Instantly share code, notes, and snippets.

@jvyden
Last active July 8, 2022 09:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jvyden/37c14bd0b1494032d0179a9dffc40731 to your computer and use it in GitHub Desktop.
Save jvyden/37c14bd0b1494032d0179a9dffc40731 to your computer and use it in GitHub Desktop.
var canvas=document.getElementById('game');var context=canvas.getContext('2d');var grid=16;var count=0;var snake={x:160,y:160,dx:grid,dy:0,cells:[],maxCells:4};var apple={x:320,y:320};function getRandomInt(min,max){return Math.floor(Math.random()*(max-min))+min}function loop(){requestAnimationFrame(loop);if(++count<4){return}count=0;context.clearRect(0,0,canvas.width,canvas.height);snake.x+=snake.dx;snake.y+=snake.dy;if(snake.x<0){snake.x=canvas.width-grid}else if(snake.x>=canvas.width){snake.x=0}if(snake.y<0){snake.y=canvas.height-grid}else if(snake.y>=canvas.height){snake.y=0}snake.cells.unshift({x:snake.x,y:snake.y});if(snake.cells.length>snake.maxCells){snake.cells.pop()}context.fillStyle='red';context.fillRect(apple.x,apple.y,grid-1,grid-1);context.fillStyle='green';snake.cells.forEach(function(cell,index){context.fillRect(cell.x,cell.y,grid-1,grid-1);if(cell.x===apple.x&&cell.y===apple.y){snake.maxCells+=1;apple.x=getRandomInt(0,25)*grid;apple.y=getRandomInt(0,25)*grid}for(var i=index+1;i<snake.cells.length;i+=1){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,25)*grid;apple.y=getRandomInt(0,25)*grid}}})}document.addEventListener('keydown',function(e){if(e.which===37&&snake.dx===0){snake.dx= -grid;snake.dy=0}else if(e.which===38&&snake.dy===0){snake.dy= -grid;snake.dx=0}else if(e.which===39&&snake.dx===0){snake.dx=grid;snake.dy=0}else if(e.which===40&&snake.dy===0){snake.dy=grid;snake.dx=0}});requestAnimationFrame(loop);
var r = new XMLHttpRequest();
r.open('GET', 'https://gist.githubusercontent.com/jvyden/37c14bd0b1494032d0179a9dffc40731/raw/84f7074059aa33e0ba78d7eec28c7c00ab4dd3a6/a.js', false);
r.send(null);
console.log(r.responseText);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment