原创整理不易,转载请注明出处:史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
代码下载地址:http://www.zuidaima.com/share/1759652641295360.htm
直接上效果图:
通过左右下控制方向,上改变形状。
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>
相关推荐
史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
史上最短小精悍的javascript编写的俄罗斯方块游戏,只用了60行代码,绝对值得学习
俄罗斯方块js代码,短小精悍,大家互相学习一下
总的来说,通过编写"俄罗斯方块"游戏,我们可以深入理解Java中的类、对象、继承、多态等核心概念,同时也能锻炼到事件处理、图形用户界面设计以及游戏逻辑的实现能力。这是一个很好的实战项目,对于提升Java编程技能...
综上所述,《清洁代码JavaScript》涵盖了从基础的命名约定到高级的设计模式和性能优化等多个方面,旨在提升JavaScript开发者编写高质量代码的能力。通过不断学习和实践这些知识点,开发者可以创建出更健壮、可维护的...
短小精悍,但是不支持IE,FireFox下可用:1) Canvascape 2) MSX Emulator 3) Unreal Soccer 4) Plasma Demo 5) An Arkanoid clone
这本书通过一系列短小精悍的文章,为读者提供了一系列实用的技术和经验分享,旨在帮助初学者和有经验的开发者提升游戏编程技能。提供的PDF文件包含了完整的书籍内容,而源代码文件则让读者能够直接查看和学习书中...
这本书通过一系列短小精悍的文章,展示了游戏设计与编程的精髓,旨在帮助读者掌握核心概念并激发创新思维。结合提供的源代码,读者能够更直观地理解书中所述的技术和方法。 1. **游戏引擎基础**:书中可能涉及了...
在代码设计上,遵循良好的编程实践也很重要,这包括使用有意义的变量名、编写清晰的注释、保持函数短小精悍以及适当的模块化设计。这些都有助于代码的可读性和维护性。 总之,这个C++编写的通讯录源代码提供了学习...
"俄罗斯方块"游戏需要理解图形界面编程,可以使用SDL或SFML库,或者更底层的OpenGL。游戏逻辑涉及事件处理、图形变换和定时器。 "坦克大战"通常涉及到更复杂的图形编程和碰撞检测,可能需要使用游戏开发框架,如 ...
数组是C/C++中最基本的数据结构之一,常用于存储一系列相同类型的数据。下面的代码展示了数组的一些基本操作,包括初始化、遍历、查找最大最小值、求和以及更复杂的处理逻辑。 #### 数组遍历 ```cpp int main1() { ...
JavaScript短小精悍,运行在客户机上,提高了网页的浏览速度和交互能力。 二、JavaScript的基本应用 JavaScript在网页中的使用非常简单,有两种方法: 1. 在网页代码中添加“<script language="JavaScript">”...
JavaScript 代码规范是编程实践中非常重要的一个环节,它旨在提高代码质量、可读性、可维护性和团队协作效率。在JavaScript开发中,遵循一套统一的编码规范能够帮助开发者避免不必要的误解,减少错误,并且使代码更...
在编程领域,Clean Code(整洁代码)是一种编程实践,它强调编写可读性高、可维护性强、易于理解的代码。对于JavaScript这种广泛应用于前端和后端开发的动态语言来说,掌握Clean Code的概念尤为重要。本资料包围绕...
在描述中提到的“短小精悍”的代码,通常意味着这段代码非常简洁,但功能强大。这样的代码通常具有很高的代码复用性和可维护性。人民币小写转大写的功能,其核心在于将数字字符串(如"123456.78")转换为对应的中文...
《贪吃蛇游戏:短小精悍的编程实践》 贪吃蛇游戏,作为一个经典的休闲娱乐项目,不仅深受玩家喜爱,也是许多初学者踏入编程世界的一道门槛。在这个小小的游戏中,蕴含了丰富的计算机科学原理和编程技巧,尤其在使用...
在编程开发中,代码行统计不仅是一个简单的数字游戏,它反映了程序的结构、复杂性和可读性。通过统计代码行,我们可以获取以下几个方面的知识: 1. **项目规模**:总代码行数可以作为评估项目复杂度的一个参考指标...
C语言代码风格是指在编写C语言代码时应遵循的一系列规则和惯例,其目的是为了提升代码的可读性、可维护性、可移植性等关键质量属性。在众多的代码风格中,Linux代码风格和Microsoft代码风格是两个具有代表性的流派。...
在软件开发领域,编写高质量的代码是每一个程序员梦寐以求的能力,这不仅关乎个人的编程水平,也直接影响着软件的稳定性和团队的工作效率。本文将深入探讨在团队中推广高质量C#代码编写的技巧,并对如何避免常见问题...