Android源碼下載:五子消除游戲
作者:佚名
一款過(guò)去比較流行的五子消除游戲源碼。早期研究過(guò),希望有興趣的朋友們可以一起研究+探討一下。
功能分類:休閑益智
支持平臺(tái):Android
運(yùn)行環(huán)境:Android
開(kāi)發(fā)語(yǔ)言:Java
開(kāi)發(fā)工具:Ecppse
源碼大小:5.43MB
源碼下載地址:http://down.51cto.com/data/1975239
源碼簡(jiǎn)介
一款過(guò)去比較流行的五子消除游戲源碼。早期研究過(guò),希望有興趣的朋友們可以一起研究+探討一下。
源碼運(yùn)行截圖
游戲Splash界面
游戲初始雙方對(duì)陣
游戲成功時(shí),計(jì)分,并且控件消失
源碼片段:
- //游戲涉及到的部分算法片段
- /**
- * 寬度優(yōu)先搜索方法
- * @param from 開(kāi)始點(diǎn)
- * @param to 結(jié)束點(diǎn)
- * @param beads 珠子二維數(shù)組
- * @return
- */
- private boolean isLink(Point from, final Point to, Bead[][] beads) {
- // 第一步:記錄走過(guò)的點(diǎn)
- invalidPoints.add(from);
- // 第二步:獲取上、右、左、下四個(gè)點(diǎn)。
- 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)
- };
- // 第三步:判斷四個(gè)點(diǎn)是否有效或者是目的點(diǎn)。
- List<point> temp = new ArrayList<point>();
- for (Point p : points){
- // 是不是到了目地點(diǎn)
- if (p.equals(to)){
- pathPoints.add(p);
- return true;
- }
- if (isCheck(p, beads)){
- temp.add(p);
- }
- }
- // 第四步:判斷有效點(diǎn)是否全部占完。
- if (temp.isEmpty()) return false;
- // 第五步:對(duì)有效點(diǎn)進(jìn)按最短路徑排序。
- 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;
- }
- });
- // 第六步:遞歸找出有效點(diǎn)及到搜索到目的點(diǎn)或有效點(diǎn)全部搜索完畢。
- for (Point p : temp){
- boolean flag = isLink(p, to, beads);
- if (flag){
- pathPoints.add(p);
- return true;
- }
- }
- return false;
- }</point></point></point>
責(zé)任編輯:閆佳明
來(lái)源:
網(wǎng)絡(luò)整理