转自https://bbs.csdn.net/topics/390793064?page=1
1 <!doctype html><html><head></head><body> 2 <div id="box" style="width:256px;font:25px/25px 宋体;background:#000;color:#9f9;"></div><script> 3 var arr=[15]; 4 var next=10;//最好判断一下arr[1]!=arr[0]+x 5 document.onkeydown=function(e){next={'37':-1,'39':1,'38':-10,'40':10}[(e?e:event).keyCode]}; 6 var run=setInterval(function(){ 7 var list=['-1&&arr[0]%10==0','1&&arr[0]%10==9','-10&&arr[0]<10','10&&arr[0]>189']; 8 var temp=arr[0]+next; 9 if(list.some(function(x){return eval('next=='+x)})||arr.indexOf(temp)>=0) 10 return clearInterval(run)||alert('OVER'); 11 arr.unshift(temp); 12 if(this.food==null||food==temp){ 13 list=[];//(list=Array(200)).forEach(function(val,i){list[i]=i}); 14 for(var i=0;i<200;i++) 15 list.push(i); 16 list=list.filter(function(x){return arr.indexOf(x)<0}); 17 food=list[Math.round(Math.random()*(list.length-1))];//food是全局变量 18 } 19 else 20 arr.pop(); 21 var s=''; 22 for(var j=0;j<200;j++){//这个循环还可以缩短 23 if(j%10==0&&j!=0) 24 s+='<br/>'; 25 if(arr.indexOf(j)>=0) 26 s+='\u25a0'; 27 else if(j==food) 28 s+='\u2605'; 29 else 30 s+=' '; 31 } 32 document.getElementById("box").innerHTML=s; 33 },200); 34 </script></body></html>