当前位置: 首页 > article >正文

Python3实现AI版贪吃蛇

导语

利用Python简单地实现AI版的贪吃蛇。。。

just for fun...

没有用深度学习。。。

算法是由一个叫Hawstein的人在好多好多年以前提出,感觉很有趣,就花了点时间复现了一下他的想法。。。

至于效果。。。

看脸。。。

真的只是觉得他的想法很有趣,仅此而已,因为如果你想让蛇机械地充满整个空间,只需要让蛇一直走S就好了,但是这就变得很无趣了。。。

相关文件

百度网盘下载链接: https://pan.baidu.com/s/1KPAV6FKLUFj11myoVjzQ2Q

密码: gb7k

主要思路

(1)蛇每走一步,就使用BFS计算游戏界面中每个位置(蛇身除外)到达食物的最短路径长;

(2)将蛇的安全定义为蛇是否可以跟着蛇尾运动,即蛇头和蛇尾间是否存在路径;

(3)蛇每次行动前先利用虚拟的蛇进行探路,若虚拟的蛇吃完食物后是安全的,真蛇才行动;

(4)若蛇和食物之间不存在路径或者吃完食物后并不安全,就跟着蛇尾走;

(5)若蛇和食物之间、蛇和蛇尾之间均不存在路径,就随便挑一步可行的来走;

(6)保证目标是食物时蛇走最短路径,目标是蛇尾时蛇走最长路径。

不足之处

由于食物是随机出现的,若虚拟的蛇跑一遍发现去吃食物是不安全的,真蛇就不会去吃食物,而是选择追着蛇尾跑,若一直如此,就陷入了死循环,蛇一直追着蛇尾跑跑跑。。。

直到你终止游戏为止。。。

开发工具

Python版本:3.5.4

相关模块:

pygame模块以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

运行方式

在cmd窗口运行AI_snake.py文件即可。

结果展示

动图一直上传失败。。。

所以随便截几个图吧~~~

更多

(1)为了保证代码简单易懂,所提供的代码冗余度较高(比如进行了不必要的重复计算),有兴趣者可对代码进行优化;

(2)相关文件中也提供了普通版本的贪吃蛇游戏(Normal_snake.py)。


http://www.kler.cn/a/1451.html

相关文章:

  • AI_Papers周刊:第六期
  • Java面向对象:接口的学习
  • Vue学习 -- 如何用Axios发送请求(get post)Promise对象 跨域请求问题
  • 使用QT C++编写一个带有菜单和工具条的文本编辑器
  • QT串口助手开发3串口开发
  • C语言实例:字符转换为 ASCII 码,如何计算两个数的商,如何比较两个数的大小,如何交换两个数的值
  • VR全景城市,用720全景树立城市形象,打造3D可视化智慧城市
  • java-day01
  • 《Linux的权限》
  • 考研408每周一题(2019 41)
  • 嵌入式学习笔记——STM32的时钟树
  • 基于 Apache Flink 的实时计算数据流业务引擎在京东零售的实践和落地
  • 软件测试面试找工作你必须知道的面试技巧(帮助超过100人成功通过面试)
  • 【React】React入门--生命周期
  • 网络作业2【计算机网络】
  • Qt之QPainter绘制多个矩形/圆形(含源码+注释)
  • Linux中日志管理和常见故障
  • “国产版ChatGPT”文心一言发布会现场Demo硬核复现
  • 学习28个案例总结
  • 2022-2023年度广东省职业院校学生专业技能大赛 中职组网络安全赛项竞赛规程