给出一个贪吃蛇python代码
时间: 2023-11-12 19:06:28 浏览: 41
以下是一个简单的贪吃蛇Python代码,使用了Pygame库。
```python
import pygame
import random
# 初始化Pygame库
pygame.init()
# 定义游戏窗口大小
window_width = 400
window_height = 400
# 定义游戏窗口
window = pygame.display.set_mode((window_width, window_height))
# 定义贪吃蛇的大小
snake_size = 10
# 定义贪吃蛇的颜色
snake_color = (0, 255, 0)
# 定义食物的颜色
food_color = (255, 0, 0)
# 定义初始位置
x = window_width // 2
y = window_height // 2
# 定义初始速度
speed_x = snake_size
speed_y = 0
# 定义食物的位置
food_x = round(random.randrange(0, window_width - snake_size) / 10.0) * 10.0
food_y = round(random.randrange(0, window_height - snake_size) / 10.0) * 10.0
# 定义初始分数
score = 0
# 定义字体
font = pygame.font.SysFont(None, 25)
# 定义游戏结束函数
def game_over():
# 显示游戏结束消息
message("Game Over", (255, 0, 0))
pygame.display.update()
# 等待3秒
pygame.time.wait(3000)
# 退出游戏
pygame.quit()
quit()
# 定义显示消息的函数
def message(msg, color):
# 渲染消息
text = font.render(msg, True, color)
# 显示消息
window.blit(text, [window_width / 6, window_height / 3])
# 游戏主循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
# 退出游戏
pygame.quit()
quit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
# 左移
speed_x = -snake_size
speed_y = 0
elif event.key == pygame.K_RIGHT:
# 右移
speed_x = snake_size
speed_y = 0
elif event.key == pygame.K_UP:
# 上移
speed_y = -snake_size
speed_x = 0
elif event.key == pygame.K_DOWN:
# 下移
speed_y = snake_size
speed_x = 0
# 移动贪吃蛇
x += speed_x
y += speed_y
# 判断是否吃到食物
if x == food_x and y == food_y:
food_x = round(random.randrange(0, window_width - snake_size) / 10.0) * 10.0
food_y = round(random.randrange(0, window_height - snake_size) / 10.0) * 10.0
score += 1
# 游戏结束判断
if x >= window_width or x < 0 or y >= window_height or y < 0:
game_over()
# 绘制窗口背景
window.fill((255, 255, 255))
# 绘制食物
pygame.draw.rect(window, food_color, [food_x, food_y, snake_size, snake_size])
# 绘制贪吃蛇
pygame.draw.rect(window, snake_color, [x, y, snake_size, snake_size])
# 显示分数
text = font.render("Score: " + str(score), True, (0, 0, 0))
window.blit(text, [0, 0])
# 更新窗口
pygame.display.update()
# 控制帧率
pygame.time.Clock().tick(10)
```
这个代码实现了一个基本的贪吃蛇游戏,玩家可以使用方向键控制贪吃蛇的移动方向,吃到食物会增加分数。当贪吃蛇撞到墙壁或自己时,游戏结束。