本文转载至知乎ID:Charles(白露未晞)知乎个人专栏
本文转载至知乎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算法来提高神经网络的性能,该算法核心类似于达尔文的进化论,随机生成种群后选择优秀个体进行杂交变异获得新的种群,如此反复循环。
具体思路和实现方式详见源代码。
开发工具
Python版本:3.5.4
相关模块:
win_unicode_console模块、pygame模块以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
使用演示
在cmd窗口运行main.py文件即可:
若效果不佳,请自行修改NeuroEvolution.py文件中相关参数,如下图所示:
当然你也可以修改main.py文件中敌机的生成位置:
飞机最后会在不生成敌机的位置区域运动:
更多
算法真的真的写的很简陋且丑。。。
So,
没有任何实际使用价值。。。
有兴趣的小伙伴可以进一步优化和扩展这个AI游戏,当然也欢迎后台留言交流。。。
可优化的内容举例:
(1)优化新基因的生成方式;
(2)相关参数随着进化过程不断改变等。