五彩珠遊戲
對以前寫的一個 遊戲,改動了一下.
路徑查詢由原來的廣度演算法。改為a星演算法.
//a*演算法,比廣度多一個引數,來評估佇列中每個點到目的地的估計消耗,來提高效能。
public
Queue
{
int[,] migong = (int[,])migonga.Clone();
Queue
myqueue
= new Queue
myqueue.Enqueue(start);
start.level = 1;
start.prepoint = null;
start.visited = true;
start.g = 0;
start.f = 99;
migong[start.py,
start.px] = 1;
int step = 0;
while (myqueue.Count
!= 0 && (myqueue.Peek().px == end.px && myqueue.Peek().py ==
end.py) == false)
{
step +=
1;
//myqueue =
(Queue
//對評估直排序,先搜尋評估直最小的。
List
myqueue.Clear();
for (int yy = 1; yy < tem.Count;
yy++)
{
if (tem[yy].f <
tem[0].f)
{
point3 tempp =
tem[0];
tem[0] = tem[yy];
tem[yy] = tempp;
}
}
for (int yy = 0; yy < tem.Count;
yy++)
{
myqueue.Enqueue(tem[yy]);
}
point3 p = myqueue.Dequeue();
if
(migong[p.py + 1, p.px] < 1)
{
point3 pa = new point3(p.px, p.py + 1, p.level + 1, true,
p, 1 + p.g, getFValue(p, end));
migong[pa.py, pa.px] =
1;
myqueue.Enqueue(pa);
if (pa.px
== end.px && pa.py == end.py)
{
break;
}
}
if (migong[p.py - 1, p.px] < 1)
{
point3 pa = new point3(p.px, p.py - 1, p.level + 1,
true, p, 1 + p.g, getFValue(p, end));
migong[pa.py,
pa.px] = 1;
myqueue.Enqueue(pa);
if (pa.px == end.px && pa.py == end.py)
{
myqueue.Enqueue(pa);
break;
}
}
if (migong[p.py, p.px + 1] < 1)
{
point3 pa = new point3(p.px + 1, p.py, p.level + 1,
true, p, 1 + p.g, getFValue(p, end));
myqueue.Enqueue(pa);
migong[pa.py, pa.px] =
1;
if (pa.px == end.px && pa.py ==
end.py)
{
myqueue.Enqueue(pa);
break;
}
}
if (migong[p.py, p.px - 1] < 1)
{
point3 pa = new point3(p.px - 1, p.py, p.level + 1,
true, p, 1 + p.g, getFValue(p, end));
myqueue.Enqueue(pa);
migong[pa.py, pa.px] =
1;
if (pa.px == end.px && pa.py ==
end.py)
{
myqueue.Enqueue(pa);
break;
}
}
}
Console.WriteLine(step.ToString());
return myqueue;
}
//得到某點到目的點的消耗評估
public int getFValue(point3 current,
point3 end)
{
return Math.Abs(current.px - end.px) +
Math.Abs(current.py - end.py);
}
這裡因為評估很簡單,其實複雜就是評估難算.這個很簡單了。
有耐心的朋友,可以看下程式碼.順便有效能上的建議,歡迎指正.謝謝。
程式碼地址:http://download.csdn.net/source/1754605
原文地址:http://www.cnblogs.com/lsfv/archive/2009/10/20/1586932.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-617197/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 珠寶遊戲遊戲
- Zen Pinball Party Mac(彈珠遊戲)Mac遊戲
- 龍珠:超宇宙遊戲 中文移植版遊戲
- 小遊戲五子連珠消除解決方案遊戲
- PlayCoin與Qbao Network珠聯璧合---共同開啟全新遊戲平臺遊戲
- 《怪物彈珠》國服:遊戲性再強,終敗在水土不服?遊戲
- 畫素、彈珠、勇者鬥魔王,這款小眾遊戲如何吸引玩家?遊戲
- 珠海開票-珠海開票
- 彈珠 題解
- 代數遺珠
- 《七龍珠Z:卡卡洛特》:粉絲向遊戲的好範例,但除此之外呢?遊戲
- 專訪 | 經典與熱門,商業與Indie,一款彈珠遊戲的多維度考察遊戲
- iOS面試珠璣iOS面試
- “反遊戲“的遊戲——放置遊戲研究遊戲
- Android實現網頁動態背景“五彩蛛網”Android網頁
- 遊戲與遊戲引擎遊戲引擎
- 如何在命令列中顯示五彩斑斕的“黑”命令列
- 《智龍迷城》、《怪物彈珠》熱度消褪之後,我們們聊聊今天如何在日本市場推廣重度遊戲遊戲
- 遊戲AI:AI的遊戲還是遊戲的未來遊戲AI
- 出海遊戲與“外來”遊戲,如何立足遊戲市場遊戲
- 遊戲測試?遊戲營銷遊戲
- 遊戲文件與遊戲設計遊戲設計
- 珠寶口袋秤方案規格書
- 珠寶店小程式的推廣策略,讓珠寶店實現業績和市場突破!
- AI打遊戲-伍(遊戲,啟動!)AI遊戲
- “遊戲中的遊戲世界”——遊戲副本的起源與發展史遊戲
- 悠遊世界合成遊戲系統技術開發解析/合成遊戲/小遊戲遊戲
- Unity遊戲示例來了,用Unity開源遊戲資源做遊戲,遊戲開發不再難!Unity遊戲開發
- 前端菜鳥遊戲篇,拼圖遊戲!前端遊戲
- 遊戲論·性/別:遊戲也酷兒?遊戲
- 五彩斑斕-阿里iconfont實戰全戰略Web端(Html,Vue,React)阿里WebHTMLVueReact
- OPPO遊戲助力遊戲行業發展丨ODC19遊戲論壇遊戲行業
- Steam 是暢玩遊戲、討論遊戲、創造遊戲的快樂所在遊戲
- 2022年4399遊戲盒遊戲釋出會,多款遊戲亮點回顧遊戲
- bt遊戲盒子排行榜遊戲盒子哪個好 bt遊戲盒子排行遊戲
- 猜拳遊戲遊戲
- 排序遊戲排序遊戲
- 變態遊戲盒子無限元寶gm版遊戲 變態遊戲無限鑽石元寶遊戲盒子遊戲
- bt手遊遊戲盒子大全 BT遊戲盒子排行榜遊戲