主要思路

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

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

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

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

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

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

不足之处

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

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

开发工具

Python版本:3.5.4

相关模块:

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

环境搭建

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

运行方式

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

结果展示

动图一直上传失败。。。

所以随便截几个图~

image.png

image.png

image.png

更多

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

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

python贪吃蛇设计报告_Python实现AI版贪吃蛇相关推荐

  1. 图书管理系统python代码课程设计报告_python代码实现图书管理系统

    本文实例为大家分享了python代码实现图书管理系统的具体代码,供大家参考,具体内容如下 图书管理系统 功能简介 添加图书时,图书ID不能重复,图书名可重复 删除,查询,修改功能,输入图书名之后提供所 ...

  2. 如何用python制作贪吃蛇以及AI版贪吃蛇

    用python制作普通贪吃蛇 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 贪吃蛇,应该是90后小时候的记忆(连我这个00后也不例外),今天,我们就用python这款编程语言来实现贪吃蛇 ...

  3. python双人格斗游戏代码_Python:游戏:贪吃蛇

    一.游戏介绍 贪吃蛇是个非常简单的游戏,适合练手.先来看一下我的游戏截图: 玩法介绍: 回车键:开始游戏 空格键:暂停 / 继续 ↑↓←→方向键 或 WSAD 键:控制移动方向. 食物分红.绿.蓝三种 ...

  4. python贪吃蛇源码_Python:游戏:贪吃蛇(附源码)

    Python:游戏:贪吃蛇(附源码) 发布时间:2018-09-05 09:59, 浏览次数:1295 , 标签: Python 贪吃蛇是个非常简单的游戏,适合练手. 首先分析一下这个游戏 1.蛇怎么 ...

  5. python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...

    最近看了一部电影<绣春刀>,里面的剧情感觉还不错,本文爬取的是绣春刀电影的豆瓣影评,1000个用户的短评,共5W多字.用jieba分词,对词语的出现频率进行统计,再通过wordcloud生 ...

  6. python五子棋课程设计报告_算法课程设计:使用Python完成可视化的五子棋AI

    from enum import IntEnum import pygame from pygame.locals import * import copy import time version = ...

  7. python爬虫课设报告_python爬虫小说设计报告 相关实例(示例源码)下载 - 好例子网...

    开发语言:Python | 大小:0.07M | 发布时间:2020-11-12 | 立即下载 开发语言:Python | 大小:2.24KB | 发布时间:2020-10-23 | 发布人:吴wu ...

  8. python实现通讯录功能课程设计报告_Python实现通讯录功能

    说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间. 该程序实现了用户的增,删,改,查,主要用到sqlite3模块.对于该模块的知识点,请查看我的另 ...

  9. python自动抠头像图_Python实现AI自动抠图实例解析

    一.简介 抠图是用PS? 用魔棒和快速选择工具? 遇到复杂背景怎么办? 最近发现一个神奇的工具--Remove Image Background 它是基于Python.Ruby和深度学习技术开发,通过 ...

  10. python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+

    打开搜狗搜索APP,查看更多精彩资讯 如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可 ...

最新文章

  1. 《未来简史》五、你我正处在一列没有刹车的快车上,狂奔成“神”
  2. 1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源
  3. 王思聪究竟上了多少次热搜?
  4. Windows 环境下安装redis 及其PHP Redis扩展
  5. SQL Server全系列安装程序V1.2中文版
  6. python3 如何读中文路径_Python 3.8.2安装教程
  7. Python 模块学习
  8. php微框架 flight源码阅读
  9. sql查询非11位非数字_非生产环境SQL查询性能调优技巧
  10. dnf mysql密码多少_CentOS7 使用 dnf 安装 mysql
  11. 越狱装源未能连接到服务器,科普cydia无法加载源地址插件安装错误解决方法及Cydia怎么备份shsh...
  12. 转易语言-网页游戏辅助,网络游戏辅助,手游辅助开发技术教程
  13. 五险一金,这篇就够了
  14. 集成显卡和独立显卡的区别
  15. 申请阿里云香港试用1年服务器教程
  16. stm32f103gd32的usb虚拟串口,打印类printer组合设备
  17. 公众号、小程序、短信消息推送的区别
  18. vnc好用吗,vnc是什么,vnc好用吗
  19. EasyMock 单元测试
  20. 内核之旅:简单分析getsockopt系统调用

热门文章

  1. 如何压缩word文档
  2. TyperError: excepted str,byte or os.PathLike object, not io.TextIOWrapper
  3. P1005 [NOIP2007 提高组] 矩阵取数游戏
  4. 数字图像处理 信息隐藏 LSB算法
  5. DiskPart-删除磁盘分区
  6. 阿里云SSL证书免费申请和部署方法((DigiCert 免费版 SSL-图文教程)
  7. centos配置iptbles 8080端口允许远程访问
  8. ConstraintLayout 属性详解 和Chain的使用
  9. qt 打印html 分页打印,QT 打印的简单实现
  10. android微信支付跳转逻辑,Android对接微信支付