javascript写贪吃蛇游戏(20行代码!)

<!doctype html>
    <html>

    <body>

    <canvas id="can" width="400" height="400" style="background:Black"></canvas>

    <script>

        var sn=[42,41],dz=43,fx=1,n,ctx=document.getElementById("can").getContext("2d");

        function draw(t,c){

            ctx.fillStyle=c;
            
            ctx.fillRect(t%20*20+1,~~(t/20)*20+1,18,18);
        }

        document.onkeydown=function(e){fx=sn[1]-sn[0]==(n=[-1,-20,1,20][(e||event).keyCode-37]||fx)?fx:n};

        !function(){
            sn.unshift(n=sn[0]+fx);
            
            if(sn.indexOf(n,1)>0 || n<0||n>399||fx==1&&n%20==0||fx==-1&&n%20==19) return alert("GAME OVER");

            draw(n,"red");

            if(n==dz){

                while(sn.indexOf(dz=~~(Math.random()*400))>=0);

                draw(dz,"Yellow");

            }else

                draw(sn.pop(),"black");
            
            setTimeout(arguments.callee,130);

        }();

    </script>

    </body>

    </html>

 

此代码由于太简洁,'聪明' 以至于牺牲了很多可读性

 

 

由于发表的字数不能少于150字,所以下面是字数填充啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊

 

posted @ 2017-03-15 08:30  Khazix  阅读(1761)  评论(9编辑  收藏  举报