<html>
<head>
<title>俄罗斯方块</title>
<meta content="text/htmlcharset=gb2312" http-equiv=Content-Type>
</head>
<body>
<style>BODY {
BACKGROUND: blackMARGIN: 0px
}
TD {
COLOR: #ffffffFONT-FAMILY: 宋体FONT-SIZE: 9ptHEIGHT: 20pxWIDTH: 20px
}
#block_div {
POSITION: absoluteWIDTH: 80pxZ-INDEX: 1
}
#table_div {
POSITION: absoluteWIDTH: 320px
}
#nblock_div {
COLOR: redFONT: 48px systemPOSITION: absoluteZ-INDEX: 2
}
#title_div {
COLOR: whiteFONT-SIZE: 14pxLEFT: 326pxPOSITION: absoluteTOP: 7px
}
#infobar_div {
LEFT: 5pxPOSITION: absoluteTOP: 460px
}
#infobar2_div {
COLOR: whiteFONT-SIZE: 14pxLEFT: 396pxPOSITION: absoluteTOP: 480px
}
#infobar2_div A {
COLOR: #99ccffTEXT-DECORATION: none
}
</style>
<script id=clientEventHandlersJS language=JavaScript>
<!--
top.window.moveTo(0, 0)
/*
Tetris Game by Xie Yong ([email protected])
Modifications by DynamicDrive.com for interface enhancements
For this script, visit http://www.dynamicdrive.com
*/
if (document.all){
var gameInterval=""
var gamestart=0
var n_width = 800
var n_height =640
var n_left = Math.round( screen.width/2 ) - n_width/2
var n_top = Math.round( screen.height/2 ) - n_height/2
var n_IncStep = 20
var curBlcok,nextBlock
var arr_curBlock = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
var curX,curY
var speed=1
var maxspeed=9
var clr_per_line=18
var pause=0
var gameover=0
var colors = new Array("#999999","#0000FF","#80FFFF","#80FF80","#FFFF00","#FF8000","#FF00FF","#FF0000"
)
var cid
var ncid
var blocks = new Array("tt_O1","tt_T2","tt_Z1","tt_S1","tt_L1","tt_J1","tt_I2")
var bid
var killedlines=0
var tt_O1 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_O2 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_O3 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_O4 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_T1 = new Array(0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0)
var tt_T2 = new Array(0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0)
var tt_T3 = new Array(0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0)
var tt_T4 = new Array(0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0)
var tt_Z1 = new Array(0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0)
var tt_Z2 = new Array(0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0)
var tt_Z3 = new Array(0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0)
var tt_Z4 = new Array(0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0)
var tt_S1 = new Array(0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0)
var tt_S2 = new Array(0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0)
var tt_S3 = new Array(0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0)
var tt_S4 = new Array(0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0)
var tt_L1 = new Array(0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0)
var tt_L2 = new Array(0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0)
var tt_L3 = new Array(0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0)
var tt_L4 = new Array(0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0)
var tt_J1 = new Array(0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0)
var tt_J2 = new Array(0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0)
var tt_J3 = new Array(0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0)
var tt_J4 = new Array(0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0)
var tt_I1 = new Array(0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0)
var tt_I2 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1)
var tt_I3 = new Array(0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0)
var tt_I4 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1)
var table = new Array(
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
}
else
alert("You need IE4+ to play Tetris!")
function dimension2(row,col,num){
var i = row * num + col
return (this[i])
}
Array.prototype.getd = dimension2
function ShowBlock(x,y,block_type,color){
for (var i=0i<block_tbl.rows.lengthi++){
for (var j=0j<block_tbl.rows(i).cells.lengthj++){
var d2 = i * 4 + j
if (block_type[d2]==1){
block_tbl.rows(i).cells(j).style.background = color
}
else{
block_tbl.rows(i).cells(j).style.background = ""
}
}
}
block_div.style.pixelLeft=x
block_div.style.pixelTop=y
}
function ShowBlock1(x,y,block_type,color,obj_tabID,obj_divID){
for (var i=0i<obj_tabID.rows.lengthi++){
for (var j=0j<obj_tabID.rows(i).cells.lengthj++){
var d2 = i * 4 + j
if (block_type[d2]==1){
obj_tabID.rows(i).cells(j).style.background = color
}
else{
obj_tabID.rows(i).cells(j).style.background = ""
}
}
}
obj_divID.style.pixelLeft=x
obj_divID.style.pixelTop=y
}
function Change(inc){
var type = curBlock.substr(0,4)
var num = curBlock.substr(curBlock.length-1)
num = parseInt(num) + inc
if (num>4||num<1) num -= 4*inc
type += num
eval("arr_tmp = " + type + "")
if (CanMove(curX,curY,arr_tmp)){
curBlock = type
eval("arr_curBlock = " + curBlock + "")
eval("ShowBlock(block_div.style.pixelLeft,block_div.style.pixelTop," + curBlock + ",colors[" + cid + "])")
}
}
function CanMove(x,y,block){
for (i=0i<4i++){
for (j=0j<4j++){
if (block.getd(i,j,4)&table.getd(y/n_IncStep+i,x/n_IncStep+j,16)) return false
}
}
return true
}
function NewBlock(){
curBlock = nextBlock
cid = ncid
bid = Math.round(Math.random()*(blocks.length-1))
ncid = Math.round(Math.random()*(colors.length-1))
nextBlock = blocks[bid]
eval("arr_curBlock = " + curBlock + "")
eval("ShowBlock(120,0," + curBlock + ",colors[" + cid + "])")
eval("arr_curBlock = " + curBlock + "")
eval("ShowBlock1(340,170," + nextBlock + ",colors[" + ncid + "],nblock_tbl,nblock_div)")
}
function SaveBlock(){
for (i=0i<4i++){
for (j=0j<4j++){
table[(curY/n_IncStep+i)*16+curX/n_IncStep+j]|=arr_curBlock[i*4+j]
if (arr_curBlock[i*4+j]==1)
if ((curY/n_IncStep+i<21)&&(curX/n_IncStep+j>1)&&(curX/n_IncStep+j<14))
table_tbl.rows(curY/n_IncStep+i).cells(curX/n_IncStep+j).style.background = colors[cid]
if (table[(curY/n_IncStep+i)*16+curX/n_IncStep+j]!=1)
table_tbl.rows(curY/n_IncStep+i).cells(curX/n_IncStep+j).style.background = "black"
}
}
}
function DelLine(line){
for(i=linei>0i--){
for(j=2j<14j++){
table[i*16+j]=table[(i-1)*16+j]
}
}
table_tbl.deleteRow(line)
table_tbl.insertRow(0)
for (i=0i<16i++){
table_tbl.rows(0).insertCell()
if (i<2||i>13) table_tbl.rows(0).cells(i).style.background="navy"
}
killedlines++
cll.innerText=parseInt(cll.innerText)+1
}
function DelLines(){
var c,d,i,j
d=0
curY=block_div.style.pixelTop
for(i=(curY/20+3)i>curY/20-1i--){
c=0
for(j=2j<14j++){
if (isNaN(table[i*16+j])||i==21) break
c+=table[i*16+j]
}
if(c==12){
DelLine(i)
i++
d++
}
}
if (d>0)
sco.innerText=parseInt(sco.innerText)+d*d*36
}
function Lucifer(){
for(var i=2i<14i++){
if (table[16+i]==1) return true
}
return false
}
function GameOver(){
gameover=1
clearInterval(gameInterval)
block_div.innerHTML=""
for (i=0i<21i++){
for (j=2j<14j++){
setTimeout("table_tbl.rows(" + i + ").cells(" + j + ").style.background = colors[Math.round(Math.random()*7)]",16*i*j)
}
}
nblock_div.innerHTML = "游戏结束<br><br><font size=2><input type=button onclick='javascript:location.href=location.href' value='再玩一次'></font>"
}
function document_onkeydown() {
if (gameover==1) return
with (block_div.style){
curX = pixelLeft
curY = pixelTop
switch (event.keyCode){
case 37:
if(pause==1||gamestart==0){break}
if (CanMove(curX-n_IncStep,curY,arr_curBlock))
pixelLeft-=n_IncStep
break
case 38:
if(pause==1||gamestart==0){break}
Change(1)
break
case 39:
if(pause==1||gamestart==0){break}
if (CanMove(curX+n_IncStep,curY,arr_curBlock))
pixelLeft+=n_IncStep
break
case 40:
if(pause==1||gamestart==0){break}
if (CanMove(curX,curY+n_IncStep,arr_curBlock)){
pixelTop+=n_IncStep
}
else{
SaveBlock()
DelLines()
if (Lucifer()){
GameOver()
return
}
sco.innerText=parseInt(sco.innerText)+2
NewBlock()
}
break
case 32:
if (pause==0){
if (gameInterval==""){break}
clearInterval(gameInterval)
pause=1
}
else{
gameInterval=window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60)
pause=0
}
break
case 90:
if(pause==1||gamestart==0){break}
Change(1)
break
case 88:
if(pause==1||gamestart==0){break}
Change(-1)
break
default:
}
}
}
function Handle_Interval(){
curX = block_div.style.pixelLeft
curY = block_div.style.pixelTop
if (CanMove(curX,curY+n_IncStep,arr_curBlock)){
block_div.style.pixelTop+=n_IncStep
}
else{
SaveBlock()
DelLines()
if (Lucifer()){
GameOver()
return
}
sco.innerText=parseInt(sco.innerText)+2
NewBlock()
}
if (killedlines>=clr_per_line){
killedlines-=clr_per_line
if (speed<maxspeed)
speed++
else
speed=maxspeed
spd.innerText=speed
clearInterval(gameInterval)
gameInterval=window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60)
}
}
//-->
</script>
<script event=onkeydown for=document language=javascript>
<!--
if (document.all)
document_onkeydown()
//-->
</script>
<div id=block_div style="LEFT: 60pxTOP: 0px">
<table border=0 cellpadding=0 cellspacing=0 id=block_tbl>
<script>
if (document.all){
for (var i=0i<4i++){
document.write("<tr>")
for (var j=0j<4j++){
document.write("<td style=\"border:1 solid black\"></td>")
}
document.write("</tr>")
}
}
</script>
<tbody></tbody>
</table>
</div>
<div id=nblock_div>
<table border=0 cellpadding=0 cellspacing=0 id=nblock_tbl>
<script>
if (document.all){
for (var i=0i<4i++){
document.write("<tr>")
for (var j=0j<4j++){
document.write("<td style=\"height:40width:40border:1 outset black\"></td>")
}
document.write("</tr>")
}
}
</script>
<tbody></tbody>
</table>
</div>
<div id=table_div>
<table border=0 cellpadding=0 cellspacing=0 id=table_tbl>
<script>
if (document.all){
for (var i=0i<22i++){
document.write("<tr>")
for (var j=0j<16j++){
var d2 = i * 16 + j
if (table[d2]==1)
document.write("<td bgcolor=navy></td>")
else
document.write("<td style=\"background:black\"></td>")
}
document.write("</tr>")
}
}
</script>
<tbody></tbody>
</table>
</div>
<div id=title_div noWrap><br>
请输入数字(1-9)<br>
<br>
起始速度:
<input id=speedin size=8 value=1>
<button id=but onClick=begintet()>开始</button><br>
<br>
<br>
<font color=999999>下一块:</font><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
说明:<br>
<br>
<font color=999900>↑ :改变形状 ← :向左移动<br>
→ :向右移动 ↓ :向下移动<br>
<br>
空格键:暂停/继续</font><br>
<br>
<font color=009900>=======</font></div>
<div id=infobar_div>
<table border=1 bordercolor=navy cellpadding=0 cellspacing=0>
<tbody>
<tr align=middle>
<td style="COLOR: #99ccffFONT: 12px systemWIDTH: 56px"><font
size=2>速度</font>:</td>
<td id=spd style="COLOR: redFONT: 12px system">1</td>
<td style="COLOR: #99ccffFONT: 12px systemWIDTH: 86px">总分:</td>
<td id=sco style="COLOR: redFONT: 12px system">0</td>
<td style="COLOR: #99ccffFONT: 12px systemWIDTH: 96px">成绩:</td>
<td id=cll
style="COLOR: redFONT: 12px system">0</td>
</tr>
</tbody>
</table>
</div>
<div id=infobar2_div></div>
<script id=MainSection language=javascript>
<!--
if (document.all){
ncid = Math.round(Math.random()*(colors.length-1))
bid = Math.round(Math.random()*(blocks.length-1))
nextBlock = blocks[bid]
NewBlock()
}
function begintet(){
gamestart=1
document.all.speedin.disabled=true
document.all.but.disabled=true
speed=parseInt(document.all.speedin.value)
if (isNaN(speed)||speed==null||speed>maxspeed||speed<1) speed=1
spd.innerText=speed
gameInterval=window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60)
}
//-->
</script>
<div id='dh' style="position:absoluteleft:-800pxtop:-800pxwidth:0pxheight:0pxz-index:1">
<input type=button value='-' name='goppp' onClick='Javascript:window.close()' accesskey='q'>
</div>
</body>
</html>
这个是用HTML+JavaScript写的这些语言都能写JAVA就更不用说了
<html>
<head>
<title>俄罗斯方块</title>
<meta content="text/htmlcharset=gb2312" http-equiv=Content-Type>
</head>
<body>
<style>BODY {
BACKGROUND: blackMARGIN: 0px
}
TD {
COLOR: #ffffffFONT-FAMILY: 宋体FONT-SIZE: 9ptHEIGHT: 20pxWIDTH: 20px
}
#block_div {
POSITION: absoluteWIDTH: 80pxZ-INDEX: 1
}
#table_div {
POSITION: absoluteWIDTH: 320px
}
#nblock_div {
COLOR: redFONT: 48px systemPOSITION: absoluteZ-INDEX: 2
}
#title_div {
COLOR: whiteFONT-SIZE: 14pxLEFT: 326pxPOSITION: absoluteTOP: 7px
}
#infobar_div {
LEFT: 5pxPOSITION: absoluteTOP: 460px
}
#infobar2_div {
COLOR: whiteFONT-SIZE: 14pxLEFT: 396pxPOSITION: absoluteTOP: 480px
}
#infobar2_div A {
COLOR: #99ccffTEXT-DECORATION: none
}
</style>
<script id=clientEventHandlersJS language=JavaScript>
<!--
top.window.moveTo(0, 0)
/*
Tetris Game by Xie Yong ([email protected])
Modifications by DynamicDrive.com for interface enhancements
For this script, visit http://www.dynamicdrive.com
*/
if (document.all){
var gameInterval=""
var gamestart=0
var n_width = 800
var n_height =640
var n_left = Math.round( screen.width/2 ) - n_width/2
var n_top = Math.round( screen.height/2 ) - n_height/2
var n_IncStep = 20
var curBlcok,nextBlock
var arr_curBlock = new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
var curX,curY
var speed=1
var maxspeed=9
var clr_per_line=18
var pause=0
var gameover=0
var colors = new Array("#999999","#0000FF","#80FFFF","#80FF80","#FFFF00","#FF8000","#FF00FF","#FF0000"
)
var cid
var ncid
var blocks = new Array("tt_O1","tt_T2","tt_Z1","tt_S1","tt_L1","tt_J1","tt_I2")
var bid
var killedlines=0
var tt_O1 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_O2 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_O3 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_O4 = new Array(0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0)
var tt_T1 = new Array(0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,0)
var tt_T2 = new Array(0,0,0,0,0,0,0,0,1,1,1,0,0,1,0,0)
var tt_T3 = new Array(0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0)
var tt_T4 = new Array(0,0,0,0,0,1,0,0,1,1,1,0,0,0,0,0)
var tt_Z1 = new Array(0,0,0,0,1,1,0,0,0,1,1,0,0,0,0,0)
var tt_Z2 = new Array(0,0,0,0,0,0,1,0,0,1,1,0,0,1,0,0)
var tt_Z3 = new Array(0,0,0,0,0,1,1,0,0,0,1,1,0,0,0,0)
var tt_Z4 = new Array(0,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0)
var tt_S1 = new Array(0,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0)
var tt_S2 = new Array(0,0,0,0,0,1,0,0,0,1,1,0,0,0,1,0)
var tt_S3 = new Array(0,0,0,0,0,0,1,1,0,1,1,0,0,0,0,0)
var tt_S4 = new Array(0,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0)
var tt_L1 = new Array(0,1,0,0,0,1,0,0,0,1,1,0,0,0,0,0)
var tt_L2 = new Array(0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,0)
var tt_L3 = new Array(0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0)
var tt_L4 = new Array(0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0)
var tt_J1 = new Array(0,0,1,0,0,0,1,0,0,1,1,0,0,0,0,0)
var tt_J2 = new Array(0,0,0,0,1,1,1,0,0,0,1,0,0,0,0,0)
var tt_J3 = new Array(0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0)
var tt_J4 = new Array(0,0,0,0,0,1,0,0,0,1,1,1,0,0,0,0)
var tt_I1 = new Array(0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0)
var tt_I2 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1)
var tt_I3 = new Array(0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0)
var tt_I4 = new Array(0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1)
var table = new Array(
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1)
}
else
alert("You need IE4+ to play Tetris!")
function dimension2(row,col,num){
var i = row * num + col
return (this[i])
}
Array.prototype.getd = dimension2
function ShowBlock(x,y,block_type,color){
for (var i=0i<block_tbl.rows.lengthi++){
for (var j=0j<block_tbl.rows(i).cells.lengthj++){
var d2 = i * 4 + j
if (block_type[d2]==1){
block_tbl.rows(i).cells(j).style.background = color
}
else{
block_tbl.rows(i).cells(j).style.background = ""
}
}
}
block_div.style.pixelLeft=x
block_div.style.pixelTop=y
}
function ShowBlock1(x,y,block_type,color,obj_tabID,obj_divID){
for (var i=0i<obj_tabID.rows.lengthi++){
for (var j=0j<obj_tabID.rows(i).cells.lengthj++){
var d2 = i * 4 + j
if (block_type[d2]==1){
obj_tabID.rows(i).cells(j).style.background = color
}
else{
obj_tabID.rows(i).cells(j).style.background = ""
}
}
}
obj_divID.style.pixelLeft=x
obj_divID.style.pixelTop=y
}
function Change(inc){
var type = curBlock.substr(0,4)
var num = curBlock.substr(curBlock.length-1)
num = parseInt(num) + inc
if (num>4||num<1) num -= 4*inc
type += num
eval("arr_tmp = " + type + "")
if (CanMove(curX,curY,arr_tmp)){
curBlock = type
eval("arr_curBlock = " + curBlock + "")
eval("ShowBlock(block_div.style.pixelLeft,block_div.style.pixelTop," + curBlock + ",colors[" + cid + "])")
}
}
function CanMove(x,y,block){
for (i=0i<4i++){
for (j=0j<4j++){
if (block.getd(i,j,4)&table.getd(y/n_IncStep+i,x/n_IncStep+j,16)) return false
}
}
return true
}
function NewBlock(){
curBlock = nextBlock
cid = ncid
bid = Math.round(Math.random()*(blocks.length-1))
ncid = Math.round(Math.random()*(colors.length-1))
nextBlock = blocks[bid]
eval("arr_curBlock = " + curBlock + "")
eval("ShowBlock(120,0," + curBlock + ",colors[" + cid + "])")
eval("arr_curBlock = " + curBlock + "")
eval("ShowBlock1(340,170," + nextBlock + ",colors[" + ncid + "],nblock_tbl,nblock_div)")
}
function SaveBlock(){
for (i=0i<4i++){
for (j=0j<4j++){
table[(curY/n_IncStep+i)*16+curX/n_IncStep+j]|=arr_curBlock[i*4+j]
if (arr_curBlock[i*4+j]==1)
if ((curY/n_IncStep+i<21)&&(curX/n_IncStep+j>1)&&(curX/n_IncStep+j<14))
table_tbl.rows(curY/n_IncStep+i).cells(curX/n_IncStep+j).style.background = colors[cid]
if (table[(curY/n_IncStep+i)*16+curX/n_IncStep+j]!=1)
table_tbl.rows(curY/n_IncStep+i).cells(curX/n_IncStep+j).style.background = "black"
}
}
}
function DelLine(line){
for(i=linei>0i--){
for(j=2j<14j++){
table[i*16+j]=table[(i-1)*16+j]
}
}
table_tbl.deleteRow(line)
table_tbl.insertRow(0)
for (i=0i<16i++){
table_tbl.rows(0).insertCell()
if (i<2||i>13) table_tbl.rows(0).cells(i).style.background="navy"
}
killedlines++
cll.innerText=parseInt(cll.innerText)+1
}
function DelLines(){
var c,d,i,j
d=0
curY=block_div.style.pixelTop
for(i=(curY/20+3)i>curY/20-1i--){
c=0
for(j=2j<14j++){
if (isNaN(table[i*16+j])||i==21) break
c+=table[i*16+j]
}
if(c==12){
DelLine(i)
i++
d++
}
}
if (d>0)
sco.innerText=parseInt(sco.innerText)+d*d*36
}
function Lucifer(){
for(var i=2i<14i++){
if (table[16+i]==1) return true
}
return false
}
function GameOver(){
gameover=1
clearInterval(gameInterval)
block_div.innerHTML=""
for (i=0i<21i++){
for (j=2j<14j++){
setTimeout("table_tbl.rows(" + i + ").cells(" + j + ").style.background = colors[Math.round(Math.random()*7)]",16*i*j)
}
}
nblock_div.innerHTML = "游戏结束<br><br><font size=2> <input type=button onclick='javascript:location.href=location.href' value='再玩一次'></font>"
}
function document_onkeydown() {
if (gameover==1) return
with (block_div.style){
curX = pixelLeft
curY = pixelTop
switch (event.keyCode){
case 37:
if(pause==1||gamestart==0){break}
if (CanMove(curX-n_IncStep,curY,arr_curBlock))
pixelLeft-=n_IncStep
break
case 38:
if(pause==1||gamestart==0){break}
Change(1)
break
case 39:
if(pause==1||gamestart==0){break}
if (CanMove(curX+n_IncStep,curY,arr_curBlock))
pixelLeft+=n_IncStep
break
case 40:
if(pause==1||gamestart==0){break}
if (CanMove(curX,curY+n_IncStep,arr_curBlock)){
pixelTop+=n_IncStep
}
else{
SaveBlock()
DelLines()
if (Lucifer()){
GameOver()
return
}
sco.innerText=parseInt(sco.innerText)+2
NewBlock()
}
break
case 32:
if (pause==0){
if (gameInterval==""){break}
clearInterval(gameInterval)
pause=1
}
else{
gameInterval=window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60)
pause=0
}
break
case 90:
if(pause==1||gamestart==0){break}
Change(1)
break
case 88:
if(pause==1||gamestart==0){break}
Change(-1)
break
default:
}
}
}
function Handle_Interval(){
curX = block_div.style.pixelLeft
curY = block_div.style.pixelTop
if (CanMove(curX,curY+n_IncStep,arr_curBlock)){
block_div.style.pixelTop+=n_IncStep
}
else{
SaveBlock()
DelLines()
if (Lucifer()){
GameOver()
return
}
sco.innerText=parseInt(sco.innerText)+2
NewBlock()
}
if (killedlines>=clr_per_line){
killedlines-=clr_per_line
if (speed<maxspeed)
speed++
else
speed=maxspeed
spd.innerText=speed
clearInterval(gameInterval)
gameInterval=window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60)
}
}
//-->
</script>
<script event=onkeydown for=document language=javascript>
<!--
if (document.all)
document_onkeydown()
//-->
</script>
<div id=block_div style="LEFT: 60pxTOP: 0px">
<table border=0 cellpadding=0 cellspacing=0 id=block_tbl>
<script>
if (document.all){
for (var i=0i<4i++){
document.write("<tr>")
for (var j=0j<4j++){
document.write("<td style=\"border:1 solid black\"></td>")
}
document.write("</tr>")
}
}
</script>
<tbody></tbody>
</table>
</div>
<div id=nblock_div>
<table border=0 cellpadding=0 cellspacing=0 id=nblock_tbl>
<script>
if (document.all){
for (var i=0i<4i++){
document.write("<tr>")
for (var j=0j<4j++){
document.write("<td style=\"height:40width:40border:1 outset black\"></td>")
}
document.write("</tr>")
}
}
</script>
<tbody></tbody>
</table>
</div>
<div id=table_div>
<table border=0 cellpadding=0 cellspacing=0 id=table_tbl>
<script>
if (document.all){
for (var i=0i<22i++){
document.write("<tr>")
for (var j=0j<16j++){
var d2 = i * 16 + j
if (table[d2]==1)
document.write("<td bgcolor=navy></td>")
else
document.write("<td style=\"background:black\"></td>")
}
document.write("</tr>")
}
}
</script>
<tbody></tbody>
</table>
</div>
<div id=title_div noWrap><br>
请输入数字(1-9)<br>
<br>
起始速度:
<input id=speedin size=8 value=1>
<button id=but onClick=begintet()>开始</button><br>
<br>
<br>
<font color=999999>下一块:</font><br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
说明:<br>
<br>
<font color=999900> ↑ :改变形状 ← :向左移动<br>
→ :向右移动 ↓ :向下移动<br>
<br>
空格键:暂停/继续</font><br>
<br>
<font color=009900> 原作:未知 改编:BOBO娱乐网</font></div>
<div id=infobar_div>
<table border=1 bordercolor=navy cellpadding=0 cellspacing=0>
<tbody>
<tr align=middle>
<td style="COLOR: #99ccffFONT: 12px systemWIDTH: 56px"><font
size=2>速度</font>:</td>
<td id=spd style="COLOR: redFONT: 12px system">1</td>
<td style="COLOR: #99ccffFONT: 12px systemWIDTH: 86px">总分:</td>
<td id=sco style="COLOR: redFONT: 12px system">0</td>
<td style="COLOR: #99ccffFONT: 12px systemWIDTH: 96px">成绩:</td>
<td id=cll
style="COLOR: redFONT: 12px system">0</td>
</tr>
</tbody>
</table>
</div>
<div id=infobar2_div></div>
<script id=MainSection language=javascript>
<!--
if (document.all){
ncid = Math.round(Math.random()*(colors.length-1))
bid = Math.round(Math.random()*(blocks.length-1))
nextBlock = blocks[bid]
NewBlock()
}
function begintet(){
gamestart=1
document.all.speedin.disabled=true
document.all.but.disabled=true
speed=parseInt(document.all.speedin.value)
if (isNaN(speed)||speed==null||speed>maxspeed||speed<1) speed=1
spd.innerText=speed
gameInterval=window.setInterval("Handle_Interval()",(maxspeed-speed+1)*60)
}
//-->
</script>
<div id='dh' style="position:absoluteleft:-800pxtop:-800pxwidth:0pxheight:0pxz-index:1">
<input type=button value='-' name='goppp' onClick='Javascript:window.close()' accesskey='q'>
</div>
</body>
</html>
Arix Tetris顾名思义,俄罗斯方块自然是俄罗斯人发明的。这位伟人叫做阿列克谢·帕基特诺夫(Алексей Пажитнов 英文:Alexey Pazhitnov)。
俄罗斯方块原名是俄语Тетрис(英语是Tetris),这个名字来源于希腊语tetra,意思是“四”,而游戏的作者最喜欢网球(tennis)。于是,他把两个词tetra和tennis合而为一,命名为Tetris,这也就是俄罗斯方块名字的由来啦。
俄罗斯方块(Tetris, 俄文:Тетрис)是1980年末期至1990年代初期风靡全世界的电子游戏,是落下型益智游戏的始祖。俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。它的规则简单,容易上手,且游戏过程变化无穷。