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