俄罗斯方块---找不到对象?(.js文件的代码)

总是提示说找不到对象,书上说要求设置“允许脚本与页面数据交互”,但IE属性里没这个选项啊!

html的代码:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html140/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">  
<title>俄罗斯方块</title>
    <style>
    .GirdStyle{
    border-left:solid #ffffff 1px;
    border-top:solid #ffffff 1px;
    border-right:solid #969696 1px;
    border-bottom:solid #969696 1px;
    font-size:10pt;
 }
 try{
 font-family:"楷体";
 font-size:10pt;
 }
 </style>
 <script  language ="JavaScript" src ="Russia Tetris.js">   // 这里也引用了啊
</script>
</head>
<body οnlοad="InitGame()" onkeydown ="keyDown()">
<center>
<table border ="1" cellspacing ="1" cellpadding="1" align="center" width="360">
<tr>
<td>
<span id="GameBody"><!--游戏区域--></span>
</td>
<td>
<table align="center" width="130">
<tr>
<td>
<p><span id="GameForecast"><!--下一方格显示区--></span></p>
</td>
</tr>
<tr>
<td>
<br>
<p><button id="start" onclick ="StartGame()">开始游戏</button></p>
<p><button id="pause"οnclick="PauseGame()">暂停游戏</button></p>
<p><button id="over"οnclick="OverGame()">结束游戏</button></p>
</td>
</tr>
<tr>
<td>
<br>
<p>当前积分:<SPAN ID="gScore">0</SPAN></p>
<p>当前级别:<SPAN ID="gLevel">0</SPAN></p>
<p>已消行数:<SPAN ID="gLine">0</SPAN></p>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</body>
</html>

.js的代码

//    一.常量声明,变量设定
//行,列,高度
var Cols=12,Rows=20,Sqlen=16;
var delLine=new Array();
var CurSq,NextSq;
var type=-1,oldtype;
//方块移动一次耗时
var delayTime=new Array(500,400,300,200,100,90,80,70,60);
//控制方块移动的计时器
var TimerID;
//控制位置,结束标识,级别,分数和行数
var pos=0,end,level=0,score=0,lines=0;
//是否结束的标识符
var isOver=false;
//是否暂停的标识符
var isPause=false;
//游戏区和下一方块显示区背景色以及七种方块的颜色
var myColor=new Array("gray","red","green","cyan","yellow","orange","pink","blue");
                             //    二.初始化游戏区和下一方块显示区
//初始化游戏区和下一方块显示区
function InitGame()
{
document.getElementById("GameBody").innerHTML=CreateArea(Rows,Cols,'Main');
document.getElementById("GameForecast").innerHTML=CreateArea(4,4,'Forecast');
}
//产生游戏区和下一方格显示区框架
function CreateArea(rows,cols,name)
{
var s="<table border=1 cellspacing=0 cellpadding=0 bgcolor="+myColor[0]+">";
for(var i=0;i<rows;i++)
{
s+="<tr height="+Sqlen+">";
for(var j=0;j<cols;j++)
{
var id=name+i+"#"+j;
s+="<td width="+Sqlen+" class=GirdStyle id="+id;
s+=" style=/"background:"+myColor[0]+"/"></td>"
}
s+="</tr>";
}
s+="</table>";
return s;
}
                            //  三.开始游戏和随机选择方块
//游戏开始,调用START()函数,并随即选择方块
function StartGame()
{
document.getElementById("start").disabled=true;
document.getElementById("pause").focus();
type=parseInt(Math.random()*7);
oldtype=type;
type=parseInt(Math.random()*7);
var m=4/2-1;
NewSq=chooseSquare(type,m,0);
reDraw('Forecast',NewSq);
Start();
}
//chooseSquare(type,x,y)和Start()函数代码
 //根据随机产生的数值选择方块
function chooseSquare(type,x,y)
{
var mySquare=new Array(4);
Switch(type)
{
case 0:{
mySquare[0]=new Square(x-1,y,1);
mySquare[1]=new Square(x,y,1);
mySquare[2]=new Square(x+1,y,1);
mySquare[3]=new Square(x+2,y,1);
break;}
case 1:
mySquare[0]=new Square(x,y,5);
mySquare[1]=new Square(x,y+1,5);
mySquare[2]=new Square(x+1,y+1,5);
mySquare[3]=new Square(x,y+2,5);
break;
case 2:
mySquare[0]=new Square(x,y,2);
mySquare[1]=new Square(x,y+1,2);
mySquare[2]=new Square(x+1,y+1,2);
mySquare[3]=new Square(x+1,y+2,2);
break;
case 3:
mySquare[0]=new Square(x+1,y,7);
mySquare[1]=new Square(x+1,y+1,7);
mySquare[2]=new Square(x,y+1,7);
mySquare[3]=new Square(x,y+2,7);
break;
case 4:
mySquare[0]=new Square(x,y,3);
mySquare[1]=new Square(x+1,y,3);
mySquare[2]=new Square(x,y+1,3);
mySquare[3]=new Square(x+1,y+1,3);
break;
case 5:
mySquare[0]=new Square(x,y,6);
mySquare[1]=new Square(x+1,y,6);
mySquare[2]=new Square(x+1,y+1,6);
mySquare[3]=new Square(x+1,y+2,6);
break;
case 6:
mySquare[0]=new Square(x+1,y,4);
mySquare[1]=new Square(x,y,4);
mySquare[2]=new Square(x,y+1,4);
mySquare[3]=new Square(x,y+2,4);
break;
}
return mySquare;
}   
 //计时器启动
function Start()
{
if(isOver)
{
var s="本局游戏结束!";
OverGame(s);
}
gScore.innerText=score;
gLevel.innerText=level;
gLine.innerText=lines;
oldtype=type;
clearDraw('Forecast',NewSq);
type=parseInt(Math.random()*7);
var m=4/2-1;
NewSq=chooseSquare(type,m,0);
reDraw('Forecast',NewSq);
var mm=Cols/2-1;
CurSq=chooseSquare(oldtype,mm,0);
reDraw('Main',CurSq);
window.clearInterval(TimerID);
TimerID=window.setInterval("StartMove()",delayTime[level]);
}   
                           // 四.消隐方块和计算当前得分
//设定当前矩形
function Square(cols,rows,color)
{
this.rows=rows;
this.cols=cols;
this.color=color;
}
//将方块的颜色设置为背景色以清除该方块
function clearDraw(name,mySquare)
{
var obj;
for(var i=0;i<mySquare.lenght;i++)
{
obj=document.getElementById(name+mySquare[i].rows+"#"+mySquare[i].cols);
obj.style.background=myColor[0];
}
}
//符合条件的行消去后,更新游戏结果区并开始下一个方块
function StartMove()
{
fi(isPause)
return;
if(MoveCurSq(0,1,false)==false)
{
//先暂停下一个方块移动,计算分数
window.clearInterval(TimerID);
if(RemoveLines()==true)
{
DelLines();
lines=lines+delLine.length;
//根据消去的行数加分
switch(delLine.length)
{
case 1:
score=score+100;
break;
case 2:
score=score+200;
break;
case 3:
score=score+400;
break;
case 4:
score=score+1000;
break;
}
//更新游戏级别
level=parseInt(score/10000);
}
//开始下一个方块
Start();
}
}
                        //  五.响应用户按键动作
//变形,下移,左移,右移
function keyDown()
{
switch(event.keyCode)
{
case 40:   //相当于下移
MoveCurSq(0,1,false);
break;
case 37:   //相当于左移
MoveCurSq(-1,0,false);
break;
case 38:   //相当于变形
MoveCurSq(0,0,true);
break;
case 39:   //相当于右移
MoveCurSq(1,0,false);
break;
}
}
                    //   六.移动当前方块
function MoveCurSq(x,y,isRotate)
{
NextSq=new Array(CurSq.length)
for(var i=0;i<CurSq.length;i++)
{
if(isRotate)
{
var dx=CurSq[i].cols-CurSq[0].cols;
var dy=CurSq[i].rows-CurSq[0].rows;
NextSq[i]=new Square(CurSq[0].cols-dy,CurSq[0].rows+dx,CurSq[i].color);
}
else
NextSq[i]=new Square(CurSq[i].cols+x,CurSq[i].rows+y,CurSq[i].color);
}
if(isRotate)
reNextSq();
if(MoveSquare(CurSq,NextSq)==false)
{
for(var i=0;i<CurSq.length;i++)
{
if((CurSq[i].rows==0&&CurSq[i].cols==Cols/2)||(CurSq[i].rows==0&&CurSq[i].cols=Cols/2-1))
isOver=true;
}
return false;
}
clearDraw('Main',CurSq);
CurSq=NextSq;
reDraw('Main',CurSq);
return true;
}
                     //  七.旋转当前方块为其下一状态
//旋转为下一个方块
function reNextSq()
{
var minCols=SortSquare(NextSq,'Cols',false);
var minRows=SortSquare(NextSq,'Rows',false);
var maxCols=SortSquare(NextSq,'Cols',true);
var maxRows=SortSquare(NextSq,'Rows',true);
if(minCols<0)
changeNextSq('Cols',-minCols);
if(minRows<0)
changeNextSq('Rows',-minRows);
if(maxCols>11)
changeNextSq('Cols',11-maxCols);
if(maxRows>19)
changeNextSq('Rows',19-maxRows);
}
//移动矩形
function MoveSquare(from,to)
{
if(isBounds(to)==false)
return false;
var obj;
//循环体
loop:
for(var i=0;i<to.length;i++)
{
obj=document.getElementById("Main"+to[i].rows+"#"+to[i].cols);
if(obj.style.background!=myColor[0])
{
for(var j=0;j<from.length;j++)
if(to[i].cols==from[j].cols&&to[i].rows==from[j].rows&&to[i].color==from[j].color)
continue loop;
return false;
}
}
return true;
}
//重画
function reDraw(name,mySquare)
{
var obj;
for(var i=0;i<mySquare.length;i++)
{
obj=document.getElementById(name+mySquare[i].rows+"#"+mySquare[i].cols);
obj.style.background=myColor[mySquare[i].color];
}
}
                      //    八.变换位置并判断是否到达边界
//方块排序
function SortSquare(mySquare,name,isMax)
{
if(isMax)
{
var Max=0;
if(name=="Rows")
{
for(var i=0;i<mySquare.length:i++)
{
if(mySquare[i].rows>Max)
Max=mySquare[i].rows;
}
}
else
{
for(var i=0;i<mySquare.length;i++)
{
if(mySquare[i].cols>Max)
Max=mySquare[i].cols;
}
}
return Max;
}
else
{
var Min=20;
if(name=="Rows")
{
for(var i=0;i<mySquare.length)
{
if(mySquare[i].rows<Min)
Min=mySquare[i].rows;
}
}
else
{
for(var i=0;i<mySquare.length;i++)
{
if(mySquare[i].cols<Min)
Min=mySquare[i].cols;
}
}
return Min;
}
}
//方块位置变化
function changeNextSq(name,pos)
{
for(var i=0;i<NextSq.length;i++)
{
if(name=="Rows")
NextSq[i].rows=NextSq[i].rows+pos;
else
NextSq[i].cols=NextSq[i].cols+pos;
}
}
//判断是否到达边界
function isBounds(mySquare)
{
for(var i=0;i<mySquare.length;i++)
{
if(mySquare[i].cols<0||mySquare[i].cols>11||mySquare[i].rows<0||mySquare[i].rows>19)
return false;
}
return true;
}
                           //       九.消隐满足条件的行
//移除符合条件的一行或多行
function RemoveLines()
{
var obj,m=0;
var isRemov=true;
var searchPos=true;
var del=new Array();
for(var i=19;i>=0;i--)
{
for(var j=0;j<12;j++)
{
obj=document.getElementById("Main"+i+"#"+j);
if(obj.style.background==myColor[0])
{
isRemove=false;
}
else
{
searchPos=fasle;
}
}
if(searchPos)
{
end=1;
if(del.length>0)
{
delLine=del;
return true;
}
else
{
return false;
}
}
if(isRemove)
{
del[m]=i;
m++;
}
searchPos=true;
isRemove=true;
}
}
//删除符合条件的一行或多行
function DelLines()
{
var deleted=0;
var obj;
//从下至上,从左至右扫描符合条件的行
for(var i=0;i<delLine.length;i++)
{
for(var j=0;j<12;j++)
{
obj=document.getElementById("Main"+delLine[i]+"#"+j);
obj.style.background=myColor[0];
}
deleted=deleted+1;
if(delLine.length>deleted)
{
if(delLine[i]-delLine[i+1]>1)
ReDrawLine(delLine[i+1],delLine[i],deleted);
}
}
ReDrawLine(end,delLine[delLine.length-1],deleted);
}
//由下至上,由左至右重画某个区域
function ReDrawLine(endline,startline,moveline)
{
var obj;
for(var i=startline-1;i>endline;i--)
{
for(var j=0;j<12;j++)
{
obj=document.getElementById("Main"+i+"#"+j);
var oldcolor=obj.style.background;
obj.style.background=myColor[0];
var rowid=i+moveline;
obj=document.getElementById("Main"+rowid+"#"+j);
obj.style.background=oldcolor;
}
}
}
                          //  十.游戏暂停和重新开始
//翻转“暂停游戏”和“继续游戏”按钮文本,并设定游戏开始和暂停
function PauseGame()
{
obj=document.getElementById("pause");
if(pause.innerText=="暂停游戏")
{
isPause=true;
obj.innerText="继续游戏";
obj.focus();
}
esle
{
isPause=false;
obj.innerText="暂停游戏";
obj.focus();
StartMove();
}
}
                             //  十一.判断游戏是否结束
//结束就弹出警告框
function OverGame(str)
{
if(typeof(str)=="undefined")
str="最后得分: "+score+".是否重新玩游戏?";
else
str=str+"最后得分: "+score+" .是否重新玩游戏?";
var isOK=window.confirm(str);
//用户选择确定按钮后关闭当前页面
if(!isOK)
window.close();
//否则刷新当前页面,重新游戏
else
document .location .reload();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值