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

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

(一)課題內(nèi)容

  • 實(shí)現(xiàn)走迷宮。
  • 主要功能為界面顯示、上下左右鍵的響應(yīng)以及當(dāng)前步數(shù)統(tǒng)計。
  • 通過該課題全面熟悉數(shù)組、字符串等的使用,掌握程序設(shè)計的基本方法及友好界面的設(shè)計。

(二)課題要求

1. 基本要求

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

2. 擴(kuò)展要求

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

(三)組隊(duì)分工情況

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

(四)ToDo

  • 2018.10.29-2018.10.30:學(xué)習(xí) PyQt5 + Tkinter
  • 2018.10.31:學(xué)習(xí) Pygame、熟悉 Python、實(shí)現(xiàn)隨機(jī)生成迷宮地圖程序
  • 2018.11.1:實(shí)現(xiàn)游戲界面程序、得分統(tǒng)計功能程序
  • 2018.11.2:學(xué)習(xí) Python + MySQL,實(shí)現(xiàn)用戶數(shù)據(jù)管理程序
  • 2018.11.3-2018.11.5:設(shè)計 AI 算法,實(shí)現(xiàn)自動走迷宮程序(DFS、BFS、強(qiáng)化學(xué)習(xí)、遺傳算法)

(五)實(shí)際進(jìn)度

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

(六)文件說明

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

(七)結(jié)果展示

1. 隨機(jī)生成地圖版本
  • 游戲界面
image
  • 開始游戲:左上角有步數(shù)統(tǒng)計
image
  • 遇到障礙的信息反饋
image
  • AI自動走迷宮(程序還有待完善,步數(shù)統(tǒng)計存在問題)
image
  • 存在的問題:有時 AI 程序會崩潰,暫時還沒有找到 bug
image
2. 非隨機(jī)生成地圖的迷宮
  • 游戲界面:起點(diǎn)在最右邊,終點(diǎn)在最左邊紅色位置
image
  • 開始游戲:左上角有步數(shù)統(tǒng)計
image
  • 遇到障礙的信息反饋
image
  • 走出迷宮:輸出“Win”
image

(八)不足與反思

  • 基礎(chǔ)不扎實(shí):選了不是很熟悉的 Python 語言,期間復(fù)習(xí)語法也花了點(diǎn)時間
  • 自己給自己挖坑:拒絕了同學(xué)們的組隊(duì)邀請,一個人做三個人的任務(wù),結(jié)果做不好
  • 時間管理不夠高效:進(jìn)度安排不夠科學(xué),總是完不成自己規(guī)定的任務(wù)
  • 需求不明確:確實(shí)是自己沒有問清楚老師的需求,導(dǎo)致自己的程序老師不滿意,是自己的問題

(九)項(xiàng)目地址

GitHub

(十)Liscense

MIT

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容