!DOCTYPEhtml
html
head
metacharset="UTF-8"
title/title
scripttype="text/css"/script
/head
body
!--bodybackground="img/"--
imgborder='0'src="img/"width='100%'height='100%'style='position:absolute;left:0px;top:0px;z-index:-1'
!--bgsoundsrc="BackMusic/"loop=00FFFF");
();
//******************************************************
//创建初级按钮,将初级按钮添加到悬浮父窗口中,并实现对应功能
//******************************************************
varButtonPrimary=newButton("btnPrm","","","",295,30,"80","30")
("初级");
("FF69B4");
();
(Intermediate);
//**********************************
functionIntermediate()
{
clear();//重置游戏
guanqiaDengji="中级";
click1=null;
click2=null;
GuoGrade=800;
Grade=0;
index=14;
RowValue=8;
ColValue=8;
time1=90;
setTimer();//计时器
("当前分数:"+Grade);
Update(RowValue,ColValue,index);
}
//******************************************************
//创建高级按钮,将高级按钮添加到悬浮父窗口中,并实现对应功能
//******************************************************
varButtonExpert=newButton("btnEp","","","",475,30,"80","30")
("高级");
("#C71585");
();
(Expert);
//**********************************
functionExpert()
{
clear();//重置游戏
guanqiaDengji="高级";
click1=null;
click2=null;
GuoGrade=1000;
Grade=0;
index=18;
RowValue=10;
ColValue=10;
time1=120;
setTimer();//计时器
("当前分数:"+Grade);
Update(RowValue,ColValue,index);
}
//******************************************************
//实例化倒计时显示框,将倒计时框添加到悬浮父窗口中,并实现对应功能
//******************************************************
vartimeShow1=newText("txtShow","剩余时间:"+time1+"s",180,30,"100","20");
("red");
();
//Timer=setInterval(setTimer,1000);
//实现倒计时功能
functionsetTimer()
{
Timer=setInterval(Time1,1000);
}
functionTime1()
{
time1--;
("剩余时间:"+time1+"s");
if(Grade=GuoGrade)
{
alert("*恭喜过关*");
clearInterval(Timer);
}
if(time1=0)
{
alert("很遗憾!未能通关");
clearInterval(Timer);
}
}
//******************************************************
//创建重置按钮,将重置按钮添加到悬浮父窗口中,并实现对应功能
//******************************************************
varButtonReset=newButton("btnSet","","","",560,30,"50","30")
("img/");
();
(ResetBtn);
functionResetBtn()
{
varrS=("请选择过关等级!");
if(rS=="初级")
{
Primary();
}
elseif(rS=="中级")
{
Intermediate();
}
elseif(rS=="高级")
{
Expert();
}
}
//******************************************************
//创建暂停按钮按钮,将暂停按钮添加到悬浮父窗口中,并实现对应功能
//******************************************************
varButtonStop=newButton("btnSet","","","",615,30,"50","30")
("img/");
();
(StopBtn);
functionStopBtn()
{
alert("当前暂停!是否继续?");
}
//******************************************************
//清空按钮数组(牌)
//******************************************************
functionclear()
{
for(vari=1;i=RowValue;i++)
{
for(varj=1;j=ColValue;j++)
{
BoardArray[i][j].removeToParent();
}
}
=0;//将存放按钮的数组长度初始化为0
clearInterval(Timer);
}
//******************************************************
//排布按钮显示,初始化连连看牌面
//******************************************************
functionUpdate(_RowValue,_ColValue,_index)
{
for(vari=1;i=_RowValue;i++)
{
//创建数组,存储按钮
BoardArray[i]=newArray();
for(varj=1;j=_ColValue;j++)
{
//产生随机数,表示牌的下标.随机数为小数,所以需要转换成整形
ImgIndex=((()*_index));
//实例化按钮对象
//BoardArray[i][j]=newButton(i+""+j,"",i,j,40*j+10,50*i+20,"30","40");
BoardArray[i][j]=newButton(i+""+j,"",i,j,60*j+10,60*i+20,"50","50");
//将按钮子对象添加到悬浮窗父对象中
BoardArray[i][j].addToParent();
//设置按钮中的背景图片,使图片在按钮中显示
BoardArray[i][j].setBackgroundImage(ImgArr[ImgIndex]);
BoardArray[i][j].setClick(Eliminate_1);
}
}
}
//******************************************************
//实现消除牌面的功能
//******************************************************
functionEliminate_1(obj)
{
if(click1==null)
{
click1=obj;
}
else
{
click2=obj;
if(()==())
{
//判断是否在同一行
if(()==())
{
//在同一行上,列相邻
if(()-()==1||()-()==1)
{
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
//消除一对加45分
Grade+=45;
("当前分数:"+Grade);
}
if(()-()1)
{
vari=0;
//从列小的牌的下一位置开始循环到列大的牌的前一位置
for(i=()+1;();i++)
{
if(BoardArray[()][i].getHide()!="none")
{
break;
}
}
//如果循环到i==(),则证明中间不隔其他牌
if(i==())
{
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
//消除一对加45分
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
if(()-()1)
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[()][i].getHide()!="none")
{
break;
}
}
if(i==())
{
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
//消除一对加45分
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
//判断是否在同一列
elseif(()==())
{
//判断在同一列上,行是否相邻
if(()-()==1||()-()==1)
{
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
if(()-()1)
{
vari=0;
//从行小的牌的下一位置开始循环到行大的牌的前一位置
for(i=()+1;();i++)
{
if(BoardArray[i][()].getHide()!="none")
{
break;
}
}
if(i==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
if(()-()1)
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[i][()].getHide()!="none")
{
break;
}
}
if(i==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!")
}
}
}
//***************************************************************
//消除不再同行同列的***一个拐角(两张牌之间只有两条连线)
//***************************************************************
if(()!=()()!=())
{
if(()-()=1)
{
if(()-()=1)
{
//判断角1是否为空(没有牌)——路径1
if(BoardArray[()][()].getHide()=="none")
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[i][()].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[()][j].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
//判断角2是否为空(没有牌)——路径2
elseif(BoardArray[()][()].getHide()=="none")
{
alert("判断角2是否为空(没有牌)——路径2");
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[()][i].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[j][()].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
else
{
alert("不能消除!");
}
}
if(()-()=1)
{
//判断角1是否为空(没有牌)——路径1
if(BoardArray[()][()].getHide()=="none")
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[()][i].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[j][()].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
//判断角2是否为空(没有牌)——路径2
elseif(BoardArray[()][()].getHide()=="none")
{
alert("//判断角2是否为空(没有牌)——路径2");
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[i][()].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[()][j].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
else
{
alert("不能消除!");
}
}
}
if(()-()=1)
{
if(()-()=1)
{
//角1为空(没有牌)——路径1
if(BoardArray[()][()].getHide()=="none")
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[i][()].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[()][j].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
//角2为空(没有牌)——路径2
elseif(BoardArray[()][()].getHide()=="none")
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[()][i].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[j][()].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
else
{
alert("不能消除!");
}
}
if(()-()=1)
{
//角1为空(没有牌)——路径1
if(BoardArray[()][()].getHide()=="none")
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[()][i].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[j][()].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
//角2为空(没有牌)——路径2
elseif(BoardArray[()][()].getHide()=="none")
{
vari=0;
for(i=()+1;();i++)
{
if(BoardArray[i][()].getHide()!="none")
{
break;
}
}
if(i==())
{
varj=0;
for(j=()+1;();j++)
{
if(BoardArray[()][j].getHide()!="none")
{
break;
}
}
if(j==())
{
//调用setHide方法隐藏它们(消除了)
BoardArray[()][()].setHide(true);
BoardArray[()][()].setHide(true);
Grade+=45;
("当前分数:"+Grade);
}
else
{
alert("不能消除!");
}
}
}
else
{
alert("不能消除!");
}
}
}
}
//***************************************************************
//消除第三种情况的(两牌之间的连线有两个拐角),使用分类判断法,小的们,大王写不下去了,你们接上
//***************************************************************
//if()
//{}
}
click1=null;
click2=null;
}
}
//调用初始化牌面方法
Update();
/script
如果出现什么bug,请留言通知大王。谢谢。大王要去打妖怪了。