游戏运行地址: http://www.uptoday.cn/fun/eluosi
获取源代码:在http://www.uptoday.cn/fun/eluosi/页面鼠标右键“查看源代码”
<!
DOCTYPE HTML PUBLIC
"
-//W3C//DTD HTML 4.0 Transitional//EN
"
>
< HTML >< HEAD >
< TITLE > 俄罗斯方块 </ TITLE >
< META http - equiv = Content - Type content = " text/html; charset=gb2312 " >
< META content = " MSHTML 6.00.2900.3059 " name = GENERATOR >
< META content = " 乐不思学 " name = Author >
< META content = "" name = Keywords >
< META content = "" name = Description ></ HEAD >
< style >
td ... {width: 20px;height:20px;}
#box ... {width:510px;1px solid #fff;}
#main ... {float:left;width:340px;}
#left ... {float:right;width:150px;padding:5px;}
#left1 ... {width:150px;border:1px solid #fff;padding:5px;color:#66CC99;}
#left2 ... {width:150px;color:#0066FF;padding:5px;}
#count_score ... {color:yellow;}
#buttonkey ... {margin-left:4px;}
</ style >
< BODY onkeydown = " control() " onkeypress = " addspeed() " rightMargin = 50 leftMargin = 200 topMargin = 8 >
< p >
< SCRIPT language = JavaScript src = " http://www.uptoday.cn/fun/playrecord.js " ></ SCRIPT >
< SCRIPT language = JavaScript >
/**/ /*********************************************************************
作者:乐不思学 gsx123@gmail.com QQ:254539697
主页:http://www.uptoday.cn
日期:2007-10-31 完成
功能:纯JAVASCRIPT代码游戏 - 俄罗斯方块
************************************************************************/
/**/ /* 常量 */
var TDX = 18 ; // 竖行格数
var TDY = 12 ; // 横行格数
var speed = 300 ; // 下降速度
var highspeed = 90 ; // 快速下降速度
var body_back_COLOR = " #000 " ; // 页面背景颜色
var back_COLOR = " #000 " ; // 背景颜色
var next_back_COLOR = "" ; // 预告框背景色
var side_COLOR = " #996600 " ; // 围栏颜色
var msgGameOver = " GAME OVER ! " ;
var msg_start = " 开 始 " ;
var msg_stop = " 暂 停 " ;
var boom_num = 3 ; // 炸弹数
var mod = 0 ; // 难度增加模式
var q; // 时钟
var linesup_speed = 15000 ;
var intlinesup = 1 ;
var timer = " 1 " ;
var level = new Array( 1000 , 2000 , 3000 , 4000 , 5000 ); // 升级分数
document.write( " <style>td {background-color: " + back_COLOR + " ;}body{background-color: " + body_back_COLOR + " ;}</style> " );
// ********************//
/**/ /* 全局变量*/
var now_obj; // 当前物体
var next_obj; // 下一物体
var isStart = false ; // 是否开始了游戏
var isEnd = false ; // 是否游戏结束
var count_line = 0 ; // 消除的行数
var count_score = 0 ; // 记分
var glo_statu = new Array(); // 背景单元格状态 false为空
var obj_member = new Array(); // 物体成员
var d = document.getElementById;
for (i = 0 ;i < 13 ;i ++ )
... {
obj_member[i]=new Array();
}
for (i =- 4 ;i <= TDX;i ++ ) // 初始化背景单元格状态
... { glo_statu[i]=new Array();
for(j=0;j<=TDY;j++)
...{
if(j==0||j==TDY||i==TDX)
glo_statu[i][j]=true;
else ...{glo_statu[i][j]=false;}
}
}
// **********************************************************************************//
/**/ /* 定义对象*/
function obje(color,length,style,type,x0,y0,getxy)
... {
this.color=color; //颜色
this.length=length; //单元格数
this.style=style; //样式
this.type=type; //4形态
var x=new Array(); //每格x坐标
var y=new Array(); //每格y坐标
x[0]=x0; //首格
y[0]=y0;
this.x=x;
this.y=y;
this.getxy=getxy; //另三格坐标相对首格的偏移量
this.build=buildfunction; //计算另三格坐标
}
function buildfunction() // 由偏移量构造另三格坐标
... {
with(this)
...{
x[1]=x[0]+getxy[0];
y[1]=y[0]+getxy[1];
x[2]=x[0]+getxy[2];
y[2]=y[0]+getxy[3];
x[3]=x[0]+getxy[4];
y[3]=y[0]+getxy[5];
}
}
var objNum = 0 ;
//
// [1][2] [2][0][3] [3]
// [0] [1] [0] [1]
// [3] [2][1] [3][0][2]
//
var tt = new Array(); var color = " red " ; var len = 4 ; var sty = 0 ; var x0 =- 2 ; var y0 = 5 ;
tt[ 0 ] = new Array( - 1 , - 1 , - 1 , 0 , 1 , 0 );
tt[ 1 ] = new Array( 1 , - 1 , 0 , - 1 , 0 , 1 )
tt[ 2 ] = new Array( 1 , 1 , 1 , 0 , - 1 , 0 );
tt[ 3 ] = new Array( - 1 , 1 , 0 , 1 , 0 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [2][1] [1] [3]
// [0] [2][0][3] [0] [3][0][2]
// [3] [1][2] [1]
//
color = " #CC6666 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 1 , - 1 , 0 , 1 , 0 );
tt[ 1 ] = new Array( - 1 , - 1 , 0 , - 1 , 0 , 1 )
tt[ 2 ] = new Array( 1 , - 1 , 1 , 0 , - 1 , 0 );
tt[ 3 ] = new Array( 1 , 1 , 0 , 1 , 0 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [2] [3] [1]
// [1][0][3] [2][0] [3][0][1] [0][2]
// [1] [2] [3]
//
color = " blue " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 1 , - 1 , 0 , 0 , 1 );
tt[ 1 ] = new Array( 1 , 0 , 0 , - 1 , - 1 , 0 )
tt[ 2 ] = new Array( 0 , 1 , 1 , 0 , 0 , - 1 );
tt[ 3 ] = new Array( - 1 , 0 , 0 , 1 , 1 , 0 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
// [3] [3]
// [0] [0]
// [1][2][0][3] [2] [1][2][0][3] [2]
// [1] [1]
//
color = " green " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 2 , 0 , - 1 , 0 , 1 );
tt[ 1 ] = new Array( 2 , 0 , 1 , 0 , - 1 , 0 );
tt[ 2 ] = new Array( 0 , - 2 , 0 , - 1 , 0 , 1 );
tt[ 3 ] = new Array( 2 , 0 , 1 , 0 , - 1 , 0 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [2][3] [1] [2][3]
// [0][2] [1][0] [0][2] [1][0]
// [3] [3]
//
color = " #660099 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 0 , 1 , 1 , 1 );
tt[ 1 ] = new Array( 0 , - 1 , - 1 , 0 , - 1 , 1 );
tt[ 2 ] = new Array( - 1 , 0 , 0 , 1 , 1 , 1 );
tt[ 3 ] = new Array( 0 , - 1 , - 1 , 0 , - 1 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
//
// [0][1]
// [2][3]
//
color = " yellow " ;sty ++ ;
tt[ 0 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
tt[ 1 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
tt[ 2 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
tt[ 3 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [1] [1][0]
// [2][0] [1][0] [2][0] [2][3]
// [3] [2][3] [3]
//
color = " #999966 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 0 , - 1 , 1 , - 1 );
tt[ 1 ] = new Array( 0 , - 1 , 1 , 0 , 1 , 1 );
tt[ 2 ] = new Array( - 1 , 0 , 0 , - 1 , 1 , - 1 );
tt[ 3 ] = new Array( 0 , - 1 , 1 , 0 , 1 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ; // 7
//
// [2][3]
// [0] [2]
// [1] [3] [0][1]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 1 ] = new Array( 0 , 1 , - 2 , 0 , - 2 , 1 );
tt[ 2 ] = new Array( 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 3 ] = new Array( 0 , 1 , - 2 , 0 , - 2 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [2][3]
// [0] [2]
// [3] [1][0]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 1 ] = new Array( 0 , - 1 , - 2 , 0 , - 2 , 1 );
tt[ 2 ] = new Array( - 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 3 ] = new Array( 0 , - 1 , - 2 , 0 , - 2 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [3] [3] [2] [2]
// [0] [1][0] [0] [0][1]
// [2] [3] [2] [1] [3]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 1 , - 1 , 1 , 1 );
tt[ 1 ] = new Array( 0 , - 1 , 1 , 1 , - 1 , 1 );
tt[ 2 ] = new Array( 1 , 0 , - 1 , - 1 , - 1 , 1 );
tt[ 3 ] = new Array( 0 , 1 , - 1 , - 1 , 1 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1][0][2] [2] [3] [1]
// [0] [3] [3] [0]
// [3] [1] [2][0][1] [2]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 1 , 0 , 1 , 2 , 0 );
tt[ 1 ] = new Array( 1 , 0 , - 1 , 0 , 0 , 2 );
tt[ 2 ] = new Array( 0 , - 1 , 0 , 1 , - 2 , 0 );
tt[ 3 ] = new Array( 1 , 0 , - 1 , 0 , 0 , - 2 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1]
// [2] [0]
// [3]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
tt[ 1 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
tt[ 2 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
tt[ 3 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [0]
//
// [3] [2]
//
color = " #33CCCC " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
tt[ 1 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
tt[ 2 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
tt[ 3 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
var temp1 = Math.floor(Math.random() * ( 7 ));
var temp2 = Math.floor(Math.random() * ( 3 ));
now_obj = obj_member[temp1][temp2]; // 初始化当前物体!!
var boom_added = false ;
function getNextObj() // {{生成下一物体}}
... {
if(count_score>=level[4]) //难度控制
...{ if(mod=="0")...{speed=90;}
else if(mod=="2")
...{
if(timer!="1"&&intlinesup==5)
...{clearInterval(timer);timer=setInterval("linesup()",5000);intlinesup=6;}
}
else thenum=objNum;
document.getElementById("level").innerHTML=6;
if(boom_added)...{boom_added=false;boom_num++;pic="";
for(k=1;k<=boom_num;k++)
pic+=" ※";
document.getElementById("boom").innerHTML=pic;
}
}
else if(count_score>=level[3]&&count_score<level[4]) //难度控制
...{ if(mod=="0")...{speed=110;}
else if(mod=="2")
...{
if(timer!="1"&&intlinesup==4)
...{clearInterval(timer);timer=setInterval("linesup()",6500);intlinesup=5;}
}
else thenum=objNum-1;
document.getElementById("level").innerHTML=5;
if(!boom_added)...{boom_added=true;boom_num++;pic="";
for(k=1;k<=boom_num;k++)
pic+=" ※";
document.getElementById("boom").innerHTML=pic;
}
}
else if(count_score>=level[2]&&count_score<level[3])
...{ if(mod=="0")...{speed=150;}
else if(mod=="2")
...{if(timer!="1"&&intlinesup==3)...{clearInterval(timer);timer=setInterval("linesup()",9000);intlinesup=4;}}
else thenum=(objNum-2);
document.getElementById("level").innerHTML=4;}
else if(count_score>=level[1]&&count_score<level[2])
...{ if(mod=="0")...{speed=180;}
else if(mod=="2")
...{if(timer!="1"&&intlinesup==2)...{clearInterval(timer);timer=setInterval("linesup()",12000);intlinesup=3;}}
else thenum=(objNum-3);
document.getElementById("level").innerHTML=3;}
else if(count_score>=level[0]&&count_score<level[1])
...{ if(mod=="0")...{speed=220;}
else if(mod=="2")
...{if(timer=="1")...{timer=setInterval("linesup()",15000);intlinesup=2;}}
else thenum=(objNum-4);
document.getElementById("level").innerHTML=2;}
else
...{
thenum=7;}
var temp1=Math.floor(Math.random()*(thenum));
var temp2=Math.floor(Math.random()*(3));
next_obj=obj_member[temp1][temp2];
}
getNextObj(); // 初始化下一物体!!
// **********************************************************************************//
/**/ /* 函数 /
/*-------------------------*/
function control() // 键盘控制
... {
var key=event.keyCode;
switch(key)
...{
case 37:moveleft(now_obj); break; // ←
case 39:moveright(now_obj); break; // →
case 40: // ↓
// if(!isStart)
// autodown(now_obj);
//else
// {
stop();
q=setInterval("movedown(now_obj)",highspeed);
// }
break;
case 38:turn(now_obj); break; // ↑
case 32:boom(); break; // ↑
}
}
function addspeed() // 加速
... {
if(event.keyCode==40&&isStart)
...{
speed=highspeed;
}
}
function highspeed() //
... {
if(!q)...{autodown();}
else...{
stop();
q=setInterval("movedown(now_obj)",highspeed);
}
}
function show(obj) // 显示物体
... {
for(i=0;i<obj.length;i++)
...{if(obj.x[i]>=0)
...{
document.getElementById("d_"+obj.x[i]+"_"+obj.y[i]).style.background=obj.color;
}
glo_statu[obj.x[i]][obj.y[i]]=true;
}
}
function hid(obj) // 消失物体
... {
for(i=0;i<obj.length;i++)
...{
if(obj.x[i]>=0)
...{
document.getElementById("d_"+obj.x[i]+"_"+obj.y[i]).style.background=back_COLOR;
}
glo_statu[obj.x[i]][obj.y[i]]=false;
}
}
function array_walk(arr,flag) // 处理数组中每一项
... {
for(i=0;i<arr.length;i++)
...{
switch(flag)
...{
case "+":arr[i]++; break;
case "-":arr[i]--; break;
case "false": glo_statu[arr.x[i]][arr.y[i]]=false;break;
case "true" : glo_statu[arr.x[i]][arr.y[i]]=true; break;
}
}
}
function canmove(obj,to) // 能否继续移动 ??
... {
var can=true;
array_walk(obj,"false");
switch(to)
...{
case "down": array_walk(obj.x,"+");break;
case "left": array_walk(obj.y,"-");break;
case "right":array_walk(obj.y,"+");break;
}
for(i=0;i<obj.x.length;i++)
...{
if(glo_statu[obj.x[i]][obj.y[i]]==true)
...{
can=false;
break;
}
}
switch(to)
...{
case "down": array_walk(obj.x,"-");break;
case "left": array_walk(obj.y,"+");break;
case "right":array_walk(obj.y,"-");break;
}
array_walk(obj,"true");
return can;
}
function autodown() // 开始自动下移 start
... {
if(!isEnd)
...{
q=setInterval("movedown(now_obj)",speed);
if(!isStart)isStart=true;
}
document.getElementById("butt").value=msg_stop;
}
function stop() ... {clearInterval(q);} // 停止 stop
function movedown(obj) // 下移 ↓↓
... {
if(canmove(obj,"down"))
...{
hid(obj);
for(i=0;i<obj.length;i++)
...{
obj.x[i]++;
}
show(obj);
}
else //触底
...{
stop();
check_clearline(obj);
for(y=0;y<obj.length;y++) //判断游戏结束
...{
if(obj.x[y]<2)...{isEnd=true;}
else...{isEnd=false;}
}
if(isEnd)
...{
window.alert(msgGameOver);
document.getElementById("butt").value="重来";
}
else...{
now_obj=next_obj;
now_obj.x[0]=x0;now_obj.y[0]=y0;now_obj.build();
fornext(next_obj,"hidden");
getNextObj();
fornext(next_obj,"show");
//show(now_obj);
//window.alert(now_obj.x);
autodown();
}
}
}
function check_clearline(obj) // 是否有满行,清除行
... {
var clearnum=0;
var c=0;
var max=obj.x[0];var min=obj.x[0];
for(i=1;i<obj.length;i++)
...{
if(obj.x[i]>max)max=obj.x[i];
else if(obj.x[i]<min)min=obj.x[i];
}
for(i=max;i>=min;i--)
...{
var isfull=true;
for(j=1;j<TDY;j++)
...{
if(glo_statu[i][j]==false)isfull=false;
}
if(isfull)
...{
clearline(i);
clearnum++;
lines_down(i);
i=max+1;
//if(mod=="2")linesup();
}
}
count_score=parseInt(document.getElementById("count_score").innerHTML);
switch(clearnum) //加分
...{
case 0: break;
case 1: count_score+=100;break;
case 2: count_score+=300;break;
case 3: count_score+=500;break;
case 4: count_score+=800;break;
}
document.getElementById("count_score").innerHTML=count_score;
}
function clearline(i) // 清除行
... {
for(j=1;j<TDY;j++)
...{
document.getElementById("d_"+i+"_"+j).style.background=back_COLOR;
glo_statu[i][j]=false;
//document.getElementById("d_"+i+"_"+j).innerHTML=glo_statu[i][j];
}
line=parseInt(document.getElementById("count_line").innerHTML);
line+=1;
document.getElementById("count_line").innerHTML=line;
}
function lines_down(lineKilled) // 清除行后下移其上方块
... {
for(i=lineKilled-1;i>0;i--)
...{
for(j=1;j<TDY;j++)
...{
if(glo_statu[i][j])
...{
temp=i;
var tempcolor=document.getElementById("d_"+i+"_"+j).style.background;
document.getElementById("d_"+i+"_"+j).style.background=back_COLOR;
glo_statu[temp][j]=false;
temp++;
glo_statu[temp][j]=true;
document.getElementById("d_"+temp+"_"+j).style.background=tempcolor;
}
}
}
}
function moveleft(obj) // 左移 ← ←
... {
if(canmove(obj,"left"))
//if(true)
...{
hid(obj);
for(i=0;i<obj.length;i++)
...{
obj.y[i]--;
}
show(obj);
}
}
function moveright(obj) // 右移 → →
... {
if(canmove(obj,"right"))
// if(true)
...{
hid(obj);
for(i=0;i<obj.length;i++)
...{
obj.y[i]++;
}
show(obj);
}
}
function canturn(obj) //
{
var can=true;
< HTML >< HEAD >
< TITLE > 俄罗斯方块 </ TITLE >
< META http - equiv = Content - Type content = " text/html; charset=gb2312 " >
< META content = " MSHTML 6.00.2900.3059 " name = GENERATOR >
< META content = " 乐不思学 " name = Author >
< META content = "" name = Keywords >
< META content = "" name = Description ></ HEAD >
< style >
td ... {width: 20px;height:20px;}
#box ... {width:510px;1px solid #fff;}
#main ... {float:left;width:340px;}
#left ... {float:right;width:150px;padding:5px;}
#left1 ... {width:150px;border:1px solid #fff;padding:5px;color:#66CC99;}
#left2 ... {width:150px;color:#0066FF;padding:5px;}
#count_score ... {color:yellow;}
#buttonkey ... {margin-left:4px;}
</ style >
< BODY onkeydown = " control() " onkeypress = " addspeed() " rightMargin = 50 leftMargin = 200 topMargin = 8 >
< p >
< SCRIPT language = JavaScript src = " http://www.uptoday.cn/fun/playrecord.js " ></ SCRIPT >
< SCRIPT language = JavaScript >
/**/ /*********************************************************************
作者:乐不思学 gsx123@gmail.com QQ:254539697
主页:http://www.uptoday.cn
日期:2007-10-31 完成
功能:纯JAVASCRIPT代码游戏 - 俄罗斯方块
************************************************************************/
/**/ /* 常量 */
var TDX = 18 ; // 竖行格数
var TDY = 12 ; // 横行格数
var speed = 300 ; // 下降速度
var highspeed = 90 ; // 快速下降速度
var body_back_COLOR = " #000 " ; // 页面背景颜色
var back_COLOR = " #000 " ; // 背景颜色
var next_back_COLOR = "" ; // 预告框背景色
var side_COLOR = " #996600 " ; // 围栏颜色
var msgGameOver = " GAME OVER ! " ;
var msg_start = " 开 始 " ;
var msg_stop = " 暂 停 " ;
var boom_num = 3 ; // 炸弹数
var mod = 0 ; // 难度增加模式
var q; // 时钟
var linesup_speed = 15000 ;
var intlinesup = 1 ;
var timer = " 1 " ;
var level = new Array( 1000 , 2000 , 3000 , 4000 , 5000 ); // 升级分数
document.write( " <style>td {background-color: " + back_COLOR + " ;}body{background-color: " + body_back_COLOR + " ;}</style> " );
// ********************//
/**/ /* 全局变量*/
var now_obj; // 当前物体
var next_obj; // 下一物体
var isStart = false ; // 是否开始了游戏
var isEnd = false ; // 是否游戏结束
var count_line = 0 ; // 消除的行数
var count_score = 0 ; // 记分
var glo_statu = new Array(); // 背景单元格状态 false为空
var obj_member = new Array(); // 物体成员
var d = document.getElementById;
for (i = 0 ;i < 13 ;i ++ )
... {
obj_member[i]=new Array();
}
for (i =- 4 ;i <= TDX;i ++ ) // 初始化背景单元格状态
... { glo_statu[i]=new Array();
for(j=0;j<=TDY;j++)
...{
if(j==0||j==TDY||i==TDX)
glo_statu[i][j]=true;
else ...{glo_statu[i][j]=false;}
}
}
// **********************************************************************************//
/**/ /* 定义对象*/
function obje(color,length,style,type,x0,y0,getxy)
... {
this.color=color; //颜色
this.length=length; //单元格数
this.style=style; //样式
this.type=type; //4形态
var x=new Array(); //每格x坐标
var y=new Array(); //每格y坐标
x[0]=x0; //首格
y[0]=y0;
this.x=x;
this.y=y;
this.getxy=getxy; //另三格坐标相对首格的偏移量
this.build=buildfunction; //计算另三格坐标
}
function buildfunction() // 由偏移量构造另三格坐标
... {
with(this)
...{
x[1]=x[0]+getxy[0];
y[1]=y[0]+getxy[1];
x[2]=x[0]+getxy[2];
y[2]=y[0]+getxy[3];
x[3]=x[0]+getxy[4];
y[3]=y[0]+getxy[5];
}
}
var objNum = 0 ;
//
// [1][2] [2][0][3] [3]
// [0] [1] [0] [1]
// [3] [2][1] [3][0][2]
//
var tt = new Array(); var color = " red " ; var len = 4 ; var sty = 0 ; var x0 =- 2 ; var y0 = 5 ;
tt[ 0 ] = new Array( - 1 , - 1 , - 1 , 0 , 1 , 0 );
tt[ 1 ] = new Array( 1 , - 1 , 0 , - 1 , 0 , 1 )
tt[ 2 ] = new Array( 1 , 1 , 1 , 0 , - 1 , 0 );
tt[ 3 ] = new Array( - 1 , 1 , 0 , 1 , 0 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [2][1] [1] [3]
// [0] [2][0][3] [0] [3][0][2]
// [3] [1][2] [1]
//
color = " #CC6666 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 1 , - 1 , 0 , 1 , 0 );
tt[ 1 ] = new Array( - 1 , - 1 , 0 , - 1 , 0 , 1 )
tt[ 2 ] = new Array( 1 , - 1 , 1 , 0 , - 1 , 0 );
tt[ 3 ] = new Array( 1 , 1 , 0 , 1 , 0 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [2] [3] [1]
// [1][0][3] [2][0] [3][0][1] [0][2]
// [1] [2] [3]
//
color = " blue " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 1 , - 1 , 0 , 0 , 1 );
tt[ 1 ] = new Array( 1 , 0 , 0 , - 1 , - 1 , 0 )
tt[ 2 ] = new Array( 0 , 1 , 1 , 0 , 0 , - 1 );
tt[ 3 ] = new Array( - 1 , 0 , 0 , 1 , 1 , 0 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
// [3] [3]
// [0] [0]
// [1][2][0][3] [2] [1][2][0][3] [2]
// [1] [1]
//
color = " green " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 2 , 0 , - 1 , 0 , 1 );
tt[ 1 ] = new Array( 2 , 0 , 1 , 0 , - 1 , 0 );
tt[ 2 ] = new Array( 0 , - 2 , 0 , - 1 , 0 , 1 );
tt[ 3 ] = new Array( 2 , 0 , 1 , 0 , - 1 , 0 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [2][3] [1] [2][3]
// [0][2] [1][0] [0][2] [1][0]
// [3] [3]
//
color = " #660099 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 0 , 1 , 1 , 1 );
tt[ 1 ] = new Array( 0 , - 1 , - 1 , 0 , - 1 , 1 );
tt[ 2 ] = new Array( - 1 , 0 , 0 , 1 , 1 , 1 );
tt[ 3 ] = new Array( 0 , - 1 , - 1 , 0 , - 1 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
//
// [0][1]
// [2][3]
//
color = " yellow " ;sty ++ ;
tt[ 0 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
tt[ 1 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
tt[ 2 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
tt[ 3 ] = new Array( 0 , 1 , 1 , 0 , 1 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [1] [1][0]
// [2][0] [1][0] [2][0] [2][3]
// [3] [2][3] [3]
//
color = " #999966 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 0 , - 1 , 1 , - 1 );
tt[ 1 ] = new Array( 0 , - 1 , 1 , 0 , 1 , 1 );
tt[ 2 ] = new Array( - 1 , 0 , 0 , - 1 , 1 , - 1 );
tt[ 3 ] = new Array( 0 , - 1 , 1 , 0 , 1 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ; // 7
//
// [2][3]
// [0] [2]
// [1] [3] [0][1]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 1 ] = new Array( 0 , 1 , - 2 , 0 , - 2 , 1 );
tt[ 2 ] = new Array( 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 3 ] = new Array( 0 , 1 , - 2 , 0 , - 2 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [2][3]
// [0] [2]
// [3] [1][0]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 1 ] = new Array( 0 , - 1 , - 2 , 0 , - 2 , 1 );
tt[ 2 ] = new Array( - 1 , 0 , 0 , 2 , 1 , 2 );
tt[ 3 ] = new Array( 0 , - 1 , - 2 , 0 , - 2 , 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [3] [3] [2] [2]
// [0] [1][0] [0] [0][1]
// [2] [3] [2] [1] [3]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , 0 , 1 , - 1 , 1 , 1 );
tt[ 1 ] = new Array( 0 , - 1 , 1 , 1 , - 1 , 1 );
tt[ 2 ] = new Array( 1 , 0 , - 1 , - 1 , - 1 , 1 );
tt[ 3 ] = new Array( 0 , 1 , - 1 , - 1 , 1 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1][0][2] [2] [3] [1]
// [0] [3] [3] [0]
// [3] [1] [2][0][1] [2]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 1 , 0 , 1 , 2 , 0 );
tt[ 1 ] = new Array( 1 , 0 , - 1 , 0 , 0 , 2 );
tt[ 2 ] = new Array( 0 , - 1 , 0 , 1 , - 2 , 0 );
tt[ 3 ] = new Array( 1 , 0 , - 1 , 0 , 0 , - 2 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1]
// [2] [0]
// [3]
//
color = " #66FF66 " ;sty ++ ;
tt[ 0 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
tt[ 1 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
tt[ 2 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
tt[ 3 ] = new Array( - 1 , - 1 , 0 , - 2 , 1 , - 1 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
//
// [1] [0]
//
// [3] [2]
//
color = " #33CCCC " ;sty ++ ;
tt[ 0 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
tt[ 1 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
tt[ 2 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
tt[ 3 ] = new Array( 0 , - 2 , 2 , 0 , 2 , - 2 );
for (i = 0 ;i < 4 ;i ++ )
... {
obj_member[sty][i]=new obje(color,len,sty,i,x0,y0,tt[i]);
obj_member[sty][i].build();
}
objNum ++ ;
var temp1 = Math.floor(Math.random() * ( 7 ));
var temp2 = Math.floor(Math.random() * ( 3 ));
now_obj = obj_member[temp1][temp2]; // 初始化当前物体!!
var boom_added = false ;
function getNextObj() // {{生成下一物体}}
... {
if(count_score>=level[4]) //难度控制
...{ if(mod=="0")...{speed=90;}
else if(mod=="2")
...{
if(timer!="1"&&intlinesup==5)
...{clearInterval(timer);timer=setInterval("linesup()",5000);intlinesup=6;}
}
else thenum=objNum;
document.getElementById("level").innerHTML=6;
if(boom_added)...{boom_added=false;boom_num++;pic="";
for(k=1;k<=boom_num;k++)
pic+=" ※";
document.getElementById("boom").innerHTML=pic;
}
}
else if(count_score>=level[3]&&count_score<level[4]) //难度控制
...{ if(mod=="0")...{speed=110;}
else if(mod=="2")
...{
if(timer!="1"&&intlinesup==4)
...{clearInterval(timer);timer=setInterval("linesup()",6500);intlinesup=5;}
}
else thenum=objNum-1;
document.getElementById("level").innerHTML=5;
if(!boom_added)...{boom_added=true;boom_num++;pic="";
for(k=1;k<=boom_num;k++)
pic+=" ※";
document.getElementById("boom").innerHTML=pic;
}
}
else if(count_score>=level[2]&&count_score<level[3])
...{ if(mod=="0")...{speed=150;}
else if(mod=="2")
...{if(timer!="1"&&intlinesup==3)...{clearInterval(timer);timer=setInterval("linesup()",9000);intlinesup=4;}}
else thenum=(objNum-2);
document.getElementById("level").innerHTML=4;}
else if(count_score>=level[1]&&count_score<level[2])
...{ if(mod=="0")...{speed=180;}
else if(mod=="2")
...{if(timer!="1"&&intlinesup==2)...{clearInterval(timer);timer=setInterval("linesup()",12000);intlinesup=3;}}
else thenum=(objNum-3);
document.getElementById("level").innerHTML=3;}
else if(count_score>=level[0]&&count_score<level[1])
...{ if(mod=="0")...{speed=220;}
else if(mod=="2")
...{if(timer=="1")...{timer=setInterval("linesup()",15000);intlinesup=2;}}
else thenum=(objNum-4);
document.getElementById("level").innerHTML=2;}
else
...{
thenum=7;}
var temp1=Math.floor(Math.random()*(thenum));
var temp2=Math.floor(Math.random()*(3));
next_obj=obj_member[temp1][temp2];
}
getNextObj(); // 初始化下一物体!!
// **********************************************************************************//
/**/ /* 函数 /
/*-------------------------*/
function control() // 键盘控制
... {
var key=event.keyCode;
switch(key)
...{
case 37:moveleft(now_obj); break; // ←
case 39:moveright(now_obj); break; // →
case 40: // ↓
// if(!isStart)
// autodown(now_obj);
//else
// {
stop();
q=setInterval("movedown(now_obj)",highspeed);
// }
break;
case 38:turn(now_obj); break; // ↑
case 32:boom(); break; // ↑
}
}
function addspeed() // 加速
... {
if(event.keyCode==40&&isStart)
...{
speed=highspeed;
}
}
function highspeed() //
... {
if(!q)...{autodown();}
else...{
stop();
q=setInterval("movedown(now_obj)",highspeed);
}
}
function show(obj) // 显示物体
... {
for(i=0;i<obj.length;i++)
...{if(obj.x[i]>=0)
...{
document.getElementById("d_"+obj.x[i]+"_"+obj.y[i]).style.background=obj.color;
}
glo_statu[obj.x[i]][obj.y[i]]=true;
}
}
function hid(obj) // 消失物体
... {
for(i=0;i<obj.length;i++)
...{
if(obj.x[i]>=0)
...{
document.getElementById("d_"+obj.x[i]+"_"+obj.y[i]).style.background=back_COLOR;
}
glo_statu[obj.x[i]][obj.y[i]]=false;
}
}
function array_walk(arr,flag) // 处理数组中每一项
... {
for(i=0;i<arr.length;i++)
...{
switch(flag)
...{
case "+":arr[i]++; break;
case "-":arr[i]--; break;
case "false": glo_statu[arr.x[i]][arr.y[i]]=false;break;
case "true" : glo_statu[arr.x[i]][arr.y[i]]=true; break;
}
}
}
function canmove(obj,to) // 能否继续移动 ??
... {
var can=true;
array_walk(obj,"false");
switch(to)
...{
case "down": array_walk(obj.x,"+");break;
case "left": array_walk(obj.y,"-");break;
case "right":array_walk(obj.y,"+");break;
}
for(i=0;i<obj.x.length;i++)
...{
if(glo_statu[obj.x[i]][obj.y[i]]==true)
...{
can=false;
break;
}
}
switch(to)
...{
case "down": array_walk(obj.x,"-");break;
case "left": array_walk(obj.y,"+");break;
case "right":array_walk(obj.y,"-");break;
}
array_walk(obj,"true");
return can;
}
function autodown() // 开始自动下移 start
... {
if(!isEnd)
...{
q=setInterval("movedown(now_obj)",speed);
if(!isStart)isStart=true;
}
document.getElementById("butt").value=msg_stop;
}
function stop() ... {clearInterval(q);} // 停止 stop
function movedown(obj) // 下移 ↓↓
... {
if(canmove(obj,"down"))
...{
hid(obj);
for(i=0;i<obj.length;i++)
...{
obj.x[i]++;
}
show(obj);
}
else //触底
...{
stop();
check_clearline(obj);
for(y=0;y<obj.length;y++) //判断游戏结束
...{
if(obj.x[y]<2)...{isEnd=true;}
else...{isEnd=false;}
}
if(isEnd)
...{
window.alert(msgGameOver);
document.getElementById("butt").value="重来";
}
else...{
now_obj=next_obj;
now_obj.x[0]=x0;now_obj.y[0]=y0;now_obj.build();
fornext(next_obj,"hidden");
getNextObj();
fornext(next_obj,"show");
//show(now_obj);
//window.alert(now_obj.x);
autodown();
}
}
}
function check_clearline(obj) // 是否有满行,清除行
... {
var clearnum=0;
var c=0;
var max=obj.x[0];var min=obj.x[0];
for(i=1;i<obj.length;i++)
...{
if(obj.x[i]>max)max=obj.x[i];
else if(obj.x[i]<min)min=obj.x[i];
}
for(i=max;i>=min;i--)
...{
var isfull=true;
for(j=1;j<TDY;j++)
...{
if(glo_statu[i][j]==false)isfull=false;
}
if(isfull)
...{
clearline(i);
clearnum++;
lines_down(i);
i=max+1;
//if(mod=="2")linesup();
}
}
count_score=parseInt(document.getElementById("count_score").innerHTML);
switch(clearnum) //加分
...{
case 0: break;
case 1: count_score+=100;break;
case 2: count_score+=300;break;
case 3: count_score+=500;break;
case 4: count_score+=800;break;
}
document.getElementById("count_score").innerHTML=count_score;
}
function clearline(i) // 清除行
... {
for(j=1;j<TDY;j++)
...{
document.getElementById("d_"+i+"_"+j).style.background=back_COLOR;
glo_statu[i][j]=false;
//document.getElementById("d_"+i+"_"+j).innerHTML=glo_statu[i][j];
}
line=parseInt(document.getElementById("count_line").innerHTML);
line+=1;
document.getElementById("count_line").innerHTML=line;
}
function lines_down(lineKilled) // 清除行后下移其上方块
... {
for(i=lineKilled-1;i>0;i--)
...{
for(j=1;j<TDY;j++)
...{
if(glo_statu[i][j])
...{
temp=i;
var tempcolor=document.getElementById("d_"+i+"_"+j).style.background;
document.getElementById("d_"+i+"_"+j).style.background=back_COLOR;
glo_statu[temp][j]=false;
temp++;
glo_statu[temp][j]=true;
document.getElementById("d_"+temp+"_"+j).style.background=tempcolor;
}
}
}
}
function moveleft(obj) // 左移 ← ←
... {
if(canmove(obj,"left"))
//if(true)
...{
hid(obj);
for(i=0;i<obj.length;i++)
...{
obj.y[i]--;
}
show(obj);
}
}
function moveright(obj) // 右移 → →
... {
if(canmove(obj,"right"))
// if(true)
...{
hid(obj);
for(i=0;i<obj.length;i++)
...{
obj.y[i]++;
}
show(obj);
}
}
function canturn(obj) //
{
var can=true;
array_walk(obj,"false");
ty=obj.type;
typ=obj.type;
typ++;
if(typ==4){typ=0;}
styl=obj.style;
temp_obj=obj_member[styl][typ];
temp_obj.x[0]=obj.x[0];
temp_obj.y[0]=obj.y[0];
temp_obj.build();
ty=obj.type;
typ=obj.type;
typ++;
if(typ==4){typ=0;}
styl=obj.style;
temp_obj=obj_member[styl][typ];
temp_obj.x[0]=obj.x[0];
temp_obj.y[0]=obj.y[0];
temp_obj.build();
for(i=0;i<obj.x.length;i++)
{
if(glo_statu[temp_obj.x[i]][temp_obj.y[i]]==true)
{
can=false;
break;
}
}
temp_obj=obj_member[styl][ty];
temp_obj.x[0]=obj.x[0];
temp_obj.y[0]=obj.y[0];
temp_obj.build();
obj=temp_obj;
array_walk(obj,"true");
return can;
{
if(glo_statu[temp_obj.x[i]][temp_obj.y[i]]==true)
{
can=false;
break;
}
}
temp_obj=obj_member[styl][ty];
temp_obj.x[0]=obj.x[0];
temp_obj.y[0]=obj.y[0];
temp_obj.build();
obj=temp_obj;
array_walk(obj,"true");
return can;
}
function turn(obj) //旋转
{
{
if(canturn(obj))
{
typ=obj.type;
typ++;
if(typ==4){typ=0;}
styl=obj.style;
temp_obj=obj_member[styl][typ];
temp_obj.x[0]=obj.x[0];
temp_obj.y[0]=obj.y[0];
temp_obj.build();
hid(obj);
now_obj=temp_obj;
show(now_obj);
}
}
function
linesup()
//
抬升
now_obj=temp_obj;
show(now_obj);
}
}
... {hid(now_obj);
for(i=2;i<TDX;i++)
...{
for(j=1;j<TDY;j++)
...{
if(glo_statu[i][j])
...{
temp=i;
var tempcolor=document.getElementById("d_"+i+"_"+j).style.background;
document.getElementById("d_"+i+"_"+j).style.background=back_COLOR;
glo_statu[temp][j]=false;
temp--;
glo_statu[temp][j]=true;
// window.alert("d_"+temp+"_"+j);
document.getElementById("d_"+temp+"_"+j).style.background=tempcolor;
}
}
}
for(j=1;j<TDY;j++)
...{
randtemp=Math.floor(Math.random()*(2)); //window.alert(randtemp);
if(randtemp==1)...{glo_statu[TDX-1][j]=true;document.getElementById("d_"+(TDX-1)+"_"+j).style.background="#CC00CC";}
else ...{glo_statu[TDX-1][j]=false;document.getElementById("d_"+(TDX-1)+"_"+j).style.background=back_COLOR;}
}
show(now_obj);
}
// **********************************************************************************//
document.write( " <div id=box align=center><div id=main><table> " )
var css;
for (i = 0 ;i <= TDX;i ++ )
... {
document.write("<tr>")
for(j=0;j<=TDY;j++)
...{
if(j==0||j==TDY||i==TDX)...{css=side_COLOR;} else...{css=back_COLOR;}//围栏颜色
document.write("<td id=d_"+i+"_"+j+" style="background:"+css+""></td>")
}
document.write("</tr>")
}
document.write( " </table></div> " );
document.write( " <div id=left><div id=left1><table> " );
for (i = 0 ;i < 5 ;i ++ )
... {
document.write("<tr>")
for(j=0;j<5;j++)
...{
document.write("<td id=n_"+i+"_"+j+" style="background:"+next_back_COLOR+""></td>")
}
document.write("</tr>")
}
document.write( " </table> " );
function fornext(obj,color) // 显示/隐藏下一物体
... {
if(color=="hidden")...{color=next_back_COLOR;}
else if(color=="show")...{color=obj.color;}
var px=new Array();
var py=new Array();
px[0]=2;py[0]=2;
px[1]=px[0]+obj.getxy[0];
py[1]=py[0]+obj.getxy[1];
px[2]=px[0]+obj.getxy[2];
py[2]=py[0]+obj.getxy[3];
px[3]=px[0]+obj.getxy[4];
py[3]=py[0]+obj.getxy[5];
for(i=0;i<px.length;i++)
document.getElementById("n_"+px[i]+"_"+py[i]).style.background=color;
}
fornext(next_obj, " show " );
function button(t) // 按钮
... {
if(t==msg_start)...{
autodown(now_obj);
document.getElementById("butt").value=msg_stop;
mod=document.getElementById("mod").value;
}
else if(t==msg_stop)...{
stop();
document.getElementById("butt").value=msg_start;
}
else
document.location.reload();
document.body.focus();
}
pic = "" ;
for (k = 1 ;k <= boom_num;k ++ )
pic += " ※ "
</ SCRIPT >
< BR >
炸弹: < span id = " boom " >< SCRIPT LANGUAGE = " JavaScript " > document.write(pic); </ SCRIPT ></ span >
< BR >
行数: < span id = " count_line " > 0 </ span >< BR >
得分: < span id = " count_score " > 0 </ span >< BR >
等级: < span id = " level " > 1 </ span >
</ div >
< div id = " left2 " >
< div id = " buttonkey " >
升级后:
< SELECT NAME = "" id = " mod " onchange = " mod=this.value;document.body.focus(); " >
< OPTION VALUE = " 0 " SELECTED > 加 速 </ OPTION >
< OPTION VALUE = " 1 " > 加方块 </ OPTION >
< OPTION VALUE = " 2 " > 抬 升 </ OPTION >
</ SELECT >
< br >
< SCRIPT LANGUAGE = " JavaScript " >
document.write( " <INPUT TYPE="button" value=" " + msg_start + " " id="butt" οnclick="button(this.value)"> " );
</ SCRIPT >
< BR >
</ div >< BR >< BR >< BR >
键盘 < BR >
← ↓ → 移动 < BR >
↑ 旋转 < BR >
空格 使用炸弹
</ div >
</ div >
</ div >
</ P ></ BODY ></ HTML >
< SCRIPT LANGUAGE = " JavaScript " >
function boom() // 炸弹
... {
if(boom_num>0)
...{
boom_num--;
max=now_obj.x[0];
for(i=1;i<now_obj.length;i++)
...{
if(now_obj.x[i]>max)max=now_obj.x[i];
}
t=max+1;
n=now_obj.y[0];
while(glo_statu[t][n]==false)t++;
for(i=n-3;i<=n+3;i++)
...{
for(j=t-3;j<=t+3;j++)
...{
if(i>0&&i<TDY&&j>0&&j<TDX)
...{
glo_statu[j][i]=false;
document.getElementById("d_"+j+"_"+i).style.background=back_COLOR;
}
}
}
pic="";
for(k=1;k<=boom_num;k++)
pic+=" ※"
document.getElementById("boom").innerHTML=pic;
//autodown();
}
}
</ SCRIPT >