snake
</div><div data-lake-id="bd337d9f320f08c775f9dff0a24179d9">body { overflow:hidden; text-align:center; background-color:lavender; } </div><div data-lake-id="e22ab0102d27f11560e4c6d3d8897929">div#main { position:relative; overflow:hidden; margin:10px auto; border: 1px solid green; width:400px; height:400px; } </div><div data-lake-id="37dc63d97f9d75f01f8a699aa8310c37">div#main div { position:absolute; font-size:0; background-color:green; width:10px; height:10px; } </div><div data-lake-id="66d7c2fb2e56fb36c6cd31a730960555">div#main div#head { background-color:red; } </div><div data-lake-id="230f09406eaf452c60a37c33cb7450b6">div#main div#food { background-color:green; } </div><div data-lake-id="db2b1b9c750cdda6ef8515c743d1169d">
</div><div data-lake-id="a2e41320a1e686930e0272cc939081b2">var w=40, h=40, n=10, m=200; </div><div data-lake-id="7e489952192d42435604656583784e12">var S={},X=[],B=[],L=[],T=[],dirs=[-1,-w,1,w],dir=2,ifood=-5,pause,f,timer,D=document; </div><div data-lake-id="ad63bcceaac333f7e7f6c394b860d39c">function rnd(){return Math.floor(Math.random()*w*h)} </div><div data-lake-id="aa9b995ccbd0d60772b573602855a337">function newd(i){var div=main.appendChild(D.createElement("div"));p(div,i);return div;} </div><div data-lake-id="d23aaeaac6fcf2dccbfcec9c7ae33f67">function p(o,i){o.style.left=L[i]+'px';o.style.top=T[i]+'px';} </div><div data-lake-id="87f4cb8ddae019f35f24d579d8bbd258">function m(o,dir){p(o,i);} </div><div data-lake-id="47e67011e1ff8bfe6fc266bf6c4f02e4">function $(id){ return D.getElementById(id); } </div><div data-lake-id="a7cd85015594a50964e6761d2c09ea3f">function cli(){ clearInterval(tmr); } </div><div data-lake-id="d7e045fc274eef33798cf5d6f6ea0ee2">function sei(m){ tmr=setInterval(Main,m); } </div><div data-lake-id="c9dec725ffc1ca448c33fee18540596f">function Main(){ </div><div data-lake-id="e9df1539ba7754b119527c192c9fe341"> if(pause)return; </div><div data-lake-id="906fa65491fdf4a9d6ceee30d91aa066"> var ox=X[0],x=ox%w,y=(ox-x)/h,eat,die; </div><div data-lake-id="2386a145dd43e2c4f617e899c1a2c9a3"> X[0]+=dirs[dir]; </div><div data-lake-id="334fce37afddd12d3145d53153e3b5ba"> if(x==0&&dir==0||x==w-1&&dir==2||y==0&&dir==1||y==h-1&&dir==3)die='Died'; </div><div data-lake-id="476984ac303868eea190a2d76748c416"> else if(S[X[0]])die='died'; </div><div data-lake-id="59e6e919b25e0419ca5c4b2980a6971c"> if(die){ </div><div data-lake-id="50fd3223220aa9900cc90e8607c14d27"> cli(); </div><div data-lake-id="c167cfc91ead884bf1b3f05d04ab43fe"> alert(die+'/n/ndied'+(B.length-1)+'died'); </div><div data-lake-id="a8f612b0a55c7f7d333fa47b75c5c352"> restart(); </div><div data-lake-id="afc90a29cc0780645bddfcfe63fdc0ec"> return; </div><div data-lake-id="ce840d0bb753bacad629b42a6cdef534"> } </div><div data-lake-id="f6f0cf9f5639c0846d4ae5cfa309f93f"> if(ifood==X[0]){ </div><div data-lake-id="21856a19bed2cce85e4fd629f7feeff4"> eat=true; </div><div data-lake-id="929e6c9b995eb209aa00460356605382"> food.style.visibility='hidden'; </div><div data-lake-id="2aee87aaea121cc120e0c1ffca53dad8"> ifood=-5; </div><div data-lake-id="51c018f1d9a7c9407d1fee31da8be4e7"> B.unshift(newd(ox)); </div><div data-lake-id="ccfd00d5ceacd33a43e62d15d0db0830"> }else if(ifood==-1){ </div><div data-lake-id="8b7f6e0f2afb5b8cc5cdbcb417dcf2af"> while(S[ifood=rnd()]); </div><div data-lake-id="6d464bd1c1fce83e957a0220596853ef"> food.style.visibility='visible'; </div><div data-lake-id="11742b216040c1f498b6c609d334f760"> p(food,ifood); </div><div data-lake-id="0c6cd21f5b599b4f29c495bbab6d96ab"> }else if(ifood<-1){ifood++} </div><div data-lake-id="8dab8a70ac3254d95539f563e67ad632"> p(head,X[0]); </div><div data-lake-id="2076b0ed4abc1376ed69fa258df43d7f"> X.unshift(X[0]); </div><div data-lake-id="21a1eca97a63947a75fd5a432a94dfe5"> X[1]=ox; </div><div data-lake-id="7bc80ca1a17cdb7678603837e1369ede"> S[X[0]]=true; </div><div data-lake-id="09b4f834e6ea8b59fe7c1b686456eca9"> if(!eat){delete S[X.pop()];B.unshift(B.pop());p(B[0],ox);} </div><div data-lake-id="84773be29cd0c14c55f77de28be07cb8">} </div><div data-lake-id="f5c3f72954c757b30c6fd73ffa226a6d">D.onkeydown=function(evt){ </div><div data-lake-id="a6f8360540cc1541f5ff937e6930c50e"> var c=(evt||window.event).keyCode-37; </div><div data-lake-id="1c4d4c7159f964c7a5798ab6a71c234f"> if(c==-24)pause=!pause; </div><div data-lake-id="70dfd9fe738251a676858d0beb252ee0"> else if(c>=0&&c<4){ </div><div data-lake-id="bd8270546e0692b40771430752bf61c6"> if(dir==c){if(!f){f=true;cli();sei(m/2)}} </div><div data-lake-id="4e596e9d8669fd0b661e50f3127d01bb"> else if(dir%2!=c%2)dir=c; </div><div data-lake-id="90ddae78fc8c8ef56699449c45d994a2"> } </div><div data-lake-id="af01c33f832be67a5427dd8b603c64c3">} </div><div data-lake-id="ce2f2e65fdeec9360a69150d0e6132e9">D.onkeyup=function(evt){ </div><div data-lake-id="3c0610ef9b3e72ffe92c16a198d89395"> var c=(evt||window.event).keyCode-37; </div><div data-lake-id="07ac97b6f287971bc3bc4aa0cd8cb099"> if(dir==c&&f){f=false;cli();sei(m)} </div><div data-lake-id="a8e2a64e00e9e8c99bc06d7ca706073e">} </div><div data-lake-id="a9b1de9ee9b8a88c5a7df1660eed8b00">for(var i=w*h-1;i>=0;i--){L[i]=i%w*n, T[i]=(i-i%w)*n/h} </div><div data-lake-id="70973f3657dc2b04ed28343f58f30398">var main=$("main"), head=$("head"), food=$("food"); </div><div data-lake-id="1f481db6d4d1735d95b8e174ad0b251b">function restart(){ </div><div data-lake-id="07609cfaafa39d2d7616177c552f875e">S={},X=[],B=[],dir=2,ifood=-5,pause=f=false; </div><div data-lake-id="377e69fd355463ed0406bbacca86096c">while(main.childNodes.length>2)main.removeChild(main.lastChild); </div><div data-lake-id="2cf4782ac87ae5b9595d0dfe39fffbf4">food.style.visibility='hidden'; </div><div data-lake-id="714190e2e73049c4a28de8fccbf44ae0">X[1]=w*h/2; </div><div data-lake-id="73ef8f4cc2723705b5aa459c0f7ef4ea">X[0]=X[1]+1; </div><div data-lake-id="636993f5d8af3fd4c75392fbac8520c9">p(head,X[0]); </div><div data-lake-id="2d02b50aa40ef51de085f7916190e4b2">B[0]=newd(X[1]); </div><div data-lake-id="d77d1417adad7d0794832334b7ae7f00">S[X[0]]=S[X[1]]=true; </div><div data-lake-id="fcc3991107b397fec6326820305038a5">sei(m); </div><div data-lake-id="269c27a389e825d00fbeb39955b5a7f6">} </div><div data-lake-id="b95312cced8f66c6e5efbd796c67f167">restart(); </div><div data-lake-id="4dbeafc7c5d4399e73a35c546d89c173">
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5yMmJzY4EmYwE2NxgjMjlTYmZzM0kTN4MjYwgzNhdDM38CX5d2bs92Yl1iclB3bsVmdlR2LcNWaw9CXt92Yu4GZjlGbh5yYjV3Lc9CX6MHc0RHaiojIsJye.png)