python贪吃蛇设计报告_Python实现AI版贪吃蛇
主要思路
(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版贪吃蛇相关推荐
- 图书管理系统python代码课程设计报告_python代码实现图书管理系统
本文实例为大家分享了python代码实现图书管理系统的具体代码,供大家参考,具体内容如下 图书管理系统 功能简介 添加图书时,图书ID不能重复,图书名可重复 删除,查询,修改功能,输入图书名之后提供所 ...
- 如何用python制作贪吃蛇以及AI版贪吃蛇
用python制作普通贪吃蛇 哈喽,大家不知道是上午好还是中午好还是下午好还是晚上好! 贪吃蛇,应该是90后小时候的记忆(连我这个00后也不例外),今天,我们就用python这款编程语言来实现贪吃蛇 ...
- python双人格斗游戏代码_Python:游戏:贪吃蛇
一.游戏介绍 贪吃蛇是个非常简单的游戏,适合练手.先来看一下我的游戏截图: 玩法介绍: 回车键:开始游戏 空格键:暂停 / 继续 ↑↓←→方向键 或 WSAD 键:控制移动方向. 食物分红.绿.蓝三种 ...
- python贪吃蛇源码_Python:游戏:贪吃蛇(附源码)
Python:游戏:贪吃蛇(附源码) 发布时间:2018-09-05 09:59, 浏览次数:1295 , 标签: Python 贪吃蛇是个非常简单的游戏,适合练手. 首先分析一下这个游戏 1.蛇怎么 ...
- python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...
最近看了一部电影<绣春刀>,里面的剧情感觉还不错,本文爬取的是绣春刀电影的豆瓣影评,1000个用户的短评,共5W多字.用jieba分词,对词语的出现频率进行统计,再通过wordcloud生 ...
- python五子棋课程设计报告_算法课程设计:使用Python完成可视化的五子棋AI
from enum import IntEnum import pygame from pygame.locals import * import copy import time version = ...
- python爬虫课设报告_python爬虫小说设计报告 相关实例(示例源码)下载 - 好例子网...
开发语言:Python | 大小:0.07M | 发布时间:2020-11-12 | 立即下载 开发语言:Python | 大小:2.24KB | 发布时间:2020-10-23 | 发布人:吴wu ...
- python实现通讯录功能课程设计报告_Python实现通讯录功能
说实话,第一次写这么长的Python代码,期间遇到了很多问题,但是,最终还是完成了,花了我一天半的时间. 该程序实现了用户的增,删,改,查,主要用到sqlite3模块.对于该模块的知识点,请查看我的另 ...
- python自动抠头像图_Python实现AI自动抠图实例解析
一.简介 抠图是用PS? 用魔棒和快速选择工具? 遇到复杂背景怎么办? 最近发现一个神奇的工具--Remove Image Background 它是基于Python.Ruby和深度学习技术开发,通过 ...
- python自动生成word报告_python自动化生成分析报告,让你的工作效率提升10倍+
打开搜狗搜索APP,查看更多精彩资讯 如果你每天都需要输出分析报告,报告模式基本一致,只是更换里面的分析数据,每天重复着同样的工作,费时费力,工作能力没有丝毫的提升,但是如果你学过python,你就可 ...
最新文章
- 《未来简史》五、你我正处在一列没有刹车的快车上,狂奔成“神”
- 1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源
- 王思聪究竟上了多少次热搜?
- Windows 环境下安装redis 及其PHP Redis扩展
- SQL Server全系列安装程序V1.2中文版
- python3 如何读中文路径_Python 3.8.2安装教程
- Python 模块学习
- php微框架 flight源码阅读
- sql查询非11位非数字_非生产环境SQL查询性能调优技巧
- dnf mysql密码多少_CentOS7 使用 dnf 安装 mysql
- 越狱装源未能连接到服务器,科普cydia无法加载源地址插件安装错误解决方法及Cydia怎么备份shsh...
- 转易语言-网页游戏辅助,网络游戏辅助,手游辅助开发技术教程
- 五险一金,这篇就够了
- 集成显卡和独立显卡的区别
- 申请阿里云香港试用1年服务器教程
- stm32f103gd32的usb虚拟串口,打印类printer组合设备
- 公众号、小程序、短信消息推送的区别
- vnc好用吗,vnc是什么,vnc好用吗
- EasyMock 单元测试
- 内核之旅:简单分析getsockopt系统调用
热门文章
- 如何压缩word文档
- TyperError: excepted str,byte or os.PathLike object, not io.TextIOWrapper
- P1005 [NOIP2007 提高组] 矩阵取数游戏
- 数字图像处理 信息隐藏 LSB算法
- DiskPart-删除磁盘分区
- 阿里云SSL证书免费申请和部署方法((DigiCert 免费版 SSL-图文教程)
- centos配置iptbles 8080端口允许远程访问
- ConstraintLayout 属性详解 和Chain的使用
- qt 打印html 分页打印,QT 打印的简单实现
- android微信支付跳转逻辑,Android对接微信支付