⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 javascript版的俄罗斯方块.htm

📁 javascript版的俄罗斯方块javascriptbanelsfk
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<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>
&lt;html&gt;
<br>
&lt;head&gt;
<br>
&lt;title&gt;俄罗斯方块(lint)&lt;/title&gt;
<br>
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=gb2312&quot;&gt;
<br>
&lt;style type=&quot;text/css&quot;&gt;
<br>
&lt;!--
<br>
td {&nbsp;font-family: &quot;宋体&quot;; font-size: 11pt}
<br>
body {&nbsp;font-family: &quot;宋体&quot;; font-size: 11pt}
<br>
select {&nbsp;font-family: &quot;宋体&quot;; font-size:11pt}
<br>
A {text-decoration: none; color: #ffffff; font-family: &quot;宋体&quot;; font-size: 11pt}
<br>
A:hover {text-decoration: underline; color: #FF0000; font-family: &quot;宋体&quot;; font-size: 11pt} 
<br>
--&gt;
<br>
&lt;/style&gt;
<br>

<br>
&lt;Script language=&quot;javascript&quot;&gt;
<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=&quot;&quot;;
<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&lt;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&lt;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=&quot;images/box0.gif&quot;;
<br>
box1.src=&quot;images/box1.jpg&quot;;
<br>
box2.src=&quot;images/box2.jpg&quot;;
<br>
new_box1.src=&quot;images/box1.jpg&quot;;
<br>
new_box2.src=&quot;images/box3.jpg&quot;;
<br>
//存贮目前的BOX显示状态
<br>
arraybox=new Array(M);
<br>
for(i=0;i&lt;M;i++)
<br>
&nbsp;{arraybox[i]=new Array(N);
<br>
&nbsp;&nbsp; for(j=0;j&lt;N;j++)
<br>
&nbsp;&nbsp; arraybox[i][j]=0;
<br>
&nbsp;}
<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>
&nbsp;var i;
<br>
&nbsp;if(fill==1)
<br>
&nbsp;&nbsp;{
<br>
&nbsp;&nbsp;&nbsp;if(line&lt;=M-1)
<br>
&nbsp;&nbsp;&nbsp;&nbsp;{
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;N;i++)
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eval(&quot;document.box.img&quot;+line+&quot;_&quot;+i+&quot;.src=box1.src&quot;);
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line++;&nbsp;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.setTimeout(&quot;clear_line(1)&quot;,10);
<br>
&nbsp;&nbsp;&nbsp;&nbsp;}
<br>
&nbsp;&nbsp;&nbsp; else
<br>
&nbsp;&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; line=M-1;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.setTimeout(&quot;clear_line(0)&quot;,10);
<br>
&nbsp;&nbsp;&nbsp;&nbsp; } 
<br>
&nbsp;&nbsp;}
<br>
&nbsp;else
<br>
&nbsp;&nbsp;{
<br>
&nbsp;&nbsp;&nbsp; if(line&gt;=0)
<br>
&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp; for(i=0;i&lt;N;i++)
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;eval(&quot;document.box.img&quot;+line+&quot;_&quot;+i+&quot;.src=box2.src&quot;);
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;line--;&nbsp;
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;window.setTimeout(&quot;clear_line(0)&quot;,10);
<br>
&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; else
<br>
&nbsp;&nbsp;&nbsp; {
<br>
&nbsp;&nbsp;&nbsp;&nbsp; speed=arrayspeed[document.game_set.game_speed.options[document.game_set.game_speed.selectedIndex].value];
<br>
&nbsp;&nbsp;&nbsp;&nbsp; game_class=document.game_set.game_class.options[document.game_set.game_class.selectedIndex].value;
<br>
&nbsp;&nbsp;&nbsp;&nbsp; set_game_class();
<br>
&nbsp;&nbsp;&nbsp;&nbsp; score=0;
<br>
&nbsp; document.game_set.start_button.disabled=true;
<br>
&nbsp;document.game_set.pause_button.disabled=false;
<br>
&nbsp;document.game_set.restart_button.disabled=true;
<br>
&nbsp;document.game_set.pause_button.value=&quot;暂停&quot;;
<br>
&nbsp; document.game_set.restart_button.blur();
<br>
&nbsp; document.game_set.restart_button.blur();
<br>
&nbsp; stop=0;
<br>
&nbsp; ready_go(1);
<br>
&nbsp; begin_go(); 
<br>
&nbsp;&nbsp;&nbsp;&nbsp; //return;
<br>
&nbsp;&nbsp;&nbsp; }
<br>
&nbsp;&nbsp;&nbsp; 
<br>
&nbsp;&nbsp;} 
<br>
}
<br>

<br>
function start_game()
<br>
{
<br>
&nbsp;stop=0;
<br>
&nbsp;speed=arrayspeed[document.game_set.game_speed.options[document.game_set.game_speed.selectedIndex].value];
<br>
&nbsp;game_class=document.game_set.game_class.options[document.game_set.game_class.selectedIndex].value;
<br>
&nbsp;set_game_class();
<br>
&nbsp;ready_go(1);
<br>
&nbsp;document.game_set.start_button.disabled=true;
<br>
&nbsp;document.game_set.pause_button.disabled=false;
<br>
&nbsp;document.game_set.restart_button.disabled=true;
<br>
&nbsp;document.game_set.pause_button.value=&quot;暂停&quot;;
<br>
}
<br>
function pause_game()
<br>
{
<br>
&nbsp;
<br>
&nbsp;speed=arrayspeed[document.game_set.game_speed.options[document.game_set.game_speed.selectedIndex].value];
<br>
&nbsp;//document.game_set.start_button.disabled=false;
<br>
&nbsp;if(stop==0)
<br>
&nbsp;{document.game_set.pause_button.value=&quot;继续&quot;;
<br>
&nbsp; document.game_set.pause_button.disabled=false;
<br>
&nbsp; document.game_set.restart_button.disabled=false;
<br>
&nbsp; document.game_set.pause_button.blur();
<br>
&nbsp; stop=1;
<br>
&nbsp;}
<br>
&nbsp;else
<br>
&nbsp; {document.game_set.pause_button.value=&quot;暂停&quot;;
<br>
&nbsp; document.game_set.pause_button.disabled=false;
<br>
&nbsp; document.game_set.restart_button.disabled=true;
<br>
&nbsp; document.game_set.pause_button.blur();
<br>
&nbsp; stop=0;
<br>
&nbsp; set_down();
<br>
&nbsp;}
<br>
}
<br>

<br>
function show_score()
<br>
{
<br>
&nbsp;my_score.innerHTML=&quot;分数:&quot;+score;&nbsp;
<br>
}
<br>
function documentkeydown()
<br>
{ 
<br>
&nbsp;go=bottom=change=0;
<br>
&nbsp;if(event.keyCode==37&amp;&amp;valid_move('left'))
<br>
&nbsp;&nbsp;left_box();
<br>
&nbsp;else if(event.keyCode==39&amp;&amp;valid_move('right')&amp;&amp;(stop==0))
<br>
&nbsp;&nbsp; right_box();
<br>
&nbsp;else if(event.keyCode==40&amp;&amp;valid_move('down')&amp;&amp;(stop==0))
<br>
&nbsp;&nbsp; down_box();
<br>
&nbsp;else if(event.keyCode==13||event.keyCode==32&amp;&amp;(stop==0))
<br>
&nbsp;&nbsp; change_box();&nbsp;&nbsp;&nbsp;&nbsp;
<br>
&nbsp;else if((event.keyCode==80)&amp;&amp;(document.game_set.pause_button.disabled==false))
<br>
&nbsp;&nbsp; pause_game();
<br>
&nbsp;else if(event.keyCode==81)
<br>
&nbsp;&nbsp; parent.window.close();
<br>
&nbsp;else if((event.keyCode==83)&amp;&amp;(document.game_set.start_button.disabled==false))
<br>
&nbsp;&nbsp;start_game();
<br>
&nbsp;else if((event.keyCode==82)&amp;&amp;(document.game_set.restart_button.disabled==false))
<br>
&nbsp;&nbsp;end();&nbsp;
<br>
}
<br>
function update()
<br>
{
<br>
&nbsp;var i,j;
<br>
&nbsp;for(i=0;i&lt;M;i++)
<br>
&nbsp;for(j=0;j&lt;N;j++)
<br>
&nbsp;{
<br>
&nbsp;&nbsp;if(arraybox[i][j]==0)
<br>
&nbsp;&nbsp;&nbsp;eval(&quot;document.box.img&quot;+i+&quot;_&quot;+j+&quot;.src=box2.src&quot;);
<br>
&nbsp;&nbsp;else
<br>
&nbsp;&nbsp;&nbsp;eval(&quot;document.box.img&quot;+i+&quot;_&quot;+j+&quot;.src=box1.src&quot;);
<br>
&nbsp;}&nbsp;
<br>
}
<br>
function list_box(string)
<br>
{
<br>
 var str,i,j;
<br>
 str=string;
<br>
 for(i=0;i&lt;2;i++)
<br>
 for(j=0;j&lt;4;j++)
<br>
 str+=box[i][j]+&quot; &quot;;
<br>
 }
<br>
function show_box(both)
<br>
{ 
<br>
&nbsp;var i,j;
<br>
&nbsp;//list_box('showbox');
<br>
&nbsp;if(both==1)
<br>
&nbsp;&nbsp;for(i=0;i&lt;4;i++)
<br>
&nbsp;&nbsp; for(j=0;j&lt;4;j++)
<br>
&nbsp;&nbsp; eval(&quot;document.new_box.new_img&quot;+i+&quot;_&quot;+j+&quot;.src=new_box2.src&quot;);
<br>
&nbsp;for(i=0;i&lt;4;i++)
<br>
&nbsp;{
<br>
 	eval(&quot;document.box.img&quot;+(box[0][i]+box_x)+&quot;_&quot;+(box[1][i]+box_y)+&quot;.src=box1.src&quot;);
<br>
	if(both==1)
<br>
&nbsp;	eval(&quot;document.new_box.new_img&quot;+new_box[0][i]+&quot;_&quot;+new_box[1][i]+&quot;.src=new_box1.src&quot;);
<br>
&nbsp;}
<br>
}
<br>
function valid_move(direction)
<br>
{
<br>
&nbsp;var i,j;
<br>
&nbsp;if(direction=='down')
<br>
&nbsp;{
<br>
&nbsp;&nbsp;for(i=0;i&lt;4;i++)
<br>
&nbsp;&nbsp;//判断是否到底
<br>
&nbsp;&nbsp;{if((box_x+box[0][i]+1)==M)
<br>
&nbsp;&nbsp;&nbsp;{for (j=0;j&lt;4;j++)
<br>
&nbsp;&nbsp;&nbsp;&nbsp; arraybox[box_x+box[0][j]][box_y+box[1][j]]=1;
<br>
&nbsp;&nbsp;&nbsp;return false;
<br>
&nbsp;&nbsp;&nbsp;}
<br>
&nbsp;&nbsp;&nbsp;if(arraybox[box_x+box[0][i]+1][box_y+box[1][i]]==1)
<br>
&nbsp;&nbsp;&nbsp;{for (j=0;j&lt;4;j++)
<br>
&nbsp;&nbsp;&nbsp;&nbsp; arraybox[box_x+box[0][j]][box_y+box[1][j]]=1;
<br>
&nbsp;&nbsp;&nbsp;return false;
<br>
&nbsp;&nbsp;&nbsp;}
<br>
&nbsp;&nbsp;}
<br>
&nbsp;&nbsp;return true;
<br>
&nbsp;}
<br>
&nbsp;else if(direction=='left')
<br>
&nbsp;{
<br>
&nbsp;&nbsp; for(i=0;i&lt;4;i++)
<br>
&nbsp;&nbsp;&nbsp;{if((box_y+box[1][i]-1)&lt;0)
<br>
&nbsp;&nbsp;&nbsp;&nbsp; return false;
<br>
&nbsp;&nbsp;&nbsp;if(arraybox[box_x+box[0][i]][box_y+box[1][i]-1]==1)
<br>
&nbsp;&nbsp;&nbsp;&nbsp;return false;
<br>
&nbsp;&nbsp;&nbsp;}
<br>
&nbsp;&nbsp; return true;
<br>
&nbsp;&nbsp;
<br>
&nbsp;}
<br>
&nbsp;else if(direction=='right')
<br>
&nbsp;{
<br>
&nbsp;&nbsp;for(i=0;i&lt;4;i++)
<br>
&nbsp;&nbsp; {if((box_y+box[1][i]+1)==N)
<br>
&nbsp;&nbsp;&nbsp;&nbsp;return false;
<br>
&nbsp;&nbsp; if(arraybox[box_x+box[0][i]][box_y+box[1][i]+1]==1)
<br>
&nbsp;&nbsp;&nbsp; return false;
<br>
&nbsp;&nbsp; }&nbsp;
<br>
&nbsp;&nbsp;return true;
<br>
&nbsp;}
<br>
&nbsp;
<br>
}
<br>

<br>
function begin_go()
<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -