[原创]我的作品:我的迷宫小游戏Java版本
這個小游戲是我選的第二個數(shù)據(jù)結(jié)構(gòu)課程設(shè)計題目,覺得很有意思,也很有挑戰(zhàn)性,對于一個自學(xué)Java的人來說寫出這個小游戲我覺得無疑是一種鼓勵,呵呵呵
實驗題目:
隨機生成一個迷宮圖,迷宮大小為N*N,N預(yù)定義為常數(shù),修改N的值可以改變迷宮的大小。用白色表示可走的路,藍色表示墻壁不可以通過。系統(tǒng)設(shè)計兩種運行方式:一種是系統(tǒng)自動探索(用遞歸方法實現(xiàn));另一種是由人工操作探索通路。
設(shè)計思路:
程序首先要考慮迷宮的表示,這是一個二維關(guān)系圖,所以可選擇二維數(shù)組來存儲。數(shù)組元素只有兩種值0和1,分別代表通路和墻壁。圖形的顯示可以根據(jù)數(shù)組元素的值來確定。如果是人工探索,則依據(jù)按鍵來確定探索物的位置坐標,利用循環(huán)語句實現(xiàn)。如果是系統(tǒng)自動探索,可采用遞歸算法實現(xiàn)。
我使用的是Java Swing編程技術(shù),采用了MVC的設(shè)計模式,這個是一個很經(jīng)典的設(shè)計模式
關(guān)于這個小游戲我有很多的感觸,我歷時近一個星期的時間才寫到了現(xiàn)在的程度,可以說是很不容易,查看了很多的參考資料,等到數(shù)據(jù)結(jié)構(gòu)作業(yè)驗收完了我也會給大家分享一下的,呵呵呵,這期間我問了不少人,這里特別要感謝兩個好友,研究生學(xué)長武學(xué)鴻和同院好友沈冠軍,謝謝你們兩個人的幫忙,呵呵呵
其實這個游戲分為了幾個部分:
1.生成迷宮:它的算法很多,我目前是寫了一種,利用圖的DFS,到時候我會和大家分享我的和大師們的程序,呵呵,敬請期待(為了這個我可是今天都在電腦面前看英文資料啊,嗚嗚嗚)
2.顯示迷宮:Java 畫圖的功能了
3.走出迷宮:它的算法也是挺多的,我現(xiàn)在寫了兩種,一種是最短路徑,一種是DFS
同樣,由于還沒有驗收,所以不好直接附上源碼,這里給大家看看程序運行時顯示的界面吧
程序運行時,點擊Start按鈕,就可以看到一個迷宮了(35*35的迷宮)
?
點擊Computer do,首先選擇一個速度,走出迷宮的速度,然后就可以看到一個綠色的小圓點自己走出迷宮了,呵呵呵
選擇速度大小
??
?
正在走迷宮
?
走出了迷宮
?
王力宏的一首歌《愛因為在心中》,很喜歡這首歌,去年,我們技術(shù)部在網(wǎng)站的一次 party 上合唱的就是這首歌
“世界就像迷宮,卻又讓我們此刻相逢our home!”
?
左邊的是選項設(shè)置面板
?? 這里可以設(shè)置迷宮的大小,一般是設(shè)置行和列相等,考慮到顯示的問題,我這里限制了行和列小于等于49
?? 同時,行和列必須都是奇數(shù),不然生成的迷宮會出現(xiàn)問題,這個是由于生成算法的原因
?
?
?? 這里可以設(shè)置迷宮的難易程度,但是基本上沒有,剛開始做的時候想的,后來沒有去考慮了,這個沒有什么關(guān)系,迷宮大了
?? 也就難了
?
??? 這里可以設(shè)置生成迷宮的算法,顯示了三種,但是我只是寫了一種,實際上還寫了一種,還沒有添加上去,最后一種我還沒有實現(xiàn)
?
?
?? 這里是設(shè)置走出迷宮的算法,同樣是顯示了三種,我寫了兩種,還有一種應(yīng)該也是可以寫出來的,呵呵,到時候和大家分享一下
?
?
?
?? 這里是游戲的介紹
?
?
?
?
?
?
游戲控制面板
?
Restart 可以重新開始生成另一個迷宮
Pause 可以暫停當(dāng)前正在走著的綠色的小圓點,點擊了之后會變成 Continue
Stop 可以結(jié)束本次走出迷宮
I do 是玩家自己來走迷宮
Computer do 是電腦來走迷宮
?
自己走出了迷宮示例:
?
大迷宮: (49*49)? 迷宮的每個格子的大小是有規(guī)律的,迷宮大格子的大小就小
?
33*33
?
用上下左右鍵控制綠色的小圓點,可以自己走迷宮
?
怎么樣?喜歡嗎?喜歡的話可以給我留言,幫助我來改進它,呵呵呵,謝謝了,屆時我會寫一列的博文介紹里面用到的算法,呵呵呵,敬請期待
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的[原创]我的作品:我的迷宫小游戏Java版本的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 品牌女鞋(品牌女鞋排名)
- 下一篇: 软文推荐:常用 Java 静态代码分析工