Maze_AI: 一款基於 Python + Pygame + AI 算法的迷宮小游戲


大三課程設計周自己一個人寫的迷宮小游戲

(一)課題內容

  • 實現走迷宮。
  • 主要功能為界面顯示、上下左右鍵的響應以及當前步數統計。
  • 通過該課題全面熟悉數組、字符串等的使用,掌握程序設計的基本方法及友好界面的設計。

(二)課題要求

1. 基本要求

(1)游戲界面顯示:迷宮地圖、上下左右移動的特效。
(2)動作選擇:上下左右鍵對應於上下左右的移動功能,遇到障礙的處理。
(3)得分統計功能:步數等。

2. 擴展要求

(1)用戶數據管理。
(2)設計一個自動走迷宮的程序,使得得到最短路徑。

(三)組隊分工情況

  • 團隊名稱:import python
  • 團隊成員:Wonz(沒錯就我一個人)
  • 分工:全部(好像給自己挖了個巨坑)

(四)ToDo

  • 2018.10.29-2018.10.30:學習 PyQt5 + Tkinter
  • 2018.10.31:學習 Pygame、熟悉 Python、實現隨機生成迷宮地圖程序
  • 2018.11.1:實現游戲界面程序、得分統計功能程序
  • 2018.11.2:學習 Python + MySQL,實現用戶數據管理程序
  • 2018.11.3-2018.11.5:設計 AI 算法,實現自動走迷宮程序(DFS、BFS、強化學習、遺傳算法)

(五)實際進度

  • 2018.10.29:學習 PyQt5
  • 2018.10.30:學習 Tkinter
  • 2018.10.31:放棄 PyQt5Tkinter,轉 Pygame
  • 2018.11.1:嘗試實現迷宮地圖程序
  • 2018.11.2-2018.11.3:實現迷宮地圖程序
  • 2018.11.4-2018.11.6:生成角色、實現鍵盤控制走迷宮、實現計分功能,改障礙處理的 bug(改了三天)
  • 2018.11.7:嘗試實現 遺傳算法 自動走迷宮,設置數據庫連接
  • 2018.11.8:放棄 遺傳算法 ,轉向 強化學習 中的 Deep Q Network 實現自動走迷宮
  • 2018.11.9:Deep Q Network 中的 TensorFlow 框架看不懂,放棄,轉 DFS,驗收
  • 2018.11.10:實現人工生成迷宮地圖,非隨機生成
  • 2018.11.11:凌晨 3 點睡,早上 7 點多起,一直寫報告到下午 5 點

(六)文件說明

  • main.py 為主函數
  • maze.py 為隨機生成迷宮函數
  • color.py 為存儲顏色函數
  • main_new.py 為被老師驗收之后自己重寫的主函數
  • mapp.py 為被老師驗收之后自己重寫的自己設計的迷宮(非隨機生成迷宮)
  • 由於時間等原因,第二種生成迷宮的 AI 算法還未實現

(七)結果展示

1. 隨機生成地圖版本
  • 游戲界面

  • 開始游戲:左上角有步數統計

  • 遇到障礙的信息反饋

  • AI自動走迷宮(程序還有待完善,步數統計存在問題)

  • 存在的問題:有時 AI 程序會崩潰,暫時還沒有找到 bug

2. 非隨機生成地圖的迷宮
  • 游戲界面:起點在最右邊,終點在最左邊紅色位置

  • 開始游戲:左上角有步數統計

  • 遇到障礙的信息反饋

  • 走出迷宮:輸出“Win”

(八)不足與反思

  • 基礎不扎實:選了不是很熟悉的 Python 語言,期間復習語法也花了點時間
  • 自己給自己挖坑:拒絕了同學們的組隊邀請,一個人做三個人的任務,結果做不好
  • 時間管理不夠高效:進度安排不夠科學,總是完不成自己規定的任務
  • 需求不明確:確實是自己沒有問清楚老師的需求,導致自己的程序老師不滿意,是自己的問題

(九)項目地址

GitHub

(十)Liscense

MIT


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM