📄 javascript版的俄罗斯方块.htm
字号:
<html>
<head>
<title>javascript版的俄罗斯方块</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<body bgcolor="#FFFFFF"><table width=680 align=center border=0 cellpadding=0 cellspacing=0>
<tr>
<td align=center>
<br><H1>javascript版的俄罗斯方块</H1>
</td>
</tr></table>
<table width=680 align=center border=0 cellpadding=10 cellspacing=0><tr>
<td class=mid>
程序范例:http://myinfo95.class.netbig.com/box.htm
<br>
本程序是我在2000年5月时写的。看到这里有别人写的俄罗斯方块,也贴上拉凑俦热闹。
<br>
<html>
<br>
<head>
<br>
<title>俄罗斯方块(lint)</title>
<br>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<br>
<style type="text/css">
<br>
<!--
<br>
td { font-family: "宋体"; font-size: 11pt}
<br>
body { font-family: "宋体"; font-size: 11pt}
<br>
select { font-family: "宋体"; font-size:11pt}
<br>
A {text-decoration: none; color: #ffffff; font-family: "宋体"; font-size: 11pt}
<br>
A:hover {text-decoration: underline; color: #FF0000; font-family: "宋体"; font-size: 11pt}
<br>
-->
<br>
</style>
<br>
<br>
<Script language="javascript">
<br>
var M=20,N=15,S=7;
<br>
var box1,box2,box0,new_box1,new_box2;
<br>
var arraybox,assorted_box;
<br>
var i,j,m,n;
<br>
var box_x=0,box_y=5,box,new_box;
<br>
var current_type=0,current_order=0,new_current_type=0,new_current_order=0;
<br>
//var down=0,left=0,right=0,bottom=0,change=0;
<br>
var go=0,change=0,bottom=0;
<br>
var high_score=0,score=0;
<br>
var box_num;
<br>
var speed=0,arrayspeed;
<br>
var game_class=0,begin=0,stop=0;
<br>
var line=0,begin=0;
<br>
var progress=0,progress_str="";
<br>
//存贮每一个变形BOX的可变形数目
<br>
box_num=new Array(4,4,2,2,4,2,2);
<br>
arrayspeed=new Array(500,450,400,350,300,200,150,100,50);
<br>
//存贮当前的BOX[x/y][位置]
<br>
box=new Array(2);
<br>
for(i=0;i<2;i++)
<br>
box[i]=new Array(0,0,0,0);
<br>
<br>
//存贮下一个BOX
<br>
new_box=new Array(2);
<br>
for(i=0;i<2;i++)
<br>
new_box[i]=new Array(0,0,0,0);
<br>
<br>
box1=new Image();
<br>
box2=new Image();
<br>
box0=new Image();
<br>
new_box1=new Image();
<br>
new_box2=new Image();
<br>
box0.src="images/box0.gif";
<br>
box1.src="images/box1.jpg";
<br>
box2.src="images/box2.jpg";
<br>
new_box1.src="images/box1.jpg";
<br>
new_box2.src="images/box3.jpg";
<br>
//存贮目前的BOX显示状态
<br>
arraybox=new Array(M);
<br>
for(i=0;i<M;i++)
<br>
{arraybox[i]=new Array(N);
<br>
for(j=0;j<N;j++)
<br>
arraybox[i][j]=0;
<br>
}
<br>
//assorted_box [类别][x/y][次序][位置]
<br>
assorted_box=new Array(S);
<br>
assorted_box[0]=new Array(2);
<br>
assorted_box[0][0]=new Array(4);
<br>
assorted_box[0][1]=new Array(4);
<br>
assorted_box[0][0][0]=new Array(0,0,0,1);
<br>
assorted_box[0][1][0]=new Array(0,1,2,0);
<br>
assorted_box[0][0][1]=new Array(0,0,1,2);
<br>
assorted_box[0][1][1]=new Array(0,1,1,1);
<br>
assorted_box[0][0][2]=new Array(0,1,1,1);
<br>
assorted_box[0][1][2]=new Array(2,0,1,2);
<br>
assorted_box[0][0][3]=new Array(0,1,2,2);
<br>
assorted_box[0][1][3]=new Array(0,0,0,1);
<br>
<br>
assorted_box[1]=new Array(2);
<br>
assorted_box[1][0]=new Array(4);
<br>
assorted_box[1][1]=new Array(4);
<br>
assorted_box[1][0][0]=new Array(0,1,1,1);
<br>
assorted_box[1][1][0]=new Array(1,0,1,2);
<br>
assorted_box[1][0][1]=new Array(0,1,1,2);
<br>
assorted_box[1][1][1]=new Array(0,0,1,0);
<br>
assorted_box[1][0][2]=new Array(0,0,0,1);
<br>
assorted_box[1][1][2]=new Array(0,1,2,1);
<br>
assorted_box[1][0][3]=new Array(0,1,1,2);
<br>
assorted_box[1][1][3]=new Array(1,0,1,1);
<br>
<br>
assorted_box[2]=new Array(2);
<br>
assorted_box[2][0]=new Array(2);
<br>
assorted_box[2][1]=new Array(2);
<br>
assorted_box[2][0][0]=new Array(0,0,0,0);
<br>
assorted_box[2][0][1]=new Array(0,1,2,3);
<br>
assorted_box[2][1][0]=new Array(0,1,2,3);
<br>
assorted_box[2][1][1]=new Array(0,0,0,0);
<br>
<br>
assorted_box[3]=new Array(2);
<br>
assorted_box[3][0]=new Array(2);
<br>
assorted_box[3][1]=new Array(2);
<br>
assorted_box[3][0][0]=new Array(0,0,1,1);
<br>
assorted_box[3][1][0]=new Array(0,1,0,1);
<br>
assorted_box[3][0][1]=new Array(0,0,1,1);
<br>
assorted_box[3][1][1]=new Array(0,1,0,1);
<br>
<br>
assorted_box[4]=new Array(4);
<br>
assorted_box[4][0]=new Array(4);
<br>
assorted_box[4][1]=new Array(4);
<br>
assorted_box[4][0][0]=new Array(0,0,0,1);
<br>
assorted_box[4][1][0]=new Array(0,1,2,2);
<br>
assorted_box[4][0][1]=new Array(0,1,2,2);
<br>
assorted_box[4][1][1]=new Array(1,1,0,1);
<br>
assorted_box[4][0][2]=new Array(0,1,1,1);
<br>
assorted_box[4][1][2]=new Array(0,0,1,2);
<br>
assorted_box[4][0][3]=new Array(0,0,1,2);
<br>
assorted_box[4][1][3]=new Array(0,1,0,0);
<br>
<br>
assorted_box[5]=new Array(2);
<br>
assorted_box[5][0]=new Array(2);
<br>
assorted_box[5][1]=new Array(2);
<br>
assorted_box[5][0][0]=new Array(0,1,1,2);
<br>
assorted_box[5][0][1]=new Array(0,0,1,1);
<br>
assorted_box[5][1][0]=new Array(0,0,1,1);
<br>
assorted_box[5][1][1]=new Array(1,2,0,1);
<br>
<br>
assorted_box[6]=new Array(2);
<br>
assorted_box[6][0]=new Array(2);
<br>
assorted_box[6][1]=new Array(2);
<br>
assorted_box[6][0][0]=new Array(0,1,1,2);
<br>
assorted_box[6][0][1]=new Array(1,0,1,0);
<br>
assorted_box[6][1][0]=new Array(0,0,1,1);
<br>
assorted_box[6][1][1]=new Array(0,1,1,2);
<br>
<br>
function clear_line(fill)
<br>
{
<br>
var i;
<br>
if(fill==1)
<br>
{
<br>
if(line<=M-1)
<br>
{
<br>
for(i=0;i<N;i++)
<br>
{
<br>
eval("document.box.img"+line+"_"+i+".src=box1.src");
<br>
}
<br>
<br>
line++;
<br>
window.setTimeout("clear_line(1)",10);
<br>
}
<br>
else
<br>
{
<br>
line=M-1;
<br>
window.setTimeout("clear_line(0)",10);
<br>
}
<br>
}
<br>
else
<br>
{
<br>
if(line>=0)
<br>
{
<br>
for(i=0;i<N;i++)
<br>
eval("document.box.img"+line+"_"+i+".src=box2.src");
<br>
line--;
<br>
window.setTimeout("clear_line(0)",10);
<br>
}
<br>
else
<br>
{
<br>
speed=arrayspeed[document.game_set.game_speed.options[document.game_set.game_speed.selectedIndex].value];
<br>
game_class=document.game_set.game_class.options[document.game_set.game_class.selectedIndex].value;
<br>
set_game_class();
<br>
score=0;
<br>
document.game_set.start_button.disabled=true;
<br>
document.game_set.pause_button.disabled=false;
<br>
document.game_set.restart_button.disabled=true;
<br>
document.game_set.pause_button.value="暂停";
<br>
document.game_set.restart_button.blur();
<br>
document.game_set.restart_button.blur();
<br>
stop=0;
<br>
ready_go(1);
<br>
begin_go();
<br>
//return;
<br>
}
<br>
<br>
}
<br>
}
<br>
<br>
function start_game()
<br>
{
<br>
stop=0;
<br>
speed=arrayspeed[document.game_set.game_speed.options[document.game_set.game_speed.selectedIndex].value];
<br>
game_class=document.game_set.game_class.options[document.game_set.game_class.selectedIndex].value;
<br>
set_game_class();
<br>
ready_go(1);
<br>
document.game_set.start_button.disabled=true;
<br>
document.game_set.pause_button.disabled=false;
<br>
document.game_set.restart_button.disabled=true;
<br>
document.game_set.pause_button.value="暂停";
<br>
}
<br>
function pause_game()
<br>
{
<br>
<br>
speed=arrayspeed[document.game_set.game_speed.options[document.game_set.game_speed.selectedIndex].value];
<br>
//document.game_set.start_button.disabled=false;
<br>
if(stop==0)
<br>
{document.game_set.pause_button.value="继续";
<br>
document.game_set.pause_button.disabled=false;
<br>
document.game_set.restart_button.disabled=false;
<br>
document.game_set.pause_button.blur();
<br>
stop=1;
<br>
}
<br>
else
<br>
{document.game_set.pause_button.value="暂停";
<br>
document.game_set.pause_button.disabled=false;
<br>
document.game_set.restart_button.disabled=true;
<br>
document.game_set.pause_button.blur();
<br>
stop=0;
<br>
set_down();
<br>
}
<br>
}
<br>
<br>
function show_score()
<br>
{
<br>
my_score.innerHTML="分数:"+score;
<br>
}
<br>
function documentkeydown()
<br>
{
<br>
go=bottom=change=0;
<br>
if(event.keyCode==37&&valid_move('left'))
<br>
left_box();
<br>
else if(event.keyCode==39&&valid_move('right')&&(stop==0))
<br>
right_box();
<br>
else if(event.keyCode==40&&valid_move('down')&&(stop==0))
<br>
down_box();
<br>
else if(event.keyCode==13||event.keyCode==32&&(stop==0))
<br>
change_box();
<br>
else if((event.keyCode==80)&&(document.game_set.pause_button.disabled==false))
<br>
pause_game();
<br>
else if(event.keyCode==81)
<br>
parent.window.close();
<br>
else if((event.keyCode==83)&&(document.game_set.start_button.disabled==false))
<br>
start_game();
<br>
else if((event.keyCode==82)&&(document.game_set.restart_button.disabled==false))
<br>
end();
<br>
}
<br>
function update()
<br>
{
<br>
var i,j;
<br>
for(i=0;i<M;i++)
<br>
for(j=0;j<N;j++)
<br>
{
<br>
if(arraybox[i][j]==0)
<br>
eval("document.box.img"+i+"_"+j+".src=box2.src");
<br>
else
<br>
eval("document.box.img"+i+"_"+j+".src=box1.src");
<br>
}
<br>
}
<br>
function list_box(string)
<br>
{
<br>
var str,i,j;
<br>
str=string;
<br>
for(i=0;i<2;i++)
<br>
for(j=0;j<4;j++)
<br>
str+=box[i][j]+" ";
<br>
}
<br>
function show_box(both)
<br>
{
<br>
var i,j;
<br>
//list_box('showbox');
<br>
if(both==1)
<br>
for(i=0;i<4;i++)
<br>
for(j=0;j<4;j++)
<br>
eval("document.new_box.new_img"+i+"_"+j+".src=new_box2.src");
<br>
for(i=0;i<4;i++)
<br>
{
<br>
eval("document.box.img"+(box[0][i]+box_x)+"_"+(box[1][i]+box_y)+".src=box1.src");
<br>
if(both==1)
<br>
eval("document.new_box.new_img"+new_box[0][i]+"_"+new_box[1][i]+".src=new_box1.src");
<br>
}
<br>
}
<br>
function valid_move(direction)
<br>
{
<br>
var i,j;
<br>
if(direction=='down')
<br>
{
<br>
for(i=0;i<4;i++)
<br>
//判断是否到底
<br>
{if((box_x+box[0][i]+1)==M)
<br>
{for (j=0;j<4;j++)
<br>
arraybox[box_x+box[0][j]][box_y+box[1][j]]=1;
<br>
return false;
<br>
}
<br>
if(arraybox[box_x+box[0][i]+1][box_y+box[1][i]]==1)
<br>
{for (j=0;j<4;j++)
<br>
arraybox[box_x+box[0][j]][box_y+box[1][j]]=1;
<br>
return false;
<br>
}
<br>
}
<br>
return true;
<br>
}
<br>
else if(direction=='left')
<br>
{
<br>
for(i=0;i<4;i++)
<br>
{if((box_y+box[1][i]-1)<0)
<br>
return false;
<br>
if(arraybox[box_x+box[0][i]][box_y+box[1][i]-1]==1)
<br>
return false;
<br>
}
<br>
return true;
<br>
<br>
}
<br>
else if(direction=='right')
<br>
{
<br>
for(i=0;i<4;i++)
<br>
{if((box_y+box[1][i]+1)==N)
<br>
return false;
<br>
if(arraybox[box_x+box[0][i]][box_y+box[1][i]+1]==1)
<br>
return false;
<br>
}
<br>
return true;
<br>
}
<br>
<br>
}
<br>
<br>
function begin_go()
<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -