JS编写的俄罗斯方块[1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 zwztu 的 blog

<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;}

本文关键:俄罗斯方块
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top