大三課程設計周自己一個人寫的迷宮小游戲
(一)課題內容
- 實現走迷宮。
- 主要功能為界面顯示、上下左右鍵的響應以及當前步數統計。
- 通過該課題全面熟悉數組、字符串等的使用,掌握程序設計的基本方法及友好界面的設計。
(二)課題要求
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:放棄
PyQt5、Tkinter,轉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 語言,期間復習語法也花了點時間
- 自己給自己挖坑:拒絕了同學們的組隊邀請,一個人做三個人的任務,結果做不好
- 時間管理不夠高效:進度安排不夠科學,總是完不成自己規定的任務
- 需求不明確:確實是自己沒有問清楚老師的需求,導致自己的程序老師不滿意,是自己的問題
