App下載

Python制作AI且mini版飛機大戰(zhàn)

猿友 2018-08-02 18:09:23 瀏覽數 (6527)
反饋

本文轉載至知乎ID:Charles(白露未晞)知乎個人專欄

下載W3Cschool手機App,0基礎隨時隨地學編程>>戳此了解

導語

大家新年快樂呀~~~

T_T

大年三十終于偷得半日清閑想起來有些日子沒更公眾號了~~~

So,來更一波文章hhhhh~~~

之前貌似水了好幾篇以Python能干嘛為主要目的的文章,那么就再來水一篇吧~~~

這篇文章的技術含量依舊不高,算是AI入門級的內容,idea源自于(T_T我也忘了)。。。

純Python實現,不依賴于任何深度學習框架。。。

算了,直接進入正題吧!


相關文件

百度網盤鏈接: https://pan.baidu.com/s/1UIV51eSD3ixqAuVqRC7z8g

密碼: fmtv


參考文獻

(1)neuro-evolution

https://en.wikipedia.org/wiki/Neuroevolution


主要思路

游戲思路:

讓我方飛機自動躲避屏幕上方飛來的敵機。

實現方式:

(1)利用簡單的神經網絡來決定飛機的行動方式;

(2)利用neuro-evolution算法來提高神經網絡的性能,該算法核心類似于達爾文的進化論,隨機生成種群后選擇優(yōu)秀個體進行雜交變異獲得新的種群,如此反復循環(huán)。

具體思路和實現方式詳見源代碼。


開發(fā)工具

Python版本:3.5.4

相關模塊:

win_unicode_console模塊、pygame模塊以及一些Python自帶的模塊。


環(huán)境搭建

安裝Python并添加到環(huán)境變量,pip安裝需要的相關模塊即可。


使用演示

在cmd窗口運行main.py文件即可:

若效果不佳,請自行修改NeuroEvolution.py文件中相關參數,如下圖所示:

當然你也可以修改main.py文件中敵機的生成位置:

飛機最后會在不生成敵機的位置區(qū)域運動:


更多

算法真的真的寫的很簡陋且丑。。。

So,

沒有任何實際使用價值。。。

有興趣的小伙伴可以進一步優(yōu)化和擴展這個AI游戲,當然也歡迎后臺留言交流。。。

可優(yōu)化的內容舉例:

(1)優(yōu)化新基因的生成方式;

(2)相關參數隨著進化過程不斷改變等。


3 人點贊