 
          
        
        Classic snake game. Use keyboard arrows to turn the snake. If you hit anything (the walls, the tail of the snake) then the game finishes. Eating brown dots makes the snake to grow longer.
c=document.getElementById("c");c.height=300;c.width=300;c=c.getContext("2d");var x=[],v=2,y,l,w="#48E",h=0,q=[];function b(a,d){c.fillStyle=d&&isNaN(d)?d:d?"#FFF":"#0F0";c.fillRect(a[0]*10,a[1]*10,10,10)} u={r:function(){if(q[0][0]==x[0]&&q[0][1]==x[1]){h=1;y()}var a=!h&&q.pop(),d=Math.abs(v)>1?[q[0][0]+2/v,q[0][1]]:[q[0][0],q[0][1]+1/v];if(o(d))e();else{q.unshift(d);b(q[0]);a&&b(a,1);h=0}},c:function(a){switch(a.keyCode){case 38:v=-1;break;case 39:v=2;break;case 40:v=1;break;case 37:v=-2;break}},n:function(){return Math.round(Math.random()*27)+1}};f=function(){for(var a=0;a<30;a++){b([0,a],w);b([29,a],w);b([a,0],w);b([a,29],w)}};e=function(){clearInterval(t);alert("game over!")}; o=function(a){for(var d=q.length;d--;)if(a[0]==q[d][0]&&a[1]==q[d][1])return 1;if(a[0]<1||a[0]>28||a[1]<1||a[1]>28)return 1};y=function(){if(t){for(var a=0;!a;){x=[u.n(),u.n()];o(x)||(a=1)}b(x,"#E84")}};for(l=5;l;)q.push([5+--l,5]);for(l=5;l--;)b(q[l]);t=window.setInterval(u.r,300);document.addEventListener("keyup",u.c,0);f();y();Yz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYyIpO2MuaGVpZ2h0PTMwMDtjLndpZHRoPTMwMDtjPWMuZ2V0Q29udGV4dCgiMmQiKTt2YXIgeD1bXSx2PTIseSxsLHc9IiM0OEUiLGg9MCxxPVtdO2Z1bmN0aW9uIGIoYSxkKXtjLmZpbGxTdHlsZT1kJiZpc05hTihkKT9kOmQ/IiNGRkYiOiIjMEYwIjtjLmZpbGxSZWN0KGFbMF0qMTAsYVsxXSoxMCwxMCwxMCl9IHU9e3I6ZnVuY3Rpb24oKXtpZihxWzBdWzBdPT14WzBdJiZxWzBdWzFdPT14WzFdKXtoPTE7eSgpfXZhciBhPSFoJiZxLnBvcCgpLGQ9TWF0aC5hYnModik+MT9bcVswXVswXSsyL3YscVswXVsxXV06W3FbMF1bMF0scVswXVsxXSsxL3ZdO2lmKG8oZCkpZSgpO2Vsc2V7cS51bnNoaWZ0KGQpO2IocVswXSk7YSYmYihhLDEpO2g9MH19LGM6ZnVuY3Rpb24oYSl7c3dpdGNoKGEua2V5Q29kZSl7Y2FzZSAzODp2PS0xO2JyZWFrO2Nhc2UgMzk6dj0yO2JyZWFrO2Nhc2UgNDA6dj0xO2JyZWFrO2Nhc2UgMzc6dj0tMjticmVha319LG46ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5yb3VuZChNYXRoLnJhbmRvbSgpKjI3KSsxfX07Zj1mdW5jdGlvbigpe2Zvcih2YXIgYT0wO2E8MzA7YSsrKXtiKFswLGFdLHcpO2IoWzI5LGFdLHcpO2IoW2EsMF0sdyk7YihbYSwyOV0sdyl9fTtlPWZ1bmN0aW9uKCl7Y2xlYXJJbnRlcnZhbCh0KTthbGVydCgiZ2FtZSBvdmVyISIpfTsgbz1mdW5jdGlvbihhKXtmb3IodmFyIGQ9cS5sZW5ndGg7ZC0tOylpZihhWzBdPT1xW2RdWzBdJiZhWzFdPT1xW2RdWzFdKXJldHVybiAxO2lmKGFbMF08MXx8YVswXT4yOHx8YVsxXTwxfHxhWzFdPjI4KXJldHVybiAxfTt5PWZ1bmN0aW9uKCl7aWYodCl7Zm9yKHZhciBhPTA7IWE7KXt4PVt1Lm4oKSx1Lm4oKV07byh4KXx8KGE9MSl9Yih4LCIjRTg0Iil9fTtmb3IobD01O2w7KXEucHVzaChbNSstLWwsNV0pO2ZvcihsPTU7bC0tOyliKHFbbF0pO3Q9d2luZG93LnNldEludGVydmFsKHUuciwzMDApO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIix1LmMsMCk7ZigpO3koKTs=Original source not submitted