[收藏]连连看自动寻道算法

连连看自动寻道算法 
onClipEvent (load) 

_root.yb._alpha 
= 0
var zt 
= new Array(); 
var jilu1 
= new Array(); 
var jilu2 
= new Array(); 
var jilu3 
= new Array(); 
var jilu4 
= new Array(); 
= 0
val 
= 1
for (i=0; i<12; i++
for (j=0; j<12; j++
= attachMovie("ttt""ttt"+val, val); 
a._x 
= j*32-50
a._y 
= i*32-80
a.onPress 
= pres; 
a.onRollOut 
= rele; 
a.n 
= val; 
zt[val] 
= 1
//初始为第一帧; 
val++
}
 
}
 
for (i=1; i<=12; i++
tellTarget (
"ttt"+i) 
gotoAndStop(
9); 
}
 
zt[i] 
= 9
}
 
for (i=133; i<=144; i++
tellTarget (
"ttt"+i) 
gotoAndStop(
9); 
}
 
zt[i] 
= 9
}
 
for (i=1; i<=133; i=i+12
tellTarget (
"ttt"+i) 
gotoAndStop(
9); 
}
 
zt[i] 
= 9
}
 
for (i=12; i<=144; i=i+12
tellTarget (
"ttt"+i) 
gotoAndStop(
9); 
}
 
zt[i] 
= 9
}
 
for (i=1; i<=137; i++
if (zt[i] != 9
ra 
= random(10)+1
zt[i] 
= ra; 
selectframe(ra); 
}
 
}
 
//列出矩阵; 
function pres() 
= this.n; 
if (b != 0
_root.yb._alpha 
= 0
//c2=this._currentframe; 
first = b; 
second 
= this.n; 
ss
=zt[second]; 
if(bb==ss)
//记录判断点类型; 
line1_x = getProperty("ttt"+first, _x); 
line1_y 
= getProperty("ttt"+first, _y); 
line2_x 
= getProperty("ttt"+second, _x); 
line2_y 
= getProperty("ttt"+second, _y); 
if (line1_x == line2_x) 
line4 
= "同一列"
_root.control.panduan_lie(); 
}
 else if (line1_y == line2_y) 
_root.control.panduan_hang(); 
line4 
= "同一行"
}
 else 
_root.control.panduan_cuowei(); 
line4 
= "错开位"
}
 
}
 
//判断两个点是否在同一列上; 
//c=this._currentframe; 
= 0
}
 else 
_root.yb._alpha 
= 50
_root.yb._x 
= this._x+546
_root.yb._y 
= this._y+5
= this.n; 
bb
=zt[b]; 
//this.gotoandstop(2); 
= this._currentframe; 
}
 
}
 
function panduan_lie() 

= 1000
br 
= 0
//两点在同一列上的处理函数; 
if (math.abs(first-second) == 12
_root.control.ok(); 
}
 else 
//
line1 = Math.floor(first/12); 
line2 
= Math.floor(second/12); 
for (i=1; i<=12; i++
jilu1[i] 
= line1*12+i; 
jilu2[i] 
= line2*12+i; 
}
 
for (i=1; i<=12; i++
//
if (jilu1[i] != first) 
if (zt[jilu1[i]] == 9 and zt[jilu2[i]] == 9
= jiance_lie1(jilu1[i], jilu2[i]); 
if (l>0
if (l<g) 
= l; 
g1 
= jilu1[i]; 
g2 
= jilu2[i]; 
}
 
//_root.control.ok(); 
}
 
}
 
}
 else 
= jiance_lie2(jilu1[i], jilu2[i]); 
if (l == 100
_root.control.shuxian0(jilu1[i], jilu2[i]); 
br 
= 1
break
}
 
}
 
}
 
if (g != 1000 and br == 0
guaixian2_lie(g1, g2); 
}
 
//
}
 
//
}
 
function panduan_hang() 

= 1000
br 
= 0
//两点在同一行上的处理函数; 
if (math.abs(first-second) == 1
_root.control.ok(); 
}
 else 
line1 
= first%12
line2 
= second%12
for (i=1; i<=12; i++
jilu1[i] 
= line1+(i-1)*12
jilu2[i] 
= line2+(i-1)*12
}
 
for (i=1; i<=12; i++
if (jilu1[i] != first) 
if (zt[jilu1[i]] == 9 and zt[jilu2[i]] == 9
= jiance_hen1(jilu1[i], jilu2[i]); 
if (f>0
if (f<g) 
= f; 
g1 
= jilu1[i]; 
g2 
= jilu2[i]; 
}
 
}
 
}
 
}
 else 
= jiance_hen2(jilu1[i], jilu2[i]); 
if (f == 100
_root.control.henxiang0(jilu1[i], jilu2[i]); 
br 
= 1
break
}
 
}
 
}
 
}
 
if (g != 1000 and br == 0
guaixian2_hen(g1, g2); 
}
 
}
 
function jiance_hen1(x, y) 

//检测两点是否为通路的函数; 
p1 = 0
p2 
= 0
p3 
= 0
co 
= 0
if (x>y) 
//
dis = x-y-1
for (z=1; z<=dis; z++
= x-z; 
if (zt[q] == 9
p1
++
}
 
}
 
}
 else 
dis 
= y-x-1
for (z=1; z<=dis; z++
= y-z; 
if (zt[q] == 9
p1
++
}
 
}
 
}
 
//
if (p1 == dis) 
p1 
= 100
}
 
//横向检测;<- 
if (first>x) 
dis 
= (first-x)/12-1
if (dis == 0
p2 
= 100
}
 else 
for (z=1; z<=dis; z++
= first-z*12
if (zt[q] == 9
p2
++
}
 
}
 
}
 
}
 else 
dis 
= (x-first)/12-1
if (dis == 0
p2 
= 100
}
 else 
for (z=1; z<=dis; z++
= x-z*12
if (zt[q] == 9
p2
++
}
 
}
 
}
 
}
 
if (p2 == dis) 
p2 
= 100
}
 
if (second>y) 
dis 
= (second-y)/12-1
if (dis == 0
p3 
= 100
}
 else 
for (z=1; z<=dis; z++
= second-z*12
if (zt[q] == 9
p3
++
}
 
}
 
}
 
}
 else 
dis 
= (y-second)/12-1
if (dis == 0
p3 
= 100
}
 else 
for (z=1; z<=dis; z++
= y-z*12
if (zt[q] == 9
p3
++
}
 
}
 
}
 
}
 
if (p3 == dis) 
p3 
= 100
}
 
= p1+p2+p3; 
if (p == 300
co 
= math.abs(x-y)+math.abs(second-y)/12+math.abs(first-x)/12
}
 
return (co); 
}
 
function jiance_hen2(x, y) 

p4 
= 0
if (x>y) 
dis 
= x-y-1
for (z=1; z<=dis; z++
= x-z; 
if (zt[q] == 9
p4
++
}
 
}
 
}
 else 
dis 
= y-x-1
for (z=1; z<=dis; z++
= y-z; 
if (zt[q] == 9
p4
++
}
 
}
 
}
 
if (p4 == dis) 
p4 
= 100
}
 
return (p4); 
}
 
function jiance_lie1(x, y) 

p1 
= 0
p2 
= 0
p3 
= 0
co 
= 0
if (x>y) 
dis 
= (x-y)/12-1
for (z=1; z<=dis; z++
= x-z*12
if (zt[q] == 9
p1
++
}
 
}
 
}
 else 
dis 
= (y-x)/12-1
for (z=1; z<=dis; z++
= y-z*12
if (zt[q] == 9
p1
++
}
 
}
 
}
 
if (p1 == dis) 
p1 
= 100
}
 
//纵向检测《--- 
if (first>x) 
dis 
= first-x-1
for (z=1; z<=dis; z++
= first-z; 
if (zt[q] == 9
p2
++
}
 
}
 
}
 else 
dis 
= x-first-1
for (z=1; z<=dis; z++
= x-z; 
if (zt[q] == 9
p2
++
}
 
}
 
}
 
if (p2 == dis) 
p2 
= 100
}
 
if (second>y) 
dis 
= second-y-1
for (z=1; z<=dis; z++
= second-z; 
if (zt[q] == 9
p3
++
}
 
}
 
}
 else 
dis 
= y-second-1
for (z=1; z<=dis; z++
= y-z; 
if (zt[q] == 9
p3
++
}
 
}
 
}
 
if (p3 == dis) 
p3 
= 100
}
 
= p1+p2+p3; 
if (p == 300
co 
= math.abs(x-y)/12+math.abs(second-y)+math.abs(first-x); 
}
 
return (co); 
}
 
function jiance_lie2(x, y) 

p4 
= 0
if (x>y) 
dis 
= (x-y)/12-1
for (z=1; z<=dis; z++
= x-z*12
if (zt[q] == 9
p4
++
}
 
}
 
}
 else 
dis 
= (y-x)/12-1
for (z=1; z<=dis; z++
= y-z*12
if (zt[q] == 9
p4
++
}
 
}
 
}
 
if (p4 == dis) 
p4 
= 100
}
 
return (p4); 
}
 
function panduan_cuowei() 

= 1000
gg 
= 1000
br 
= 0
= 0
= 0
line1 
= first%12
line2 
= second%12
line3 
= math.floor(first/12); 
line4 
= math.floor(second/12); 
for (i=1; i<=12; i++
jilu1[i] 
= line1+(i-1)*12
jilu2[i] 
= line2+(i-1)*12
//HANG 
jilu3[i] = line3*12+i; 
jilu4[i] 
= line4*12+i; 
//LIE 
}
 
for (i=1; i<=12; i++
if (jilu1[i] == first) 
if (zt[jilu2[i]] == 9
= jiance_cuowei01(jilu2[i]); 
if (w == 200
guaixian1_hen1(jilu2[i]); 
_root.control.ok(); 
br 
= 1
break
}
 
}
 
}
 else if (jilu2[i] == second) 
if (zt[jilu1[i]] == 9
= jiance_cuowei02(jilu1[i]); 
if (w == 200
guaixian1_hen2(jilu1[i]); 
_root.control.ok(); 
br 
= 1
break
}
 
}
 
}
 
if (zt[jilu1[i]] == 9 and zt[jilu2[i]] == 9
= jiance_hen1(jilu1[i], jilu2[i]); 
}
 
if (j>0
if (j<g) 
= j; 
g1 
= jilu1[i]; 
g2 
= jilu2[i]; 
}
 
//_root.control.ok(); 
}
 else 
if (zt[jilu3[i]] == 9 and zt[jilu4[i]] == 9
= jiance_lie1(jilu3[i], jilu4[i]); 
}
 
if (k>0
if (k<gg) 
gg 
= k; 
g3 
= jilu3[i]; 
g4 
= jilu4[i]; 
}
 
}
 
}
 
}
 
if (br == 0
if (g != 1000
guaixian2_hen(g1, g2); 
br 
= 1
}
 else if (gg != 1000
guaixian2_lie(g3, g4); 
}
 
}
 
}
 
function jiance_cuowei01(x) 

//错位状态1; 
p1 = 0
p2 
= 0
dis 
= math.abs(x-first)-1
if (dis == 0
p1 
= 100
}
 else 
if (x>first) 
for (z=1; z<=dis; z++
= x-z; 
if (zt[q] == 9
p1
++
}
 
}
 
}
 else 
for (z=1; z<=dis; z++
= first-z; 
if (zt[q] == 9
p1
++
}
 
}
 
}
 
if (p1 == dis) 
p1 
= 100
}
 
}
 
dis 
= math.abs((second-x))/12-1
if (dis == 0
p2 
== 100
}
 else 
if (second>x) 
for (z=1; z<=dis; z++
= second-z*12
if (zt[q] == 9
p2
++
}
 
}
 
}
 else 
dis 
= math.abs(dis); 
for (z=1; z<=dis; z++
= x-z*12
if (zt[q] == 9
p2
++
}
 
}
 
}
 
}
 
if (p2 == dis) 
p2 
= 100
}
 
return (p1+p2); 
}
 
function jiance_cuowei02(x) 

//错位状态2; 
p1 = 0
p2 
= 0
dis 
= math.abs(x-second)-1
if (dis == 0
p1 
= 100
}
 else 
if (x>second) 
for (z=1; z<=dis; z++
= x-z; 
if (zt[q] == 9
p1
++
}
 
}
 
}
 else 
for (z=1; z<=dis; z++
= second-z; 
if (zt[q] == 9
p1
++
}
 
}
 
}
 
if (p1 == dis) 
p1 
= 100
}
 
}
 
dis 
= math.abs((first-x))/12-1
if (dis == 0
p2 
== 100
}
 else 
if (first>x) 
for (z=1; z<=dis; z++
= first-z*12
if (zt[q] == 9
p2
++
}
 
}
 
}
 else 
dis 
= math.abs(dis); 
for (z=1; z<=dis; z++
= x-z*12
if (zt[q] == 9
p2
++
}
 
}
 
}
 
}
 
if (p2 == dis) 
p2 
= 100
}
 
return (p1+p2); 
}
 
function henxiang0(x, y) 

//横线0拐点画线函数; 
//tellTarget ("ttt"+y) { 
// gotoAndPlay(10); 
//
if (x>y) 
dis 
= x-y-1
for (z=1; z<=dis; z++
= x-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 else 
dis 
= y-x-1
for (z=1; z<=dis; z++
= y-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 
_root.control.ok(); 
}
 
function shuxian0(x, y) 

//竖线0拐点画线函数; 
if (x>y) 
dis 
= (x-y)/12-1
for (z=1; z<=dis; z++
= x-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 else 
dis 
= (y-x)/12-1
for (z=1; z<=dis; z++
= y-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
_root.control.ok(); 
}
 
function guaixian1_hen1(x) 

if (x>first and x<second) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
19); 
}
 
}
 else if (x>first and x>second) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
25); 
}
 
}
 else if (x<first and x<second) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
16); 
}
 
}
 else 
tellTarget (
"ttt"+x) 
gotoAndPlay(
22); 
}
 
}
 
dis 
= math.abs(x-first)-1
if (dis != 0
if (x>first) 
for (z=1; z<=dis; z++
= x-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 else 
for (z=1; z<=dis; z++
= first-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 
}
 
dis 
= math.abs((second-x))/12-1
if (dis != 0
if (second>x) 
for (z=1; z<=dis; z++
= second-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 else 
dis 
= math.abs(dis); 
for (z=1; z<=dis; z++
= x-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
}
 
}
 
function guaixian1_hen2(x) 

if (x>first and x<second) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
22); 
}
 
}
 else if (x>first and x>second) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
25); 
}
 
}
 else if (x<first and x<second) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
16); 
}
 
}
 else 
tellTarget (
"ttt"+x) 
gotoAndPlay(
19); 
}
 
}
 
dis 
= math.abs(x-second)-1
if (dis != 0
if (x>second) 
for (z=1; z<=dis; z++
= x-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 else 
for (z=1; z<=dis; z++
= second-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 
}
 
dis 
= math.abs((first-x))/12-1
if (dis != 0
if (first>x) 
for (z=1; z<=dis; z++
= first-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 else 
dis 
= math.abs(dis); 
for (z=1; z<=dis; z++
= x-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
}
 
}
 
function guaixian2_hen(x, y) 

if (x<first and y<second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
16); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
19); 
}
 
}
 else if (x<first and y<second and x>y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
19); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
16); 
}
 
}
 else if (x>first and y>second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
22); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
25); 
}
 
}
 else if (x>first and y>second and x>y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
25); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
22); 
}
 
}
 else if (x>first and y<second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
22); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
19); 
}
 
}
 else if (x>first and y<second and x>y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
25); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
16); 
}
 
}
 else if (x<first and y>second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
16); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
25); 
}
 
}
 else 
tellTarget (
"ttt"+x) 
gotoAndPlay(
19); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
22); 
}
 
}
 
if (x>y) 
dis 
= x-y-1
for (z=1; z<=dis; z++
= x-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 else 
dis 
= y-x-1
for (z=1; z<=dis; z++
= y-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 
if (first>x) 
dis 
= (first-x)/12-1
if (dis != 0
for (z=1; z<=dis; z++
= first-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
}
 else 
dis 
= (x-first)/12-1
if (dis != 0
for (z=1; z<=dis; z++
= x-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
}
 
if (second>y) 
dis 
= (second-y)/12-1
if (dis != 0
for (z=1; z<=dis; z++
= second-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
}
 else 
dis 
= (y-second)/12-1
if (dis != 0
for (z=1; z<=dis; z++
= y-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
}
 
_root.control.ok(); 
}
 
function guaixian2_lie(x, y) 

if (x<first and y<second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
16); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
22); 
}
 
}
 else if (x<first and y<second and x>y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
22); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
16); 
}
 
}
 else if (x>first and y>second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
19); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
25); 
}
 
}
 else if (x>first and y>second and x>y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
25); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
19); 
}
 
}
 else if (x>first and y<second and x>y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
25); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
16); 
}
 
}
 else if (x>first and y<second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
19); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
22); 
}
 
}
 else if (x<first and y>second and x<y) 
tellTarget (
"ttt"+x) 
gotoAndPlay(
16); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
25); 
}
 
}
 else 
tellTarget (
"ttt"+x) 
gotoAndPlay(
22); 
}
 
tellTarget (
"ttt"+y) 
gotoAndPlay(
19); 
}
 
}
 
if (x>y) 
dis 
= (x-y)/12-1
for (z=1; z<=dis; z++
= x-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 else 
dis 
= (y-x)/12-1
for (z=1; z<=dis; z++
= y-z*12
tellTarget (
"ttt"+q) 
gotoAndPlay(
13); 
}
 
}
 
}
 
if (first>x) 
dis 
= first-x-1
for (z=1; z<=dis; z++
= first-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 else 
dis 
= x-first-1
for (z=1; z<=dis; z++
= x-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 
if (second>y) 
dis 
= second-y-1
for (z=1; z<=dis; z++
= second-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 else 
dis 
= y-second-1
for (z=1; z<=dis; z++
= y-z; 
tellTarget (
"ttt"+q) 
gotoAndPlay(
10); 
}
 
}
 
}
 
_root.control.ok(); 
}
 
function selectframe(number) 

switch (number) 
case 1 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
1); 
}
 
break
case 2 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
2); 
}
 
break
case 3 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
3); 
}
 
break
case 4 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
4); 
}
 
break
case 5 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
5); 
}
 
break
case 6 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
6); 
}
 
break
case 7 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
7); 
}
 
break
case 8 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
8); 
}
 
break
case 9 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
28); 
}
 
break
case 10 : 
tellTarget (
"ttt"+i) 
gotoAndStop(
29); 
}
 
break
}
 
}
 
function ok() 

//可消除的处理函数; 
tellTarget ("ttt"+first) 
gotoAndStop(
9); 
}
 
zt[first] 
= 9
tellTarget (
"ttt"+second) 
gotoAndStop(
9); 
}
 
zt[second] 
= 9
= zt[second]; 
}
 
}
 
//julu数组为待检测点,ZT数组为各点状态; 
//9:消除;10:横线;13:竖线;16:「;19:7;22:L;25:」; 

基本思路就是分两种情况考虑寻道算法, 

为每一个小牌取个名字,(我用程序生成,并用数组记录下每个牌的状态,是无牌状态还是有牌状态) 

一是在同行同列上 

只要判断从起点到终点的所有牌的状态是否都为无牌状态,也就是起点牌到终点牌是否是连通的 

二是只有一个拐点 

先检测它们的所在行列所在的交汇点,判断他们的交绘点是否为无牌状态,如果是则继续判断从该交绘点分别到起点和终点间是否为连通,这时的方法同第一种方法一样. 

三是有两个拐点 

同样先判断这两个点所在行和列的两个交汇点,先判断两个交汇点间是否为空,若是则继续判断两个交汇点到起点终点是否为连通,这两中判断也可以分解为是第一种状态来进行判断 


posted on 2006-10-28 16:34  散步的蠕虫  阅读(278)  评论(1编辑  收藏  举报

导航