App下載

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

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

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

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

導(dǎo)語(yǔ)

大家新年快樂(lè)呀~~~

T_T

大年三十終于偷得半日清閑想起來(lái)有些日子沒(méi)更公眾號(hào)了~~~

So,來(lái)更一波文章hhhhh~~~

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

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

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

算了,直接進(jìn)入正題吧!


相關(guān)文件

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

密碼: fmtv


參考文獻(xiàn)

(1)neuro-evolution

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


主要思路

游戲思路:

讓我方飛機(jī)自動(dòng)躲避屏幕上方飛來(lái)的敵機(jī)。

實(shí)現(xiàn)方式:

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

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

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


開發(fā)工具

Python版本:3.5.4

相關(guān)模塊:

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


環(huán)境搭建

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


使用演示

在cmd窗口運(yùn)行main.py文件即可:

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

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

飛機(jī)最后會(huì)在不生成敵機(jī)的位置區(qū)域運(yùn)動(dòng):


更多

算法真的真的寫的很簡(jiǎn)陋且丑。。。

So,

沒(méi)有任何實(shí)際使用價(jià)值。。。

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

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

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

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


3 人點(diǎn)贊