8.2.4 智能查找功能的实现 如果找不到匹配的第二个选定方块,则如图8-7(a)编号加1重新选定第一个选定 方块(即1号方块)进入下一轮,然后在这个基础上做遍历查找第二个选定方块, 即如图8-7(b)从2号开始按照2,3,4,5,6,7……顺序进行查找第二个选定方 块,直到搜索到最后一块(即15号方块);那么为什么从2开始查找第二个选定方 块,而不是0号开始呢?因为将1号方块选定为第一个选定方块前,0号已经作为第 一个选定方块对后面的方块进行可连通的判断了,它必然不会与后面的方块连通。 如果找不到与1号方块连通且相同的,于是编号加1重新选定第一个选定方块(即2 号方块)进入下一轮,从3号开始按照3,4,5,6,7……顺序进行查找第二个选 定方块。
// // 一个折点连通 // boolean OneCornerLink(int x1, int y1,int x2, int y2) { if (x1 > x2) //目标点(x1,y1),(x2,y2)两点交换 { int n=x1; x1=x2; x2=n; n=y1; y1=y2; y2=n; }
Java游戏编程原理与实践教程
主编 陈锐 夏敏捷
人民邮电出版社
第8章 连连看游戏
“连连看”考验的是各位的眼力,在有限的时间内,只要把 所有能连接的相同图案,两个一对地找出来,每找出一对, 它们就会自动消失,只要把所有的图案全部消完即可获得胜 利。所谓能够连接,指得是:无论横向或者纵向,从一个图 案到另一个图案之间的连线不能超过两个弯(中间的直线不 超过三根),其中,连线不能从尚未消去的图案上经过。 本章开发连连看游戏,游戏效果如图8-1所示。游戏具有统 计消去方块的个数功能,这里由于是10行10列所以方块总数 为100个。玩家时间是200秒,如果玩家无法通关,玩家可以 重新开始新的一局游戏。