现在的位置: 首页 > 综合 > 正文

JavaScript–js写的俄罗斯方块

2012年09月12日 ⁄ 综合 ⁄ 共 2653字 ⁄ 字号 评论关闭
<HTML>
<HEAD>
<title>俄罗斯方块</title>
<style>
<!--
BODY
{
}

.MB
{
    BACKGROUND-COLOR
: firebrick;
    CURSOR
: default;
    HEIGHT
: 22px;
    WIDTH
: 22px
}

.SB
{
    BACKGROUND-COLOR
: slategray;
    CURSOR
: default;
    HEIGHT
: 22px;
    WIDTH
: 22px
}

.BK
{
    BACKGROUND-COLOR
: white;
    CURSOR
: default;
    HEIGHT
: 22px;
    WIDTH
: 22px
}

.GT
{
    BORDER-BOTTOM
: deepskyblue thin solid;
    BORDER-LEFT
: deepskyblue thin solid;
    BORDER-RIGHT
: deepskyblue thin solid;
    BORDER-TOP
: deepskyblue thin solid;
    CURSOR
: default
}

-->
</style>
<script>
<!--
var BX=new Array(4);
var BY=new Array(4);
var PX=new Array(4);
var PY=new Array(4);
var mTimer
var firstView

function beginGame()
{
    gameState
=0;
    speed
=1;
    outTime
=1100-speed*100;
    score
=0;
    
if(gameState!=0)return;
    firstView
=true;
    
for(j=0;j<16;j++)
        
for(i=0;i<10;i++)
            setClass(i,j,
"BK");
    randBar();
    gameState
=1;
    Play.disabled
=true;
    window.clearInterval(mTimer);
    mTimer
=window.setInterval("moveBar()",outTime);
}


function keyControl()
{
    
if(gameState!=1)return;
    
switch(event.keyCode){
        
case 37:{    //left
            for(i=0;i<4;i++)if(BX[i]==0)return;
            
for(i=0;i<4;i++)if(getClass(BX[i]-1,BY[i])=="SB")return;
            
for(i=0;i<4;i++)setClass(BX[i],BY[i],"BK");
            
for(i=0;i<4;i++)BX[i]=BX[i]-1;
            
for(i=0;i<4;i++)setClass(BX[i],BY[i],"MB");
            
break;}

        
case 38:{    //up
            var preMBarX=new Array(4);
            
var preMBarY=new Array(4);
            
var cx=Math.round((BX[0]+BX[1]+BX[2]+BX[3])/4);
            
var cy=Math.round((BY[0]+BY[1]+BY[2]+BY[3])/4);
            
for(i=0;i<4;i++){
                preMBarX[i]
=Math.round(cx-cy+BY[i]);
                preMBarY[i]
=Math.round(cx+cy-BX[i]);
                
if(preMBarX[i]<0 || preMBarX[i]>9 || preMBarY[i]<0 || preMBarY[i]>15)return;
                
if(getClass(preMBarX[i],preMBarY[i])=="SB")return;
            }

            
for(i=0;i<4;i++)setClass(BX[i],BY[i],"BK");
            
for(i=0;i<4;i++){
                BX[i]
=preMBarX[i];
                BY[i]
=preMBarY[i];
            }

            
for(i=0;i<4;i++)setClass(BX[i],BY[i],"MB");
            
break;}

        
case 39:{    //right
            for(i=0;i<4;i++)if(BX[i]==9)return;
            
for(i=0;i<4;i++)if(getClass(BX[i]+1,BY[i])=="SB")return;
            
for(i=0;i<4;i++)setClass(BX[i],BY[i],"BK");
            
for(i=0;i<4;i++)BX[i]=BX[i]+1;
            
for(i=0;i<4;i++)setClass(BX[i],BY[i],"MB");
            
break;}

        
case 40:{    //down
            moveBar();
            
break;}

    }

}


function delLine()
{
    
for(i=0;i<4;i++)setClass(BX[i],BY[i],"SB");
    
for(j=0;j<16;j++){
        dLine
=true;
        
for(i=0;i<9;i++){

抱歉!评论已关闭.