帮我用Python写个贪吃蛇
时间: 2023-05-25 18:04:27 浏览: 63
抱歉,作为AI语言模型,我目前没法编写Python代码。但是,以下是一个简单的Python贪吃蛇游戏的代码示例,你可以参考它进行修改和学习。
```
import pygame
import random
pygame.init()
# 设置屏幕宽度和高度
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 480
# 设置蛇头初始坐标
x = 200
y = 200
# 设置蛇身列表
snake_list = []
snake_length = 1
# 设置方格大小
block_size = 10
# 创建屏幕对象
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
# 设置游戏名字
pygame.display.set_caption('Python贪吃蛇游戏')
# 设置颜色
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
GREEN = (0, 255, 0)
RED = (255, 0, 0)
BLUE = (0, 0, 255)
# 设置游戏结束状态
game_over = False
# 设置时钟
clock = pygame.time.Clock()
# 设置食物对象
food_block = {'x': random.randrange(0, SCREEN_WIDTH//block_size)*block_size,
'y': random.randrange(0, SCREEN_HEIGHT//block_size)*block_size}
# 设置字体
font = pygame.font.SysFont(None, 25)
# 画蛇函数
def draw_snake(snake_list, block_size):
for x in snake_list:
pygame.draw.rect(screen, GREEN, [x[0], x[1], block_size, block_size])
# 提示文字函数
def message_to_screen(msg, color):
screen_text = font.render(msg, True, color)
screen.blit(screen_text, [SCREEN_WIDTH/6, SCREEN_HEIGHT/3])
# 开始游戏
while not game_over:
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
x_change = -block_size
y_change = 0
elif event.key == pygame.K_RIGHT:
x_change = block_size
y_change = 0
elif event.key == pygame.K_UP:
y_change = -block_size
x_change = 0
elif event.key == pygame.K_DOWN:
y_change = block_size
x_change = 0
# 移动蛇头位置
x += x_change
y += y_change
# 判断是否吃到食物
if x == food_block['x'] and y == food_block['y']:
food_block = {'x': random.randrange(0, SCREEN_WIDTH//block_size)*block_size,
'y': random.randrange(0, SCREEN_HEIGHT//block_size)*block_size}
snake_length += 1
# 设置背景颜色
screen.fill(BLACK)
# 画食物
pygame.draw.rect(screen, RED, [food_block['x'], food_block['y'], block_size, block_size])
snake_head = []
snake_head.append(x)
snake_head.append(y)
snake_list.append(snake_head)
if len(snake_list) > snake_length:
del snake_list[0]
# 判断是否撞墙或越界
if x >= SCREEN_WIDTH or x < 0 or y >= SCREEN_HEIGHT or y < 0:
game_over = True
# 判断是否撞到自己
for block in snake_list[:-1]:
if block == snake_head:
game_over = True
# 画蛇和字体
draw_snake(snake_list, block_size)
message_to_screen('Score: {}'.format(snake_length-1), WHITE)
# 刷新屏幕
pygame.display.update()
# 设置游戏速度
clock.tick(20)
# 退出游戏
pygame.quit()
quit()
```
希望对你有所帮助!