60行Python代码实现闯关升级的贪吃蛇,很少有人能到第十关(附源码和成品)
Posted C小Y
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了60行Python代码实现闯关升级的贪吃蛇,很少有人能到第十关(附源码和成品)相关的知识,希望对你有一定的参考价值。
一、前言
二、实现效果
个人最高纪录
三、环境要求
- python 3+
- pygame包 安装命令:打开cmd 输入:
pip install pygame
四、源码和成品分享
1. 完整版源码扫下方码,回复:贪吃蛇源码,进行获取;
2. 可直接运行版扫下方码,回复:贪吃蛇游戏,进行获取;
蛇的身体判断逻辑和食物代码如下:
import pygame,sys,random
SCREEN,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 = curkey
class 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 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。
以上是关于60行Python代码实现闯关升级的贪吃蛇,很少有人能到第十关(附源码和成品)的主要内容,如果未能解决你的问题,请参考以下文章
68行Python代码实现带难度升级的贪吃蛇,你能坚持到第10关吗