iT邦幫忙

2022 iThome 鐵人賽

DAY 25
1

進階的迷宮遊戲

上次我們做出了二元樹迷宮的遊戲。
但...你發現了?
我們只需要往下、往右走就能到達終點!
這實在有點蠢。讓我們改進這個問題吧!

本篇內容

以上篇遊戲為基礎
我們使用另一種迷宮產生方法做出隨機生成的迷宮遊戲

預覽:

主程式

大致上流程長這樣

接下來就為大家一一介紹副程式

與上篇文章重疊的部分會跳過

setup

在最上面新增這兩個方塊

剩下的與上篇文章一樣

draw_path

隨機生成並繪製路徑
通過隨機取數的方式來決定路徑的方向
1 向左 / 2 向右 / 3 向上 / 4 向下
且經過判斷後才執行繪製路徑
如果該方向為邊界,就重新取數

剩下的2、3、4都是相同邏輯

go_backwards

路徑生成有機會走到四周都沒有空白的地方
這個時候就要讓它找出原本的路徑返回,尋找可以繼續生成路徑的地方

此為左邊的判斷程式

剩下的 右/上/下 判斷方式相同

fix_yellow_block

經過go_backwards的摧殘後
地圖上會殘留許多黃色方塊
如此圖:
因此我們需要將黃色方塊換回道路

is_dead_end

判斷目前判斷格是否四周沒有地方可以生成路徑
回傳成立或不成立

因為條件太長,所以截圖注重於判斷往左邊可否生成

剩下的往右/上/下判斷 (與上面清晰的部分相同)

is_pass_through_wall

因為地圖的大小是15x15
因此邊界位於直欄0或15及橫排0或15的地方
我們只要將想要判斷的直欄或橫列放進這個副程式
便可以知道判斷格是否超出範圍

is_map_complete

判斷地圖是否完成
並回傳成立或不成立

成品

遊戲連結


上一篇
Arcade再進化-射擊遊戲(4)
下一篇
Arcade再進化-橫向捲軸遊戲(4)
系列文
玩game學打code。街機程式設計再進化。微軟Arcade30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言