Android源碼下載:五子消除游戲
作者:佚名
一款過去比較流行的五子消除游戲源碼。早期研究過,希望有興趣的朋友們可以一起研究+探討一下。
功能分類:休閑益智
支持平臺:Android
運行環境:Android
開發語言:Java
開發工具:Ecppse
源碼大?。?.43MB
源碼下載地址:http://down.51cto.com/data/1975239
源碼簡介
一款過去比較流行的五子消除游戲源碼。早期研究過,希望有興趣的朋友們可以一起研究+探討一下。
源碼運行截圖
游戲Splash界面
游戲初始雙方對陣
游戲成功時,計分,并且控件消失
源碼片段:
- //游戲涉及到的部分算法片段
- /**
- * 寬度優先搜索方法
- * @param from 開始點
- * @param to 結束點
- * @param beads 珠子二維數組
- * @return
- */
- private boolean isLink(Point from, final Point to, Bead[][] beads) {
- // 第一步:記錄走過的點
- invalidPoints.add(from);
- // 第二步:獲取上、右、左、下四個點。
- Point[] points = {
- new Point(from.x, from.y - 1),
- new Point(from.x, from.y + 1),
- new Point(from.x - 1, from.y),
- new Point(from.x + 1, from.y)
- };
- // 第三步:判斷四個點是否有效或者是目的點。
- List<point> temp = new ArrayList<point>();
- for (Point p : points){
- // 是不是到了目地點
- if (p.equals(to)){
- pathPoints.add(p);
- return true;
- }
- if (isCheck(p, beads)){
- temp.add(p);
- }
- }
- // 第四步:判斷有效點是否全部占完。
- if (temp.isEmpty()) return false;
- // 第五步:對有效點進按最短路徑排序。
- Collections.sort(temp, new Comparator<point>() {
- @Override
- public int compare(Point p1, Point p2) {
- double r1 = Math.sqrt((p1.x - to.x) * (p1.x - to.x) + (p1.y - to.y) * (p1.y - to.y));
- double r2 = Math.sqrt((p2.x - to.x) * (p2.x - to.x) + (p2.y - to.y) * (p2.y - to.y));
- return r1 < r2 ? -1 : 0;
- }
- });
- // 第六步:遞歸找出有效點及到搜索到目的點或有效點全部搜索完畢。
- for (Point p : temp){
- boolean flag = isLink(p, to, beads);
- if (flag){
- pathPoints.add(p);
- return true;
- }
- }
- return false;
- }</point></point></point>
責任編輯:閆佳明
來源:
網絡整理