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()