真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

項(xiàng)目三基于A*搜索算法迷宮游戲開發(fā)-創(chuàng)新互聯(lián)

項(xiàng)目三 基于A*搜索算法迷宮游戲開發(fā)

隨機(jī)生成一個迷宮,并求解迷宮
玩家可以自行求解

超過10年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都網(wǎng)站制作、成都網(wǎng)站設(shè)計,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,小程序定制開發(fā),微信開發(fā),APP應(yīng)用開發(fā),同時也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營銷和我們一樣獲得訂單和生意!項(xiàng)目目標(biāo)和主要內(nèi)容

1)迷宮游戲是非常經(jīng)典的游戲,在該題中要求隨機(jī)生成一個迷宮,并求解迷宮;
2)要求游戲支持玩家走迷宮,和系統(tǒng)走迷宮路徑兩種模式。玩家走迷宮,通過鍵盤方向鍵控制,并在行走路徑上留下痕跡;
3)系統(tǒng)走迷宮路徑要求基于A*算法實(shí)現(xiàn),輸出走迷宮的最優(yōu)路徑并顯示。
4)設(shè)計交互友好的游戲圖形界面。

項(xiàng)目總體框架

總體框架

關(guān)鍵算法分析

深度優(yōu)先遍歷生成迷宮:

void createMaze() {//將當(dāng)前格壓入棧
    path.push(cur);
    while(!path.empty()) {ArrayListmNei=notVisitedNei(cur);
        if(mNei.size()==0){//如果該格子沒有可訪問的鄰接格,則跳回上一個格子
            cur = path.pop();
            continue;
        }
        //隨機(jī)選取一個鄰接格(并且在地圖內(nèi))
        next = mNei.get(new Random().nextInt(mNei.size()));
        int x = next.x;
        int y = next.y;
        //如果該節(jié)點(diǎn)被訪問過,則回到上一步繼續(xù)尋找
        if(visit[x][y]){cur = path.pop();
        }
        //否則將當(dāng)前格壓入棧,標(biāo)記當(dāng)前格為已訪問,并且在迷宮地圖上移除障礙物
        else{path.push(next);
            visit[x][y] = true;
            mMap[x][y] = road;
            //打通當(dāng)前格與下一格
            //打通墻,將墻的位置改換定義為路
            mMap[(cur.x + x) / 2][(cur.y + y) / 2] = road;
            //當(dāng)前格等于下一格
            cur = next;
        }
    }
    //設(shè)置入口
    mMap[start.x-1][start.y]=1;
    //設(shè)置出口
    mMap[end.x+1][end.y]=1;
}

A*搜索算法求解迷宮:

public Node findPath(Node startNode, Node endNode) {openList.add(startNode);// 把起點(diǎn)加入 open list

        while (openList.size() >0) {Node currentNode = findMinFNodeInOpenList();// 遍歷 open list ,查找F值最小的節(jié)點(diǎn),把它作為當(dāng)前要處理的節(jié)點(diǎn)
            //如果open list為空,尋路失敗,找不到到達(dá)終點(diǎn)的路徑(也就是迷宮沒有路可以到達(dá))
            openList.remove(currentNode);// 將剛剛F最小的那個點(diǎn)從open list中移除
            closeList.add(currentNode);// 把這個節(jié)點(diǎn)移到 close list

            ArrayListneighborNodes = findNeighborNodes(currentNode);//尋找鄰居節(jié)點(diǎn)(4個中尋找)
            for (Node node : neighborNodes) {if (exists(openList, node)) {//如果鄰居節(jié)點(diǎn)在open列表中
                    foundPoint(currentNode, node);//更新列表中父節(jié)點(diǎn)和估價函數(shù)信息
                } else {notFoundPoint(currentNode, endNode, node);//如果鄰居節(jié)點(diǎn)不在open列表中,則將該點(diǎn)加入open列表中
                }
            }
//如果終點(diǎn)加入到了open list中,此時路徑已經(jīng)找到,從終點(diǎn)開始,每個方格沿著父節(jié)點(diǎn)移動直至起點(diǎn),這就是最優(yōu)路徑
            if (find(openList, endNode) != null) {//如果找到尾節(jié)點(diǎn),則返回尾節(jié)點(diǎn)
                return find(openList, endNode);
            }
        }

        // return find(openList, endNode);
        return null;
    }
項(xiàng)目實(shí)現(xiàn)及結(jié)果分析

開始頁面展示:
開始頁面

游戲界面展示:
游戲界面1
游戲界面2

結(jié)束界面展示:
結(jié)束界面

無法用圖片展現(xiàn)的功能:
玩家按下空格鍵可以顯示A*算法求解路線

實(shí)驗(yàn)總結(jié)

1.利用深度優(yōu)先算法生產(chǎn)迷宮地圖
2.利用A*算法求解迷宮

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


新聞名稱:項(xiàng)目三基于A*搜索算法迷宮游戲開發(fā)-創(chuàng)新互聯(lián)
網(wǎng)站網(wǎng)址:http://weahome.cn/article/djjcgj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部