用Python做贪吃蛇
时间: 2023-11-19 21:40:47 浏览: 77
好的,让我们来一起用 Python 来实现一个简单的贪吃蛇游戏:
首先,需要导入一些模块:
```python
import pygame
import random
```
接着,定义一些常量,如窗口大小、蛇身大小、食物大小等:
```python
# 窗口大小
WINDOW_WIDTH = 600
WINDOW_HEIGHT = 600
# 蛇身大小
SNAKE_SIZE = 20
# 食物大小
FOOD_SIZE = 20
```
接下来,定义一些颜色,如白色、黑色、红色等:
```python
# 颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
```
然后,定义一些变量,如蛇的位置、初始方向、速度等:
```python
# 蛇的位置
snake_x = WINDOW_WIDTH // 2
snake_y = WINDOW_HEIGHT // 2
# 蛇的方向
snake_direction = 'right'
# 蛇的速度
snake_speed = SNAKE_SIZE
```
接着,定义一些函数,如绘制蛇、绘制食物、移动蛇等:
```python
# 绘制蛇
def draw_snake(surface, color, x, y):
pygame.draw.rect(surface, color, [x, y, SNAKE_SIZE, SNAKE_SIZE])
# 绘制食物
def draw_food(surface, color, x, y):
pygame.draw.rect(surface, color, [x, y, FOOD_SIZE, FOOD_SIZE])
# 移动蛇
def move_snake(direction, x, y, speed):
if direction == 'up':
y -= speed
elif direction == 'down':
y += speed
elif direction == 'left':
x -= speed
elif direction == 'right':
x += speed
return x, y
```
最后,实现游戏主循环:
```python
# 初始化pygame
pygame.init()
# 创建窗口
window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
pygame.display.set_caption('Snake Game')
# 初始化游戏
food_x = random.randint(0, WINDOW_WIDTH - FOOD_SIZE)
food_y = random.randint(0, WINDOW_HEIGHT - FOOD_SIZE)
# 游戏主循环
running = True
while running:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 绘制背景
window.fill(BLACK)
# 绘制蛇
draw_snake(window, WHITE, snake_x, snake_y)
# 绘制食物
draw_food(window, RED, food_x, food_y)
# 移动蛇
snake_x, snake_y = move_snake(snake_direction, snake_x, snake_y, snake_speed)
# 更新屏幕
pygame.display.update()
# 退出pygame
pygame.quit()
```
这样,一个简单的贪吃蛇游戏就完成了。不过,这只是一个基础版本,还有很多可以完善的地方,比如蛇的长度、边界检测、碰撞检测等。
阅读全文