flash连连看自动寻道算法

  
  
  
  
  1. onClipEvent (load) {  
  2. _root.yb._alpha = 0;  
  3. var zt = new Array();  
  4. var jilu1 = new Array();  
  5. var jilu2 = new Array();  
  6. var jilu3 = new Array();  
  7. var jilu4 = new Array();  
  8. b = 0;  
  9. val = 1;  
  10. for (i=0; i<12; i++) {  
  11. for (j=0; j<12; j++) {  
  12. a = attachMovie("ttt""ttt"+val, val);  
  13. a._x = j*32-50;  
  14. a._y = i*32-80;  
  15. a.onPress = pres;  
  16. a.onRollOut = rele;  
  17. a.n = val;  
  18. zt[val] = 1;  
  19. //初始为第一帧;  
  20. val++;  
  21. }  
  22. }  
  23. for (i=1; i<=12; i++) {  
  24. tellTarget ("ttt"+i) {  
  25. gotoAndStop(9);  
  26. }  
  27. zt[i] = 9;  
  28. }  
  29. for (i=133; i<=144; i++) {  
  30. tellTarget ("ttt"+i) {  
  31. gotoAndStop(9);  
  32. }  
  33. zt[i] = 9;  
  34. }  
  35. for (i=1; i<=133; i=i+12) {  
  36. tellTarget ("ttt"+i) {  
  37. gotoAndStop(9);  
  38. }  
  39. zt[i] = 9;  
  40. }  
  41. for (i=12; i<=144; i=i+12) {  
  42. tellTarget ("ttt"+i) {  
  43. gotoAndStop(9);  
  44. }  
  45. zt[i] = 9;  
  46. }  
  47. for (i=1; i<=137; i++) {  
  48. if (zt[i] != 9) {  
  49. ra = random(10)+1;  
  50. zt[i] = ra;  
  51. selectframe(ra);  
  52. }  
  53. }  
  54. //列出矩阵;  
  55. function pres() {  
  56. t = this.n;  
  57. if (b != 0) {  
  58. _root.yb._alpha = 0;  
  59. //c2=this._currentframe;  
  60. first = b;  
  61. second = this.n;  
  62. ss=zt[second];  
  63. if(bb==ss){  
  64. //记录判断点类型;  
  65. line1_x = getProperty("ttt"+first, _x);  
  66. line1_y = getProperty("ttt"+first, _y);  
  67. line2_x = getProperty("ttt"+second, _x);  
  68. line2_y = getProperty("ttt"+second, _y);  
  69. if (line1_x == line2_x) {  
  70. line4 = "同一列";  
  71. _root.control.panduan_lie();  
  72. else if (line1_y == line2_y) {  
  73. _root.control.panduan_hang();  
  74. line4 = "同一行";  
  75. else {  
  76. _root.control.panduan_cuowei();  
  77. line4 = "错开位";  
  78. }  
  79. }  
  80. //判断两个点是否在同一列上;  
  81. //c=this._currentframe;  
  82. b = 0;  
  83. else {  
  84. _root.yb._alpha = 50;  
  85. _root.yb._x = this._x+546;  
  86. _root.yb._y = this._y+5;  
  87. b = this.n;  
  88. bb=zt[b];  
  89. //this.gotoandstop(2);  
  90. c = this._currentframe;  
  91. }  
  92. }  
  93. function panduan_lie() {  
  94. g = 1000;  
  95. br = 0;  
  96. //两点在同一列上的处理函数;  
  97. if (math.abs(first-second) == 12) {  
  98. _root.control.ok();  
  99. else {  
  100. //1  
  101. line1 = Math.floor(first/12);  
  102. line2 = Math.floor(second/12);  
  103. for (i=1; i<=12; i++) {  
  104. jilu1[i] = line1*12+i;  
  105. jilu2[i] = line2*12+i;  
  106. }  
  107. for (i=1; i<=12; i++) {  
  108. //2  
  109. if (jilu1[i] != first) {  
  110. if (zt[jilu1[i]] == 9 and zt[jilu2[i]] == 9) {  
  111. l = jiance_lie1(jilu1[i], jilu2[i]);  
  112. if (l>0) {  
  113. if (l<g) {  
  114. g = l;  
  115. g1 = jilu1[i];  
  116. g2 = jilu2[i];  
  117. }  
  118. //_root.control.ok();  
  119. }  
  120. }  
  121. else {  
  122. l = jiance_lie2(jilu1[i], jilu2[i]);  
  123. if (l == 100) {  
  124. _root.control.shuxian0(jilu1[i], jilu2[i]);  
  125. br = 1;  
  126. break;  
  127. }  
  128. }  
  129. }  
  130. if (g != 1000 and br == 0) {  
  131. guaixian2_lie(g1, g2);  
  132. }  
  133. //2  
  134. }  
  135. //1  
  136. }  
  137. function panduan_hang() {  
  138. g = 1000;  
  139. br = 0;  
  140. //两点在同一行上的处理函数;  
  141. if (math.abs(first-second) == 1) {  
  142. _root.control.ok();  
  143. else {  
  144. line1 = first%12;  
  145. line2 = second%12;  
  146. for (i=1; i<=12; i++) {  
  147. jilu1[i] = line1+(i-1)*12;  
  148. jilu2[i] = line2+(i-1)*12;  
  149. }  
  150. for (i=1; i<=12; i++) {  
  151. if (jilu1[i] != first) {  
  152. if (zt[jilu1[i]] == 9 and zt[jilu2[i]] == 9) {  
  153. f = jiance_hen1(jilu1[i], jilu2[i]);  
  154. if (f>0) {  
  155. if (f<g) {  
  156. g = f;  
  157. g1 = jilu1[i];  
  158. g2 = jilu2[i];  
  159. }  
  160. }  
  161. }  
  162. else {  
  163. f = jiance_hen2(jilu1[i], jilu2[i]);  
  164. if (f == 100) {  
  165. _root.control.henxiang0(jilu1[i], jilu2[i]);  
  166. br = 1;  
  167. break;  
  168. }  
  169. }  
  170. }  
  171. }  
  172. if (g != 1000 and br == 0) {  
  173. guaixian2_hen(g1, g2);  
  174. }  
  175. }  
  176. function jiance_hen1(x, y) {  
  177. //检测两点是否为通路的函数;  
  178. p1 = 0;  
  179. p2 = 0;  
  180. p3 = 0;  
  181. co = 0;  
  182. if (x>y) {  
  183. //1  
  184. dis = x-y-1;  
  185. for (z=1; z<=dis; z++) {  
  186. q = x-z;  
  187. if (zt[q] == 9) {  
  188. p1++;  
  189. }  
  190. }  
  191. else {  
  192. dis = y-x-1;  
  193. for (z=1; z<=dis; z++) {  
  194. q = y-z;  
  195. if (zt[q] == 9) {  
  196. p1++;  
  197. }  
  198. }  
  199. }  
  200. //1  
  201. if (p1 == dis) {  
  202. p1 = 100;  
  203. }  
  204. //横向检测;<-  
  205. if (first>x) {  
  206. dis = (first-x)/12-1;  
  207. if (dis == 0) {  
  208. p2 = 100;  
  209. else {  
  210. for (z=1; z<=dis; z++) {  
  211. q = first-z*12;  
  212. if (zt[q] == 9) {  
  213. p2++;  
  214. }  
  215. }  
  216. }  
  217. else {  
  218. dis = (x-first)/12-1;  
  219. if (dis == 0) {  
  220. p2 = 100;  
  221. else {  
  222. for (z=1; z<=dis; z++) {  
  223. q = x-z*12;  
  224. if (zt[q] == 9) {  
  225. p2++;  
  226. }  
  227. }  
  228. }  
  229. }  
  230. if (p2 == dis) {  
  231. p2 = 100;  
  232. }  
  233. if (second>y) {  
  234. dis = (second-y)/12-1;  
  235. if (dis == 0) {  
  236. p3 = 100;  
  237. else {  
  238. for (z=1; z<=dis; z++) {  
  239. q = second-z*12;  
  240. if (zt[q] == 9) {  
  241. p3++;  
  242. }  
  243. }  
  244. }  
  245. else {  
  246. dis = (y-second)/12-1;  
  247. if (dis == 0) {  
  248. p3 = 100;  
  249. else {  
  250. for (z=1; z<=dis; z++) {  
  251. q = y-z*12;  
  252. if (zt[q] == 9) {  
  253. p3++;  
  254. }  
  255. }  
  256. }  
  257. }  
  258. if (p3 == dis) {  
  259. p3 = 100;  
  260. }  
  261. p = p1+p2+p3;  
  262. if (p == 300) {  
  263. co = math.abs(x-y)+math.abs(second-y)/12+math.abs(first-x)/12;  
  264. }  
  265. return (co);  
  266. }  
  267. function jiance_hen2(x, y) {  
  268. p4 = 0;  
  269. if (x>y) {  
  270. dis = x-y-1;  
  271. for (z=1; z<=dis; z++) {  
  272. q = x-z;  
  273. if (zt[q] == 9) {  
  274. p4++;  
  275. }  
  276. }  
  277. else {  
  278. dis = y-x-1;  
  279. for (z=1; z<=dis; z++) {  
  280. q = y-z;  
  281. if (zt[q] == 9) {  
  282. p4++;  
  283. }  
  284. }  
  285. }  
  286. if (p4 == dis) {  
  287. p4 = 100;  
  288. }  
  289. return (p4);  
  290. }  
  291. function jiance_lie1(x, y) {  
  292. p1 = 0;  
  293. p2 = 0;  
  294. p3 = 0;  
  295. co = 0;  
  296. if (x>y) {  
  297. dis = (x-y)/12-1;  
  298. for (z=1; z<=dis; z++) {  
  299. q = x-z*12;  
  300. if (zt[q] == 9) {  
  301. p1++;  
  302. }  
  303. }  
  304. else {  
  305. dis = (y-x)/12-1;  
  306. for (z=1; z<=dis; z++) {  
  307. q = y-z*12;  
  308. if (zt[q] == 9) {  
  309. p1++;  
  310. }  
  311. }  
  312. }  
  313. if (p1 == dis) {  
  314. p1 = 100;  
  315. }  
  316. //纵向检测《---  
  317. if (first>x) {  
  318. dis = first-x-1;  
  319. for (z=1; z<=dis; z++) {  
  320. q = first-z;  
  321. if (zt[q] == 9) {  
  322. p2++;  
  323. }  
  324. }  
  325. else {  
  326. dis = x-first-1;  
  327. for (z=1; z<=dis; z++) {  
  328. q = x-z;  
  329. if (zt[q] == 9) {  
  330. p2++;  
  331. }  
  332. }  
  333. }  
  334. if (p2 == dis) {  
  335. p2 = 100;  
  336. }  
  337. if (second>y) {  
  338. dis = second-y-1;  
  339. for (z=1; z<=dis; z++) {  
  340. q = second-z;  
  341. if (zt[q] == 9) {  
  342. p3++;  
  343. }  
  344. }  
  345. else {  
  346. dis = y-second-1;  
  347. for (z=1; z<=dis; z++) {  
  348. q = y-z;  
  349. if (zt[q] == 9) {  
  350. p3++;  
  351. }  
  352. }  
  353. }  
  354. if (p3 == dis) {  
  355. p3 = 100;  
  356. }  
  357. p = p1+p2+p3;  
  358. if (p == 300) {  
  359. co = math.abs(x-y)/12+math.abs(second-y)+math.abs(first-x);  
  360. }  
  361. return (co);  
  362. }  
  363. function jiance_lie2(x, y) {  
  364. p4 = 0;  
  365. if (x>y) {  
  366. dis = (x-y)/12-1;  
  367. for (z=1; z<=dis; z++) {  
  368. q = x-z*12;  
  369. if (zt[q] == 9) {  
  370. p4++;  
  371. }  
  372. }  
  373. else {  
  374. dis = (y-x)/12-1;  
  375. for (z=1; z<=dis; z++) {  
  376. q = y-z*12;  
  377. if (zt[q] == 9) {  
  378. p4++;  
  379. }  
  380. }  
  381. }  
  382. if (p4 == dis) {  
  383. p4 = 100;  
  384. }  
  385. return (p4);  
  386. }  
  387. function panduan_cuowei() {  
  388. g = 1000;  
  389. gg = 1000;  
  390. br = 0;  
  391. j = 0;  
  392. k = 0;  
  393. line1 = first%12;  
  394. line2 = second%12;  
  395. line3 = math.floor(first/12);  
  396. line4 = math.floor(second/12);  
  397. for (i=1; i<=12; i++) {  
  398. jilu1[i] = line1+(i-1)*12;  
  399. jilu2[i] = line2+(i-1)*12;  
  400. //HANG  
  401. jilu3[i] = line3*12+i;  
  402. jilu4[i] = line4*12+i;  
  403. //LIE  
  404. }  
  405. for (i=1; i<=12; i++) {  
  406. if (jilu1[i] == first) {  
  407. if (zt[jilu2[i]] == 9) {  
  408. w = jiance_cuowei01(jilu2[i]);  
  409. if (w == 200) {  
  410. guaixian1_hen1(jilu2[i]);  
  411. _root.control.ok();  
  412. br = 1;  
  413. break;  
  414. }  
  415. }  
  416. else if (jilu2[i] == second) {  
  417. if (zt[jilu1[i]] == 9) {  
  418. w = jiance_cuowei02(jilu1[i]);  
  419. if (w == 200) {  
  420. guaixian1_hen2(jilu1[i]);  
  421. _root.control.ok();  
  422. br = 1;  
  423. break;  
  424. }  
  425. }  
  426. }  
  427. if (zt[jilu1[i]] == 9 and zt[jilu2[i]] == 9) {  
  428. j = jiance_hen1(jilu1[i], jilu2[i]);  
  429. }  
  430. if (j>0) {  
  431. if (j<g) {  
  432. g = j;  
  433. g1 = jilu1[i];  
  434. g2 = jilu2[i];  
  435. }  
  436. //_root.control.ok();  
  437. else {  
  438. if (zt[jilu3[i]] == 9 and zt[jilu4[i]] == 9) {  
  439. k = jiance_lie1(jilu3[i], jilu4[i]);  
  440. }  
  441. if (k>0) {  
  442. if (k<gg) {  
  443. gg = k;  
  444. g3 = jilu3[i];  
  445. g4 = jilu4[i];  
  446. }  
  447. }  
  448. }  
  449. }  
  450. if (br == 0) {  
  451. if (g != 1000) {  
  452. guaixian2_hen(g1, g2);  
  453. br = 1;  
  454. else if (gg != 1000) {  
  455. guaixian2_lie(g3, g4);  
  456. }  
  457. }  
  458. }  
  459. function jiance_cuowei01(x) {  
  460. //错位状态1;  
  461. p1 = 0;  
  462. p2 = 0;  
  463. dis = math.abs(x-first)-1;  
  464. if (dis == 0) {  
  465. p1 = 100;  
  466. else {  
  467. if (x>first) {  
  468. for (z=1; z<=dis; z++) {  
  469. q = x-z;  
  470. if (zt[q] == 9) {  
  471. p1++;  
  472. }  
  473. }  
  474. else {  
  475. for (z=1; z<=dis; z++) {  
  476. q = first-z;  
  477. if (zt[q] == 9) {  
  478. p1++;  
  479. }  
  480. }  
  481. }  
  482. if (p1 == dis) {  
  483. p1 = 100;  
  484. }  
  485. }  
  486. dis = math.abs((second-x))/12-1;  
  487. if (dis == 0) {  
  488. p2 == 100;  
  489. else {  
  490. if (second>x) {  
  491. for (z=1; z<=dis; z++) {  
  492. q = second-z*12;  
  493. if (zt[q] == 9) {  
  494. p2++;  
  495. }  
  496. }  
  497. else {  
  498. dis = math.abs(dis);  
  499. for (z=1; z<=dis; z++) {  
  500. q = x-z*12;  
  501. if (zt[q] == 9) {  
  502. p2++;  
  503. }  
  504. }  
  505. }  
  506. }  
  507. if (p2 == dis) {  
  508. p2 = 100;  
  509. }  
  510. return (p1+p2);  
  511. }  
  512. function jiance_cuowei02(x) {  
  513. //错位状态2;  
  514. p1 = 0;  
  515. p2 = 0;  
  516. dis = math.abs(x-second)-1;  
  517. if (dis == 0) {  
  518. p1 = 100;  
  519. else {  
  520. if (x>second) {  
  521. for (z=1; z<=dis; z++) {  
  522. q = x-z;  
  523. if (zt[q] == 9) {  
  524. p1++;  
  525. }  
  526. }  
  527. else {  
  528. for (z=1; z<=dis; z++) {  
  529. q = second-z;  
  530. if (zt[q] == 9) {  
  531. p1++;  
  532. }  
  533. }  
  534. }  
  535. if (p1 == dis) {  
  536. p1 = 100;  
  537. }  
  538. }  
  539. dis = math.abs((first-x))/12-1;  
  540. if (dis == 0) {  
  541. p2 == 100;  
  542. else {  
  543. if (first>x) {  
  544. for (z=1; z<=dis; z++) {  
  545. q = first-z*12;  
  546. if (zt[q] == 9) {  
  547. p2++;  
  548. }  
  549. }  
  550. else {  
  551. dis = math.abs(dis);  
  552. for (z=1; z<=dis; z++) {  
  553. q = x-z*12;  
  554. if (zt[q] == 9) {  
  555. p2++;  
  556. }  
  557. }  
  558. }  
  559. }  
  560. if (p2 == dis) {  
  561. p2 = 100;  
  562. }  
  563. return (p1+p2);  
  564. }  
  565. function henxiang0(x, y) {  
  566. //横线0拐点画线函数;  
  567. //tellTarget ("ttt"+y) {  
  568. // gotoAndPlay(10);  
  569. //}  
  570. if (x>y) {  
  571. dis = x-y-1;  
  572. for (z=1; z<=dis; z++) {  
  573. q = x-z;  
  574. tellTarget ("ttt"+q) {  
  575. gotoAndPlay(10);  
  576. }  
  577. }  
  578. else {  
  579. dis = y-x-1;  
  580. for (z=1; z<=dis; z++) {  
  581. q = y-z;  
  582. tellTarget ("ttt"+q) {  
  583. gotoAndPlay(10);  
  584. }  
  585. }  
  586. }  
  587. _root.control.ok();  
  588. }  
  589. function shuxian0(x, y) {  
  590. //竖线0拐点画线函数;  
  591. if (x>y) {  
  592. dis = (x-y)/12-1;  
  593. for (z=1; z<=dis; z++) {  
  594. q = x-z*12;  
  595. tellTarget ("ttt"+q) {  
  596. gotoAndPlay(13);  
  597. }  
  598. }  
  599. else {  
  600. dis = (y-x)/12-1;  
  601. for (z=1; z<=dis; z++) {  
  602. q = y-z*12;  
  603. tellTarget ("ttt"+q) {  
  604. gotoAndPlay(13);  
  605. }  
  606. }  
  607. }  
  608. _root.control.ok();  
  609. }  
  610. function guaixian1_hen1(x) {  
  611. if (x>first and x<second) {  
  612. tellTarget ("ttt"+x) {  
  613. gotoAndPlay(19);  
  614. }  
  615. else if (x>first and x>second) {  
  616. tellTarget ("ttt"+x) {  
  617. gotoAndPlay(25);  
  618. }  
  619. else if (x<first and x<second) {  
  620. tellTarget ("ttt"+x) {  
  621. gotoAndPlay(16);  
  622. }  
  623. else {  
  624. tellTarget ("ttt"+x) {  
  625. gotoAndPlay(22);  
  626. }  
  627. }  
  628. dis = math.abs(x-first)-1;  
  629. if (dis != 0) {  
  630. if (x>first) {  
  631. for (z=1; z<=dis; z++) {  
  632. q = x-z;  
  633. tellTarget ("ttt"+q) {  
  634. gotoAndPlay(10);  
  635. }  
  636. }  
  637. else {  
  638. for (z=1; z<=dis; z++) {  
  639. q = first-z;  
  640. tellTarget ("ttt"+q) {  
  641. gotoAndPlay(10);  
  642. }  
  643. }  
  644. }  
  645. }  
  646. dis = math.abs((second-x))/12-1;  
  647. if (dis != 0) {  
  648. if (second>x) {  
  649. for (z=1; z<=dis; z++) {  
  650. q = second-z*12;  
  651. tellTarget ("ttt"+q) {  
  652. gotoAndPlay(13);  
  653. }  
  654. }  
  655. else {  
  656. dis = math.abs(dis);  
  657. for (z=1; z<=dis; z++) {  
  658. q = x-z*12;  
  659. tellTarget ("ttt"+q) {  
  660. gotoAndPlay(13);  
  661. }  
  662. }  
  663. }  
  664. }  
  665. }  
  666. function guaixian1_hen2(x) {  
  667. if (x>first and x<second) {  
  668. tellTarget ("ttt"+x) {  
  669. gotoAndPlay(22);  
  670. }  
  671. else if (x>first and x>second) {  
  672. tellTarget ("ttt"+x) {  
  673. gotoAndPlay(25);  
  674. }  
  675. else if (x<first and x<second) {  
  676. tellTarget ("ttt"+x) {  
  677. gotoAndPlay(16);  
  678. }  
  679. else {  
  680. tellTarget ("ttt"+x) {  
  681. gotoAndPlay(19);  
  682. }  
  683. }  
  684. dis = math.abs(x-second)-1;  
  685. if (dis != 0) {  
  686. if (x>second) {  
  687. for (z=1; z<=dis; z++) {  
  688. q = x-z;  
  689. tellTarget ("ttt"+q) {  
  690. gotoAndPlay(10);  
  691. }  
  692. }  
  693. else {  
  694. for (z=1; z<=dis; z++) {  
  695. q = second-z;  
  696. tellTarget ("ttt"+q) {  
  697. gotoAndPlay(10);  
  698. }  
  699. }  
  700. }  
  701. }  
  702. dis = math.abs((first-x))/12-1;  
  703. if (dis != 0) {  
  704. if (first>x) {  
  705. for (z=1; z<=dis; z++) {  
  706. q = first-z*12;  
  707. tellTarget ("ttt"+q) {  
  708. gotoAndPlay(13);  
  709. }  
  710. }  
  711. else {  
  712. dis = math.abs(dis);  
  713. for (z=1; z<=dis; z++) {  
  714. q = x-z*12;  
  715. tellTarget ("ttt"+q) {  
  716. gotoAndPlay(13);  
  717. }  
  718. }  
  719. }  
  720. }  
  721. }  
  722. function guaixian2_hen(x, y) {  
  723. if (x<first and y<second and x<y) {  
  724. tellTarget ("ttt"+x) {  
  725. gotoAndPlay(16);  
  726. }  
  727. tellTarget ("ttt"+y) {  
  728. gotoAndPlay(19);  
  729. }  
  730. else if (x<first and y<second and x>y) {  
  731. tellTarget ("ttt"+x) {  
  732. gotoAndPlay(19);  
  733. }  
  734. tellTarget ("ttt"+y) {  
  735. gotoAndPlay(16);  
  736. }  
  737. else if (x>first and y>second and x<y) {  
  738. tellTarget ("ttt"+x) {  
  739. gotoAndPlay(22);  
  740. }  
  741. tellTarget ("ttt"+y) {  
  742. gotoAndPlay(25);  
  743. }  
  744. else if (x>first and y>second and x>y) {  
  745. tellTarget ("ttt"+x) {  
  746. gotoAndPlay(25);  
  747. }  
  748. tellTarget ("ttt"+y) {  
  749. gotoAndPlay(22);  
  750. }  
  751. else if (x>first and y<second and x<y) {  
  752. tellTarget ("ttt"+x) {  
  753. gotoAndPlay(22);  
  754. }  
  755. tellTarget ("ttt"+y) {  
  756. gotoAndPlay(19);  
  757. }  
  758. else if (x>first and y<second and x>y) {  
  759. tellTarget ("ttt"+x) {  
  760. gotoAndPlay(25);  
  761. }  
  762. tellTarget ("ttt"+y) {  
  763. gotoAndPlay(16);  
  764. }  
  765. else if (x<first and y>second and x<y) {  
  766. tellTarget ("ttt"+x) {  
  767. gotoAndPlay(16);  
  768. }  
  769. tellTarget ("ttt"+y) {  
  770. gotoAndPlay(25);  
  771. }  
  772. else {  
  773. tellTarget ("ttt"+x) {  
  774. gotoAndPlay(19);  
  775. }  
  776. tellTarget ("ttt"+y) {  
  777. gotoAndPlay(22);  
  778. }  
  779. }  
  780. if (x>y) {  
  781. dis = x-y-1;  
  782. for (z=1; z<=dis; z++) {  
  783. q = x-z;  
  784. tellTarget ("ttt"+q) {  
  785. gotoAndPlay(10);  
  786. }  
  787. }  
  788. else {  
  789. dis = y-x-1;  
  790. for (z=1; z<=dis; z++) {  
  791. q = y-z;  
  792. tellTarget ("ttt"+q) {  
  793. gotoAndPlay(10);  
  794. }  
  795. }  
  796. }  
  797. if (first>x) {  
  798. dis = (first-x)/12-1;  
  799. if (dis != 0) {  
  800. for (z=1; z<=dis; z++) {  
  801. q = first-z*12;  
  802. tellTarget ("ttt"+q) {  
  803. gotoAndPlay(13);  
  804. }  
  805. }  
  806. }  
  807. else {  
  808. dis = (x-first)/12-1;  
  809. if (dis != 0) {  
  810. for (z=1; z<=dis; z++) {  
  811. q = x-z*12;  
  812. tellTarget ("ttt"+q) {  
  813. gotoAndPlay(13);  
  814. }  
  815. }  
  816. }  
  817. }  
  818. if (second>y) {  
  819. dis = (second-y)/12-1;  
  820. if (dis != 0) {  
  821. for (z=1; z<=dis; z++) {  
  822. q = second-z*12;  
  823. tellTarget ("ttt"+q) {  
  824. gotoAndPlay(13);  
  825. }  
  826. }  
  827. }  
  828. else {  
  829. dis = (y-second)/12-1;  
  830. if (dis != 0) {  
  831. for (z=1; z<=dis; z++) {  
  832. q = y-z*12;  
  833. tellTarget ("ttt"+q) {  
  834. gotoAndPlay(13);  
  835. }  
  836. }  
  837. }  
  838. }  
  839. _root.control.ok();  
  840. }  
  841. function guaixian2_lie(x, y) {  
  842. if (x<first and y<second and x<y) {  
  843. tellTarget ("ttt"+x) {  
  844. gotoAndPlay(16);  
  845. }  
  846. tellTarget ("ttt"+y) {  
  847. gotoAndPlay(22);  
  848. }  
  849. else if (x<first and y<second and x>y) {  
  850. tellTarget ("ttt"+x) {  
  851. gotoAndPlay(22);  
  852. }  
  853. tellTarget ("ttt"+y) {  
  854. gotoAndPlay(16);  
  855. }  
  856. else if (x>first and y>second and x<y) {  
  857. tellTarget ("ttt"+x) {  
  858. gotoAndPlay(19);  
  859. }  
  860. tellTarget ("ttt"+y) {  
  861. gotoAndPlay(25);  
  862. }  
  863. else if (x>first and y>second and x>y) {  
  864. tellTarget ("ttt"+x) {  
  865. gotoAndPlay(25);  
  866. }  
  867. tellTarget ("ttt"+y) {  
  868. gotoAndPlay(19);  
  869. }  
  870. else if (x>first and y<second and x>y) {  
  871. tellTarget ("ttt"+x) {  
  872. gotoAndPlay(25);  
  873. }  
  874. tellTarget ("ttt"+y) {  
  875. gotoAndPlay(16);  
  876. }  
  877. else if (x>first and y<second and x<y) {  
  878. tellTarget ("ttt"+x) {  
  879. gotoAndPlay(19);  
  880. }  
  881. tellTarget ("ttt"+y) {  
  882. gotoAndPlay(22);  
  883. }  
  884. else if (x<first and y>second and x<y) {  
  885. tellTarget ("ttt"+x) {  
  886. gotoAndPlay(16);  
  887. }  
  888. tellTarget ("ttt"+y) {  
  889. gotoAndPlay(25);  
  890. }  
  891. else {  
  892. tellTarget ("ttt"+x) {  
  893. gotoAndPlay(22);  
  894. }  
  895. tellTarget ("ttt"+y) {  
  896. gotoAndPlay(19);  
  897. }  
  898. }  
  899. if (x>y) {  
  900. dis = (x-y)/12-1;  
  901. for (z=1; z<=dis; z++) {  
  902. q = x-z*12;  
  903. tellTarget ("ttt"+q) {  
  904. gotoAndPlay(13);  
  905. }  
  906. }  
  907. else {  
  908. dis = (y-x)/12-1;  
  909. for (z=1; z<=dis; z++) {  
  910. q = y-z*12;  
  911. tellTarget ("ttt"+q) {  
  912. gotoAndPlay(13);  
  913. }  
  914. }  
  915. }  
  916. if (first>x) {  
  917. dis = first-x-1;  
  918. for (z=1; z<=dis; z++) {  
  919. q = first-z;  
  920. tellTarget ("ttt"+q) {  
  921. gotoAndPlay(10);  
  922. }  
  923. }  
  924. else {  
  925. dis = x-first-1;  
  926. for (z=1; z<=dis; z++) {  
  927. q = x-z;  
  928. tellTarget ("ttt"+q) {  
  929. gotoAndPlay(10);  
  930. }  
  931. }  
  932. }  
  933. if (second>y) {  
  934. dis = second-y-1;  
  935. for (z=1; z<=dis; z++) {  
  936. q = second-z;  
  937. tellTarget ("ttt"+q) {  
  938. gotoAndPlay(10);  
  939. }  
  940. }  
  941. else {  
  942. dis = y-second-1;  
  943. for (z=1; z<=dis; z++) {  
  944. q = y-z;  
  945. tellTarget ("ttt"+q) {  
  946. gotoAndPlay(10);  
  947. }  
  948. }  
  949. }  
  950. _root.control.ok();  
  951. }  
  952. function selectframe(number) {  
  953. switch (number) {  
  954. case 1 :  
  955. tellTarget ("ttt"+i) {  
  956. gotoAndStop(1);  
  957. }  
  958. break;  
  959. case 2 :  
  960. tellTarget ("ttt"+i) {  
  961. gotoAndStop(2);  
  962. }  
  963. break;  
  964. case 3 :  
  965. tellTarget ("ttt"+i) {  
  966. gotoAndStop(3);  
  967. }  
  968. break;  
  969. case 4 :  
  970. tellTarget ("ttt"+i) {  
  971. gotoAndStop(4);  
  972. }  
  973. break;  
  974. case 5 :  
  975. tellTarget ("ttt"+i) {  
  976. gotoAndStop(5);  
  977. }  
  978. break;  
  979. case 6 :  
  980. tellTarget ("ttt"+i) {  
  981. gotoAndStop(6);  
  982. }  
  983. break;  
  984. case 7 :  
  985. tellTarget ("ttt"+i) {  
  986. gotoAndStop(7);  
  987. }  
  988. break;  
  989. case 8 :  
  990. tellTarget ("ttt"+i) {  
  991. gotoAndStop(8);  
  992. }  
  993. break;  
  994. case 9 :  
  995. tellTarget ("ttt"+i) {  
  996. gotoAndStop(28);  
  997. }  
  998. break;  
  999. case 10 :  
  1000. tellTarget ("ttt"+i) {  
  1001. gotoAndStop(29);  
  1002. }  
  1003. break;  
  1004. }  
  1005. }  
  1006. function ok() {  
  1007. //可消除的处理函数;  
  1008. tellTarget ("ttt"+first) {  
  1009. gotoAndStop(9);  
  1010. }  
  1011. zt[first] = 9;  
  1012. tellTarget ("ttt"+second) {  
  1013. gotoAndStop(9);  
  1014. }  
  1015. zt[second] = 9;  
  1016. c= zt[second];  
  1017. }  
  1018. }  
  1019. //julu数组为待检测点,ZT数组为各点状态;  
  1020. //9:消除;10:横线;13:竖线;16:「;19:7;22:L;25:」; 

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

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

一是在同行同列上

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

二是只有一个拐点

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

三是有两个拐点

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

你可能感兴趣的:(职场,Flash,寻路,连连看,休闲)