当前位置:首页>python>Python小游戏——贪吃蛇

Python小游戏——贪吃蛇

  • 2026-09-06 15:26:20
Python小游戏——贪吃蛇
微信号:
Matpy__Master

可后台滴滴小英熊学长欧~

Python贪吃蛇是一款简单、好玩的小游戏,也是很多初学者接触Python的一个好入门项目。在这个游戏中,玩家需要控制一条小蛇,在一个有边界的矩形区域内不断吃食物,使得小蛇不断变长,直到撞墙或者撞到自己的身体为止。

Python贪吃蛇的开发利用了Python中的pygame库,pygame是Python图形库里比较流行的一个,广泛用于制作各种2D游戏。Python贪吃蛇的代码比较简单,主要分为三个部分:初始化游戏界面、游戏逻辑和游戏结束。废话不多说,我们直接看效果。

以下视频来源于
MatpyMaster
通过上下左右箭头控制蛇的移动,尽可能多地吃食物,避免与边界或蛇身相撞。当蛇头碰到边界或蛇身时,游戏结束,得分将显示在游戏窗口左上角。
首先是初始化游戏界面,我们需要定义游戏区域大小、小蛇的位置、食物的位置等。然后需要定义游戏主循环,即while循环,不断更新小蛇的位置和长度,并且在小蛇吃到食物时加上分数。游戏逻辑中,需要判断小蛇是否撞到墙或者自己的身体,这一部分是比较关键的。当小蛇撞到墙或者自己的身体时,游戏结束,并且显示游戏得分。
import pygameimport random# 初始化游戏pygame.init()# 设定游戏界面大小、标题、背景颜色width, height = 800, 600screen = pygame.display.set_mode((width, height))pygame.display.set_caption('贪吃蛇')background = (255, 255, 255)# 定义蛇的初始位置、大小、颜色、速度snake_head = [280, 200]snake_body = [[280, 200], [260, 200], [240, 200]]snake_color = (0, 0, 0)snake_speed = 10direction = 'right'# 定义食物的初始位置、大小、颜色food_pos = [360, 280]food_color = (255, 0, 0)food_size = 10# 记录得分score = 0# 设置游戏循环标志和游戏速度running = Trueclock = pygame.time.Clock()# 定义游戏结束函数defgame_over():font = pygame.font.Font(None, 50)text = font.render('Game Over', True, (255, 0, 0))screen.blit(text, (250, 200))pygame.display.update()pygame.time.delay(2000)pygame.quit()# 游戏循环开始while running:# 处理事件for event in pygame.event.get():if event.type == pygame.QUIT:running = Falseelif event.type == pygame.KEYDOWN:if event.key == pygame.K_UP and direction != 'down':direction = 'up'elif event.key == pygame.K_DOWN and direction != 'up':direction = 'down'elif event.key == pygame.K_LEFT and direction != 'right':direction = 'left'elif event.key == pygame.K_RIGHT and direction != 'left':direction = 'right'# 移动蛇的身体if direction == 'up':snake_head[1] -= snake_speedelif direction == 'down':snake_head[1] += snake_speedelif direction == 'left':snake_head[0] -= snake_speedelif direction == 'right':snake_head[0] += snake_speedsnake_body.insert(0, list(snake_head))# 判断蛇是否吃到食物if snake_head == food_pos:food_pos = [random.randrange(1, width/food_size) * food_size,                    random.randrange(1, height/food_size) * food_size]score += 10else:snake_body.pop()# 绘制游戏界面screen.fill(background)font = pygame.font.Font(None, 30)text = font.render(f'Score: {score}', True, (0, 0, 0))screen.blit(text, (10, 10))pygame.draw.rect(screen, food_color, pygame.Rect(food_pos[0], food_pos[1],food_size, food_size))for pos in snake_body:pygame.draw.rect(screen, snake_color, pygame.Rect(pos[0], pos[1],snake_speed, snake_speed))# 判断游戏是否结束if snake_head[0] < 0or snake_head[0] > width - snake_speed or \       snake_head[1] < 0or snake_head[1] > height - snake_speed or \       snake_head in snake_body[1:]:game_over()pygame.display.update()clock.tick(10)# 退出游戏pygame.quit()
总之,Python贪吃蛇是一款非常适合初学者学习和练手的游戏。通过开发这个小游戏,不仅可以学习Python语言的基础知识,还可以学习pygame库的使用,熟悉游戏开发的流程和逻辑。相信这款小游戏一定会给你带来很多乐趣和收获!
小英熊学长会不定期matlab设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!有任何matlab和python相关的问题都可以在后台滴滴小英熊学长欧~

点个在看你最好看

最新文章

随机文章