|
我想知道有更好的算法吗?
此法只是能解决问题,并不是好的解(我认为)。
- /*
- 连连看:算法一种
- author: wide288
- Date: 2006/1/3
- */
- 把一个小图片看成由四面组成的东西。如:
- AAAA
- BNND
- BNND
- BNND
- BNND
- CCCC
- 把棋盘看成由左下角是原点的直角坐标系。坐标值是(0,0)(x,y) x 行号; y 列号;
- 首先判断点击两个小图片时A面是否连通:
- 例如:两个小图片的坐标值分别为:(8,4)有子;(6,8)有子;
- 首先比较 x 的大小,记录大的值
- 大值加一,看是否从4列能通到8列。如果通就消去两子,如果不通行值加一。再判断通不通。
- 直到行号为终时。
- /************************************/
- 其次,D 面判断:
- 还是用A面判断的例子。
- 列值比较大小,记录较小的。
- 列值加一,判断是否能通到另一值的行上,如果不能列值加一,如果能判断此行是否通。
- 不通列值还是加一,如果通消去。
- 列值一直加一,直到列值为8,还不通时。此面不通不能消。返回值。
- /************************************/
- 其次 B 面判断:
- 同D 面。
- /************************************/
- 最终 C 面判断:
- 同A 面。
- /*************************************/
- 每个子都要进行四面的判断才能判断此子是否通。
- /*** The End **/
-
复制代码 |
|