先看效果图:
游戏结束图:
javascript实现源码:
<!doctype html>
<html><head><title>俄罗斯方块</title>
<meta name="Description" content="俄罗斯方块Javascript实现">
<meta name="Keywords" content="俄罗斯方块,Javascript,实现,短小精悍,游戏,ithomer,ithomer.net">
</head><body>
<div id="box" style="margin: 20px auto; text-align:center; width:252px;font:25px/25px 宋体;background:#000;color:#9f9;border:#999 20px ridge;text-shadow:2px 3px 1px #0f0;"></div>
<div id="footer" style="margin-top: 200px auto; text-align:center; font-size: 16px;">© 2009 - 2014 All Rights by <a href="http://blog.ithomer.net">ithomer.net</a></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>
在线演示
原文:http://blog.ithomer.net/2014/05/60-lines-of-code-the-small-javascript-written-in-russia-block-game/
分享到:
相关推荐
史上最短小精悍的javascript编写的俄罗斯方块游戏,仅仅60行代码
这是一个使用JavaScript开发俄罗斯方块游戏,界面中带有游戏运行的实时数据结构的显示,是我给学生教授程序设计课程是所做。
一个完整的Javascript的俄罗斯方块游戏 ,代码精简,只有150行。
javascript+canvas面向对象代码封装好的俄罗斯方块方块游戏代码,休闲娱乐,益智游戏,童年追忆
纯JavaScript代码实现的俄罗斯方块小游戏
用最简短的Javascript代码实现俄罗斯方块游戏。打开文本文档后点击文件->另存为:俄罗斯方块.html ,文件类型选择“所有文件”,打开另存后的文件即可体验简易版俄罗斯方块游戏!!!
JavaScript 网页版俄罗斯方块游戏 闲时可以玩玩解压,也可以研究一下js代码。
这是一款使用html、javascript和css制作的经典俄罗斯方块小游戏。该俄罗斯方块小游戏功能齐全,可以正常旋转方块,消行,快速下落等。
该游戏是俄罗斯方块游戏,通过← 向左移动,→ 向右移动,↑ 旋转↓ 加速下落四个键盘按钮控制的简易小游戏。包含Javascript + JQuery + CSS + HTML技术的纯前端小游戏,也包含水平等级和记录分数的功能,实现了线上...
史上最短小精悍的javascript编写的俄罗斯方块游戏,只用了60行代码,绝对值得学习
这是一款使用html、javascript和css制作的经典俄罗斯方块小游戏。该俄罗斯方块小游戏功能齐全,可以正常旋转方块,消行,快速下落等。
本文实例讲述了JavaScript 俄罗斯方块游戏。分享给大家供大家参考,具体如下: 俄罗斯方块代码说明 /** 名称:Javascript 俄罗斯方块! 作者:Gloot 邮箱:glootz@gmail.com QQ:345268267 网站:...
原生js简易的俄罗斯方块游戏代码,JavaScript的熟练掌握,等综合案例!
俄罗斯方块JavaScript代码,所有的效果都是用JS去实现的,虽然这个游戏不复杂,但用到的JS编程知识点还真不少,为你下一步编写大型的网页游戏作铺垫!
俄罗斯方块。。还有什么可说的。。觉得那个方块很可爱的说。。嗯嗯。
jQuery网页版俄罗斯方块游戏代码.7z
这是一个俄罗斯方块下游戏源码,还算比较完善,和大家分享
javascript实现的俄罗斯方块小游戏 ,代码预览:function rotate() { var tmpBlock = new Array(4); for (var i = 0; i ; i++) { tmpBlock[i] = { x: 0, y: 0 }; } //先算四个点的中心点,则这四个点围绕中心...
js俄罗斯方块小游戏实现,源代码打包,喜欢用javascript实现游戏效果代码的朋友可以参考下。
javascript制作俄罗斯方块游戏,完整的代码,手工书写,一目了然,易于阅读和学习理解,用HbuilderX编辑,文件为HTML。