python小游戏——贪吃蛇游戏

简介: python小游戏——贪吃蛇游戏

1.调用外部库

pygame

2.代码实现

1. # 导入必要的模块
2. import pygame, sys, random
3. from pygame.locals import *
4. 
5. # 定义颜色
6. white = (255, 255, 255)
7. black = (0, 0, 0)
8. red = (255, 0, 0)
9. green = (0, 255, 0)
10. blue = (0, 0, 255)
11. 
12. # 定义游戏区域大小
13. width = 800
14. height = 600
15. 
16. # 定义蛇的大小
17. snake_size = 10
18. 
19. # 初始化pygame
20. pygame.init()
21. 
22. # 创建游戏区域
23. screen = pygame.display.set_mode((width, height))
24. pygame.display.set_caption('贪吃蛇')
25. 
26. # 定义蛇的初始位置
27. snake_x = width / 2
28. snake_y = height / 2
29. 
30. # 定义蛇的初始移动方向
31. snake_direction = 'right'
32. 
33. # 定义蛇的初始长度
34. snake_length = 1
35. 
36. # 定义蛇的身体
37. snake_body = []
38. 
39. # 定义食物的初始位置
40. food_x = round(random.randrange(0, width - snake_size) / 10.0) * 10.0
41. food_y = round(random.randrange(0, height - snake_size) / 10.0) * 10.0
42. 
43. # 定义游戏结束的标志
44. game_over = False
45. 
46. # 定义游戏循环
47. while not game_over:
48. # 处理事件
49. for event in pygame.event.get():
50. if event.type == QUIT:
51.             pygame.quit()
52.             sys.exit()
53. elif event.type == KEYDOWN:
54. if event.key == K_LEFT and snake_direction != 'right':
55.                 snake_direction = 'left'
56. elif event.key == K_RIGHT and snake_direction != 'left':
57.                 snake_direction = 'right'
58. elif event.key == K_UP and snake_direction != 'down':
59.                 snake_direction = 'up'
60. elif event.key == K_DOWN and snake_direction != 'up':
61.                 snake_direction = 'down'
62. 
63. # 移动蛇的身体
64. if snake_direction == 'right':
65.         snake_x += snake_size
66. elif snake_direction == 'left':
67.         snake_x -= snake_size
68. elif snake_direction == 'up':
69.         snake_y -= snake_size
70. elif snake_direction == 'down':
71.         snake_y += snake_size
72. 
73. # 判断蛇是否吃到食物
74. if snake_x == food_x and snake_y == food_y:
75. # 生成新的食物位置
76.         food_x = round(random.randrange(0, width - snake_size) / 10.0) * 10.0
77.         food_y = round(random.randrange(0, height - snake_size) / 10.0) * 10.0
78. # 增加蛇的长度
79.         snake_length += 1
80. 
81. # 更新蛇的身体
82.     snake_head = []
83.     snake_head.append(snake_x)
84.     snake_head.append(snake_y)
85.     snake_body.append(snake_head)
86. 
87. if len(snake_body) > snake_length:
88. del snake_body[0]
89. 
90. # 判断蛇是否撞到自己
91. for block in snake_body[:-1]:
92. if block == snake_head:
93.             game_over = True
94. 
95. # 绘制游戏区域
96.     screen.fill(black)
97. 
98. # 绘制蛇的身体
99. for block in snake_body:
100.         pygame.draw.rect(screen, green, [block[0], block[1], snake_size, snake_size])
101. 
102. # 绘制食物
103.     pygame.draw.rect(screen, red, [food_x, food_y, snake_size, snake_size])
104. 
105. # 更新屏幕
106.     pygame.display.update()
107. 
108. # 判断蛇是否撞到边界
109. if snake_x >= width or snake_x < 0 or snake_y >= height or snake_y < 0:
110.         game_over = True
111. 
112. # 控制游戏速度
113.     pygame.time.Clock().tick(20)
114. 
115. # 退出游戏
116. pygame.quit()
117. sys.exit()

3.游戏实测

相关文章
|
27天前
|
存储 人工智能 运维
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
155 48
【01】做一个精美的打飞机小游戏,浅尝阿里云通义灵码python小游戏开发AI编程-之飞机大战小游戏上手实践-优雅草央千澈-用ai开发小游戏尝试-分享源代码和游戏包
|
24天前
|
人工智能 Python
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
【02】做一个精美的打飞机小游戏,python开发小游戏-鹰击长空—优雅草央千澈-持续更新-分享源代码和游戏包供游玩-记录完整开发过程-用做好的素材来完善鹰击长空1.0.1版本
51 7
|
16天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
70 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
71 33
|
4月前
|
IDE 开发工具 Python
Python扑克游戏编程---摸大点
Python扑克游戏编程---摸大点
82 1
|
2月前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
2月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
2月前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
123 80
|
11天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
48 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
46 14

热门文章

最新文章