金馆长连连看——木有美化版
代码:2000+ 当然里面重复性代码很多
代码链接:http://download.csdn.net/detail/u013938944/8403107
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>连连看</title>
<style>
body
{
padding:0;
margin:0;
}
table
{
border-collapse:collapse;
}
td{
with:80px;
height:80px;
padding:0;
margin:0;
text-align:center;
}
tr{
width:480px;
height:80px;
padding:0;
margin:0;
}
</style>
<script language="javascript" type="text/javascript">
var zuobiao;
var quanjushuzu = new Array(new Array(3),new Array(3));
var arr0 = new Array(3);
var arr1 = new Array(3);
var quanjushu = 0;
var panduan;
function init()
{
var tab = document.getElementById("mytab");
for(var i = 0; i < 6; i++)
{
for(var j = 0; j <6; j++)
{
tab.rows[i].cells[j].innerHTML="<img src='0.png'/>";
tab.rows[i].cells[j].value=0;
tab.rows[i].cells[j].zuobiao = "i"+"j";
}
}
for( var num = 0; num<2;num++)
{
chuxian(2);
chuxian(4);
chuxian(8);
chuxian(16);
chuxian(16);
chuxian(32);
chuxian(32);
chuxian(64);
chuxian(128);
chuxian(128);
}
}
function chuxian(number)
{
<!--一定要再次声明获取表格的id,在Init()函数里声明的id对象引用是局部变量,如果在函数外面声明会出现引用不到的情况,因为此时还没有加载完表格,没有此id对象-->
var tab = document.getElementById("mytab");
var hang = Math.random()*6;
hang = Math.floor(hang);
var lie = Math.random()*6;
lie = Math.floor(lie);
if(tab.rows[hang].cells[lie].value == 0) {
tab.rows[hang].cells[lie].innerHTML="<img src='"+number+".png'/>";
tab.rows[hang].cells[lie].value= number;
}
else{
chuxian(number);
}
}
function dianji(e)
{
var tab = document.getElementById("mytab");
var x = e.clientX;
var y = e.clientY;
var hangnum = Math.floor(y/80);
var lienum = Math.floor(x/80) ;
if(tab.rows[hangnum].cells[lienum].value != 0)
{
var evalue = tab.rows[hangnum].cells[lienum].value;
tab.rows[hangnum].cells[lienum].innerHTML="<img src='"+evalue+"1.png' ;/>";
if (quanjushu <2)
{
quanjushuzu[quanjushu][0] = evalue;
quanjushuzu[quanjushu][1] = hangnum;
quanjushuzu[quanjushu][2] = lienum;
quanjushu++;
if(quanjushu ==2)
{
if(quanjushuzu[0][0]!=quanjushuzu[1][0])
{
tab.rows[quanjushuzu[0][1]].cells[quanjushuzu[0][2]].innerHTML="<img src='"+quanjushuzu[0][0]+".png'/>";
tab.rows[quanjushuzu[1][1]].cells[quanjushuzu[1][2]].innerHTML="<img src='"+quanjushuzu[1][0]+".png' />";
}
else
{
var panduan0 = lianxian0(evalue);
if (!panduan0)
{
var panduan1= lianxian1(evalue);
if(!panduan1)
{
//alert("cant!!!!!!!!");
}
}
}
quanjushu=0;
}
}
}
}
function lianxian0(numvalue)
{
var tab = document.getElementById("mytab");
var minnum = 0;
var x0 = quanjushuzu[0][1];
var x1 = quanjushuzu[1][1];
var y0 = quanjushuzu[0][2];
var y1 = quanjushuzu[1][2];
if (x0 == x1 )
{
for(minnum = Math.min(y0,y1)+1;minnum < Math.max(y0,y1);minnum++)
{
//用来判断这一行是否有障碍
if(tab.rows[x0].cells[minnum].value !=0)
{
//用来判断直连是否成功
break;
}
}
if(minnum == Math.max(y0,y1))
{
tab.rows[x0].cells[Math.max(y0,y1)].innerHTML="<img src='0.png'/>";
//要记得消去原有图片给位置标记的值value
tab.rows[x0].cells[Math.max(y0,y1)].value = 0;
tab.rows[x0].cells[Math.min(y0,y1)].innerHTML="<img src='0.png'/>";
tab.rows[x0].cells[Math.min(y0,y1)].value = 0;
}
else
{
lianxian2(numvalue);
}
} else if(y0 ==y1 )
{
for(minnum = Math.min(x0,x1)+1;minnum < Math.max(x0,x1);minnum++)
{
if(tab.rows[minnum].cells[y0].value !=0)
{
break;
}
}
if(minnum == Math.max(x0,x1))
{
tab.rows[Math.max(x0,x1)].cells[y0].innerHTML="<img src='0.png'/>";
tab.rows[Math.max(x0,x1)].cells[y0].value = 0;
tab.rows[Math.min(x0,x1)].cells[y0].innerHTML="<img src='0.png'/>";
tab.rows[Math.min(x0,x1)].cells[y0].value = 0;
}
else
{
lianxian2(numvalue);
}
}
else
{
return 0;
}
return 1;
}
function lianxian1(numvalue)
{
var tab = document.getElementById("mytab");
var minnumx = 0;
var minnumy = 0;
var flag = 0;
var x0 = quanjushuzu[0][1];
var x1 = quanjushuzu[1][1];
var y0 = quanjushuzu[0][2];
var y1 = quanjushuzu[1][2];
if(x0 > x1 && y0 < y1)
{
for(var qingjing = 0; qingjing <2;qingjing++)
{
if(qingjing ==0)
{
//两个循环,第一个循环判断条件是有等
flagx = 0;
flagy = 0;
for(minnumx = x0 -1; minnumx >= x1; minnumx--)
{
if(tab.rows[minnumx].cells[y0].value !=0)
{
flagx = 1;
break;
}
}
if(flagx ==0)
{
for(minnumy = y0+1; minnumy < y1; minnumy++)
{
if(tab.rows[x1].cells[minnumy].value !=0)
{
flagy = 1;
break;
}
}
if(flagy ==0)
{
tab.rows[x0].cells[y0].innerHTML="<img src='0.png'/>";
tab.rows[x0].cells[y0].value = 0;
tab.rows[x1].cells[y1].innerHTML="<img src='0.png'/>";
tab.rows[x1].cells[y1].value = 0;
//flag = 1;
return 1;
}
}
}else
{
//两个循环,第一个循环判断条件是有等于号的
flagx =0;
flagy =0;
for(minnumy = y0+1; minnumy <= y1; minnumy++)
{
if(tab.rows[x0].cells[minnumy].value !=0)
{
flagy =1;
break;
}
}
if(flagy == 0)
{
for(minnumx = x0 -1; minnumx >x1; minnumx--)
{
if(tab.rows[minnumx].cells[y1].value !=0)
{
flagx = 1;
break;
}
}
if(flagx == 0)
{
//alert("x0 > x1 && y0 < y1 2" );
tab.rows[x0].cells[y0].innerHTML="<img src='0.png'/>";
tab.rows[x0].cells[y0].value = 0;
tab.rows[x1].cells[y1].innerHTML="<img src='0.png'/>";
tab.rows[x1].cells[y1].value = 0;
//flag = 1;
return 1;
}
}
}
}
}else if(x0 > x1 && y0 > y1)
{
//全部重新改************************************************
for(var qingjing = 0; qingjing <2;qingjing++)
{
if(qingjing ==0)
{
//两个循环,第一个循环判断条件是有等
flagx = 0;
flagy = 0;
for(minnumx = x0 -1; minnumx >= x1; minnumx--)
{
if(tab.rows[minnumx].cells[y0].value !=0)
{
flagx = 1;
break;
}
}
if (flagx == 0 )
{
for(minnumy = y0-1; minnumy > y1; minnumy--)
{
if(tab.rows[x1].cells[minnumy].value != 0)
{
flagy = 1;
break;
}
}
if (flagy == 0)
{
//alert("x0 > x1 && y0 > y1 1");
tab.rows[x0].cells[y0].innerHTML="<img src='0.png'/>";
tab.rows[x0].cells[y0].value = 0;
tab.rows[x1].cells[y1].innerHTML="<img src='0.png'/>";
tab.rows[x1].cells[y1].value = 0;
//flag = 1;
return 1;
}
}
}else
{
//两个循环,第一个循环判断条件是有等于号的
flagx =0;
flagy = 0;
for(minnumy = y0-1; minnumy >= y1; minnumy--)
{
if(tab.rows[x0].cells[minnumy].value !=0)
{
flagy = 1;
break;
}
}
if(flagy ==0 )
{
for(minnumx = x0 -1; minnumx >x1; minnumx--)
{
if(tab.rows[minnumx].cells[y1].value !=0)
{
flagx = 1;
break;
}
}
if(flagx ==0)
{
//alert("x0 > x1 && y0 > y1 2");
tab.rows[x0].cells[y0].innerHTML="<img src='0.png'/>";
tab.rows[x0].cells[y0].value = 0;
tab.rows[x1].cells[y1].innerHTML="<img src='0.png'/>";
tab.rows[x1].cells[y1].value = 0;
//flag = 1;
return 1;
}
}
}
}
}else if(x0 < x1 && y0 > y1)
{
for(var qingjing = 0; qingjing <2;qingjing++)
{
if(qingjing ==0)
{
//两个循环,第一个循环判断条件是有等
flagx = 0;
flagy = 0;
for(minnumx = x0 +1; minnumx <= x1; minnumx++)
{
if(tab.rows[minnumx].cells[y0].value !=0)
{
flagx = 1;
break;
}
}
if(flagx == 0)
{
for(minnumy = y0-1; minnumy > y1; minnumy--)
{
if(tab.rows[x1].cells[minnumy].value !=0)
{
flagy = 1;
break;
}
}
if(flagy == 0)
{
//alert('x0 < x1 && y0 > y1 1');
tab.rows[x0].cells[y0].innerHTML="<img src='0.png'/>";
tab.rows[x0].cells[y0].value = 0;
tab.rows[x1].cells[y1].innerHTML="<img src='0.png'/>";
tab.rows[x1].cells[y1].value = 0;
flag = 1;
return 1;
}
}
}else
{
flagx =0;
flagy = 0;
//两个循环,第一个循环判断条件是有等于号的
for(minnumy = y0-1; minnumy >= y1; minnumy--)
{
if(tab.rows[x0].cells[minnumy].value !&