Python贪吃蛇

运用 python设计贪吃蛇游戏,其中运用了不少列表和字典 的基础知识,最明显的例子就是利用列表和字典建立一个二维坐标图,分别用 列表表示 x,y,用字典储存坐标值。还有利用随机函数 random生成随机初始位 置和随机食物位置。类比 Java中设置监听器来监听来自输入端的事件,python 中直接用循环 event.get()获得事件。基于坐标的建立,可以轻松通过 x,y坐标 的移动来实现贪吃蛇的位置移动,使的游戏的建立更加简单。
摘要由CSDN通过智能技术生成

贪吃蛇设计



设计目标

运用 python设计出一个简单的贪吃蛇小游戏,以贪吃蛇游戏为目标,完成 游戏开始与结束的规则制定,游戏边界的绘制,物体随机的散落,蛇体的运动 与长度变化等功能模块。


一、需求分析

系统功能的基本要求: 游戏主界面设计; 蛇体运动控制; 物体随机出现; 游戏开始与结束的规则判定; 用户信息(积分等)读取。

二、存储结构设计

采用顺序存储结构 即把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑 关系由存储单元的邻接关系来体现,由此得到的存储表示。本程序借助列表实 现,其中每个存储空间含有所存元素本身的信息,元素之间的逻辑关系是通过 列表下标位置简单计算出来的线性表的顺序存储

1.算法设计

通过主函数中调用多个函数实现程序。 在主函数中实现游戏模块初始化、Pygame时钟对象和游戏的运行主体的加 载。在游戏运行主体的函数中实现游戏初始的定义、键盘输入的判断、食物的 显示、蛇的显示、蛇的移动、蛇是否存活、蛇是否吃到食物、窗体背景、分数 的显示、游戏速度的变化。 在显示食物的函数中,食物的主体用红色表示 在显示蛇的函数中,用列表的方式表示蛇的身体,蛇的边体颜色为蓝色, 其他为亮蓝色。 在移动蛇的函数中,用字典判断蛇头移动的方向,最后要把新生成的蛇头 1
2 长度插入蛇身中。 在判断蛇的存活中,分有两种导致蛇的死亡。一种蛇的头跟窗体的四边重 合;另一种是蛇的头碰到了自己的身体。 在判断蛇是否吃到食物中,当蛇吃到了食物,就重置食物的位置;当蛇没 有吃到实物,就向前移动,并删掉尾部一格。 定义获取食物的函数,食物获取为随机。 在这里,为了使游戏具有更好的体验,设置一个游戏开始和游戏结束的提 示界面函数。 最后定义显示分数的函数。

2.程序代码

代码如下(示例):

#主函数 defmain(): pygame.init() #模块初始化 snake_speed_clock=pygame.time.Clock() #创建 Pygame时钟对象 screen=pygame.display.set_mode((windows_width,windows_height)) #显示界面 screen.fill(white) #设置开始背景为白色
3 pygame.display.set_caption("Python贪吃蛇小游戏") #设置标题 show_start_info(screen) #欢迎信息 whileTrue: running_game(screen,snake_speed_clock) show_gameover_info(screen) #游戏运行主体 defrunning_game(screen,snake_speed_clock): startx=random.randint(3,map_width-8) s
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值