--- tags: 2022 iThome 鐵人賽 title: 10/10 Arcade再進化-迷宮產生器(4) AUTHOR: --- # 進階的迷宮遊戲 >上次我們做出了二元樹迷宮的遊戲。 >但...你發現了? >我們只需要往下、往右走就能到達終點! >這實在有點蠢。讓我們改進這個問題吧! ## 本篇內容 以上篇遊戲為基礎 我們使用另一種迷宮產生方法做出`隨機生成`的迷宮遊戲 預覽:  ### 主程式 大致上流程長這樣  接下來就為大家一一介紹副程式 ###### 與上篇文章重疊的部分會跳過 ### 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 判斷地圖是否完成 並回傳成立或不成立  ## 成品  ### [遊戲連結](https://arcade.makecode.com/S51563-68682-32832-40220)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up