App下載

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

一瞬之光 2018-08-02 18:09:23 瀏覽數(shù) (7056)
反饋

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

下載W3Cschool手機App,0基礎(chǔ)隨時隨地學(xué)編程>>戳此了解

導(dǎo)語

大家新年快樂呀~~~

T_T

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

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

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

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

純Python實現(xiàn),不依賴于任何深度學(xué)習(xí)框架。。。

算了,直接進入正題吧!


相關(guān)文件

百度網(wǎng)盤鏈接: https://pan.baidu.com/s/1UIV51eSD3ixqAuVqRC7z8g

密碼: fmtv


參考文獻

(1)neuro-evolution

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


主要思路

游戲思路:

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

實現(xiàn)方式:

(1)利用簡單的神經(jīng)網(wǎng)絡(luò)來決定飛機的行動方式;

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

具體思路和實現(xiàn)方式詳見源代碼。


開發(fā)工具

Python版本:3.5.4

相關(guān)模塊:

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


環(huán)境搭建

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


使用演示

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

若效果不佳,請自行修改NeuroEvolution.py文件中相關(guān)參數(shù),如下圖所示:

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

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


更多

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

So,

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

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

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

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

(2)相關(guān)參數(shù)隨著進化過程不斷改變等。



3 人點贊