最代码官方
2014-03-31 11:14:08
证精
史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
在线试玩地址:http://demo.zuidaima.com/html/1759652641295360/index.html
直接上效果图:
通过左右下控制方向,上改变形状。
game over
<!doctype html><html><head></head><body> <div id="box" style="width:252px;font:25px/25px 宋体;background:#000;color:#9f9;border:#999 20px ridge;text-shadow:2px 3px 1px #0f0;"></div> <script> var domain="www.zuidaima.com"; var author="zuidaima"; var map=eval("["+Array(23).join("0x801,")+"0xfff]"); var tatris=[[0x6600],[0x2222,0xf00],[0xc600,0x2640],[0x6c00,0x4620],[0x4460,0x2e0,0x6220,0x740],[0x2260,0xe20,0x6440,0x4700],[0x2620,0x720,0x2320,0x2700]]; var keycom={"38":"rotate(1)","40":"down()","37":"move(2,1)","39":"move(0.5,-1)"}; var dia, pos, bak, run; function start(){ dia=tatris[~~(Math.random()*7)]; bak=pos={fk:[],y:0,x:4,s:~~(Math.random()*4)}; rotate(0); } function over(){ document.onkeydown=null; clearInterval(run); alert("GAME OVER"); } function update(t){ bak={fk:pos.fk.slice(0),y:pos.y,x:pos.x,s:pos.s}; if(t) return; for(var i=0,a2=""; i<22; i++) a2+=map[i].toString(2).slice(1,-1)+"<br/>"; for(var i=0,n; i<4; i++) if(/([^0]+)/.test(bak.fk[i].toString(2).replace(/1/g,"\u25a1"))) a2=a2.substr(0,n=(bak.y+i+1)*15-RegExp.$_.length-4)+RegExp.$1+a2.slice(n+RegExp.$1.length); document.getElementById("box").innerHTML=a2.replace(/1/g,"\u25a0").replace(/0/g,"\u3000"); } function is(){ for(var i=0; i<4; i++) if((pos.fk[i]&map[pos.y+i])!=0) return pos=bak; } function rotate(r){ var f=dia[pos.s=(pos.s+r)%dia.length]; for(var i=0; i<4; i++) pos.fk[i]=(f>>(12-i*4)&15)<<pos.x; update(is()); } function down(){ ++pos.y; if(is()){ for(var i=0; i<4 && pos.y+i<22; i++) if((map[pos.y+i]|=pos.fk[i])==0xfff) map.splice(pos.y+i,1), map.unshift(0x801); if(map[1]!=0x801) return over(); start(); } update(); } function move(t,k){ pos.x+=k; for(var i=0; i<4; i++) pos.fk[i]*=t; update(is()); } document.onkeydown=function(e){ eval(keycom[(e?e:event).keyCode]); }; start(); run=setInterval("down()",400); </script></body></html>
猜你喜欢
请下载代码后再发表评论

- 使用java和javascript判断当前浏览者的操作系统
- 证 javascript简单调色板工具
- js进度条(原创可用于学习)
- {Tonfay}[js动态报表][兼容IE6+/火狐/360/谷歌/等各大浏览器][可手动设置间隔时间读取数据/并且显示在图表上]
- 证 5个小javascript特效实例
- 正则表达式的JS验证
- 证 js canvas无限生成国风水墨画
- js打印,预览的功能.希望采纳.
- 证 JavaScript写的贷款计算器源代码下载
- 证 纯js开发的时钟,带秒钟
- 证 js万年历查询设置工作日前端源代码分享
- 仿淘宝 css,js 等静态资源合并压缩输出的 jsp 脚本 combo.jsp


saikiTEST
2024年12月12日
暂无贡献等级
xmx123 LV5
2024年7月11日
3193992
2024年7月10日
暂无贡献等级
zr20050503 LV2
2024年6月27日
188073301 LV1
2024年6月15日
Daima000 LV4
2024年5月23日
安夏V123
2023年11月16日
暂无贡献等级
时光凉薄 LV2
2023年10月18日
oracleanacarge LV6
2023年7月23日
sdyawd
2023年6月14日
暂无贡献等级