资讯专栏INFORMATION COLUMN

60行Python代码实现闯关升级的贪吃蛇,很少有人能到第十关(附源码和成品)

cgh1999520 / 2926人阅读

摘要:由于年底发明,第一个公开发行版发行于年。像语言一样源代码同样遵循协议。官方宣布,年月日,停止的更新。被确定为最后一个版本。的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

一、前言

<<点我获取【可直接运行】的文件,或滑至文末获取<<



<<点我获取【可直接运行】的文件,或滑至文末获取<<

二、实现效果


个人最高纪录



三、环境要求

  1. python 3+
  2. pygame包 安装命令:打开cmd 输入: pip install pygame

四、源码和成品分享





1. 完整版源码扫下方码,回复:贪吃蛇源码,进行获取;
2. 可直接运行版扫下方码,回复:贪吃蛇游戏,进行获取;


蛇的身体判断逻辑和食物代码如下:

import pygame,sys,randomSCREEN,dirction_node = 600, {pygame.K_LEFT:["left",-25],pygame.K_RIGHT:["right",25],pygame.K_UP:["top",-25],pygame.K_DOWN:["top",25]}  # 屏幕尺寸,移动的定义class Snake:  # 蛇类    def __init__(self):  # 初始化各种需要的属性 [开始时默认向右/身体块x5]        self.dirction, self.body = pygame.K_RIGHT, []        [self.add_node() for _ in range(5)]    def add_node(self):        node = pygame.Rect(((self.body[0].left, self.body[0].top) if self.body else (0, 0)) + (25, 25))  # 随时增加蛇块        setattr(node, dirction_node[self.dirction][0], getattr(node, dirction_node[self.dirction][0]) + dirction_node[self.dirction][1])        self.body.insert(0, node)    def is_dead(self):        body_h = self.body[0]        if body_h.x not in range(SCREEN) or body_h.y not in range(SCREEN) or body_h in self.body[1:]:  # 撞墙、撞自己则死亡            return True    def move(self):        self.add_node()        self.body.pop()    def change_direction(self, curkey):  # 改变方向 但是左右、上下不能被逆向改变        LR, UD = [pygame.K_LEFT, pygame.K_RIGHT], [pygame.K_UP, pygame.K_DOWN]        if curkey in LR + UD:            if not ((curkey in LR) and (self.dirction in LR) or (curkey in UD) and (self.dirction in UD)):                self.dirction = curkeyclass Food:  # 食物类    def __init__(self):        self.rect = pygame.Rect(-25, 0, 25, 25)    def remove(self):        self.rect.x = -25    def set(self):        if self.rect.x == -25:            allpos = [pos for pos in range(75, SCREEN - 75, 25)]  # 生成的食物距离墙在75 ~ SCREEN-55 之间            self.rect.left, self.rect.top = random.choice(allpos), random.choice(allpos)def show_text(screen, pos, text, color, font_size=30):    cur_font = pygame.font.SysFont("SimHei", font_size)  # 设置文字样式    text_fmt = cur_font.render(text, True, color)  # 设置文字内容    screen.blit(text_fmt, pos)  # 绘制文字

五、总结

就这样,我们从0开始优雅的揭开了pygame的面纱!你可以利用这个做一些有趣的事情

当然,这个可能难度不大,对于老鸟老说很简单(勿喷)。

但是对于新手来说特别适合练手,当然,这个代码不知道能保存多久会失效。所以请抓紧收藏尝试!如果感觉可以还请奉献爱心点点赞!

当然,这个只是我脑洞的一个开端,好玩的还在后面!


Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。

Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。

像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协议。

官方宣布,2020 年 1 月 1 日, 停止 Python 2 的更新。

Python 2.7 被确定为最后一个 Python 2.x 版本。


Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124518.html

相关文章

  • python完成简单贪吃小游戏编号

      此篇文章主要是详细介绍了python完成简单的贪吃蛇小游戏附编号,文章内容紧扣主题进行详尽的基本介绍,具有很强的参考意义,需用的朋友可以学习一下  序言:  不知道有没有同学们和我一样,最开始触碰程序编程的动机就是为了做一个游戏打?  接下来要跟大家分享是指一个pygame所写的贪食蛇手机游戏:  贪食蛇这一个手机游戏在编程设计里的熟客,由于:  简易,最基本游戏情节你只需要蛇和食物2个就可以...

    89542767 评论0 收藏0
  • sf双十一解密答案及详解及分析思路

    摘要:花了一个小时的时间,终于全部解密。第四关光棍节程序员闯关秀第关这一关让我们观察我们密码的规律。然而我这里主要要表达的是一种分析思路。哈哈,到时符合主题双十一。 注意 由于此处文章有长度限制,本文是删减版,如需查阅完整版,请访问如下地址: 镜像一或者镜像二 前言 今天上班百无聊赖的在群里发现一个有趣的链接光棍节程序员闯关秀,点开之后浑身颤抖如获至宝啊。我最喜欢这种挑战了。花了一个小时的时...

    el09xccxy 评论0 收藏0
  • 一步步教你怎么用python贪吃游戏

    摘要:目录引言环境需求分析代码实现后记引言前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个称霸的年代,这款游戏可是经典中的经典啊而用蛇玩贪吃蛇,那再合适不过了 目录0 引言1 环境2 需求分析3 代码实现4 后记 0 引言 前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)玩Snake(贪吃蛇)...

    spademan 评论0 收藏0
  • 爆款游戏《贪吃大作战》 Python 实现

    摘要:感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核。不过现在微信已经悍然屏蔽了它的分享这个游戏就是现在免费榜排名第一的贪吃蛇大作战。不过这实在是一个挺好实现的游戏,于是一时技痒,拿做了一个实现。 感觉游戏审核新政实施后,国内手游市场略冷清,是不是各家的新游戏都在排队等审核。媒体们除了之前竞相追捧《Pokemon Go》热闹了一把,似乎也听不到什么声音了。直到最...

    chaos_G 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<