这是我之前网上看到的,很牛逼的一位大神写的,一直膜拜中
<!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 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>
以上所述就是本文的全部内容,希望大家能够喜欢。
本文向大家介绍JS和canvas实现俄罗斯方块,包括了JS和canvas实现俄罗斯方块的使用技巧和注意事项,需要的朋友参考一下 效果图: 代码如下: 以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持呐喊教程!
本文向大家介绍原生js实现俄罗斯方块,包括了原生js实现俄罗斯方块的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了js实现俄罗斯方块的具体代码,供大家参考,具体内容如下 效果如下 html css Demo.js game.js local.js remote.js square.js squareFactory.js 更多有趣的经典小游戏实现专题,分享给大家: C++经典小游戏汇总
本文向大家介绍C语言代码实现俄罗斯方块,包括了C语言代码实现俄罗斯方块的使用技巧和注意事项,需要的朋友参考一下 这里为大家敲写一段怎样用C语言实现俄罗斯方块: 首先推荐大家使用CodeBlocks这个软件,方便添加不同的工程。 代码中有很多注释便于理解! 下面是效果图和全部的代码以及注释,大家可以观看并自己新增内容! 1、首先是main.c文件: 2、然后是mywindows.h文件: 3、接下来
本文向大家介绍C语言实现俄罗斯方块源代码,包括了C语言实现俄罗斯方块源代码的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了C语言实现俄罗斯方块的具体代码,供大家参考,具体内容如下 GitHub:【C语言】实现俄罗斯方块源代码 Head.h Draw.h Init.h game.h main.cpp 配置文件:RockShape.ini 更多关于俄罗斯方块的文章,请点击查看专题:《俄罗
本文向大家介绍C# 实现俄罗斯方块(附源码),包括了C# 实现俄罗斯方块(附源码)的使用技巧和注意事项,需要的朋友参考一下 概述 俄罗斯方块(Tetris)是一款由俄罗斯人阿列克谢·帕基特诺夫发明的休闲游戏,帕基特诺夫爱玩拼图,从拼图游戏里得到灵感,设计出了俄罗斯方块。由于上手简单、老少皆宜,从而家喻户晓,风靡世界。本文简述如何通过C#来实现俄罗斯方块,仅供学习分享使用,如有不足之处,还请指正。
本文向大家介绍Python Pygame实现俄罗斯方块,包括了Python Pygame实现俄罗斯方块的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Python Pygame实现俄罗斯方块的具体代码,供大家参考,具体内容如下 源码: 效果: 更多俄罗斯方块精彩文章请点击专题:俄罗斯方块游戏集合 进行学习。 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程