编辑一段贪吃蛇的游戏程序
下面是一段简单的贪吃蛇游戏程序,使用Python语言编写:
import pygame
import random
# 初始化游戏
pygame.init()
# 设置游戏界面大小
screen = pygame.display.set_mode((400, 400))
# 设置游戏标题
pygame.display.set_caption("贪吃蛇")
# 定义蛇的初始位置和长度
snake = [(200, 200), (200, 210), (200, 220)]
# 定义食物的初始位置
food = (random.randint(0, 39) * 10, random.randint(0, 39) * 10)
# 定义蛇的移动方向
direction = "UP"
# 定义游戏循环
while True:
# 处理事件
for event in pygame.event.get():
if event.type == pygame.QUIT: # 点击关闭按钮
pygame.quit()
exit()
elif event.type == pygame.KEYDOWN: # 按下键盘按钮
if event.key == pygame.K_UP:
direction = "UP"
elif event.key == pygame.K_DOWN:
direction = "DOWN"
elif event.key == pygame.K_LEFT:
direction = "LEFT"
elif event.key == pygame.K_RIGHT:
direction = "RIGHT"
# 移动蛇
if direction == "UP":
snake.pop()
snake.insert(0, (snake[0][0], snake[0][1] - 10))
elif direction == "DOWN":
snake.pop()
snake.insert(0, (snake[0][0], snake[0][1] + 10))
elif direction == "LEFT":
snake.pop()
snake.insert(0, (snake[0][0] - 10, snake[0][1]))
elif direction == "RIGHT":
snake.pop()
snake.insert(0, (snake[0][0] + 10, snake[0][1]))
# 判断是否吃到食物
if snake[0] == food:
food = (random.randint(0, 39) * 10, random.randint(0, 39) * 10)
snake.append(snake[-1])
# 判断游戏是否结束
if snake[0][0] < 0 or snake[0][0] > 390 or snake[0][1] < 0 or snake[0][1] > 390:
pygame.quit()
exit()
for i in range(1, len(snake)):
if snake[0] == snake[i]:
pygame.quit()
exit()
# 绘制游戏界面
screen.fill((255, 255, 255))
pygame.draw.rect(screen, (255, 0, 0), (food[0], food[1], 10, 10))
for i in range(len(snake)):
pygame.draw.rect(screen, (0, 0, 255), (snake[i][0], snake[i][1], 10, 10))
pygame.display.update()
# 设置游戏帧率
pygame.time.delay(100)
这个程序使用Pygame库来实现游戏界面的绘制和事件处理。在程序中,我们定义了一个列表来表示蛇的身体,每个元素是一个二元组表示身体的一个方格的位置。初始时,蛇的长度为3个方格,位置在游戏界面中央。我们也定义了一个变量来表示食物的位置,初始随机生成。每当蛇头的位置与食物位置重合时,就将食物重新随机生成,并将蛇的长度加1。
在游戏循环中,我们通过处理事件来改变蛇的移动方向。根据方向的不同,我们在蛇头的前方添加一个方格来表示蛇的移动。每当蛇移动时,我们还要判断蛇是否碰到游戏边界或者自身身体,如果是则游戏结束。最后,我们使用Pygame库提供的方法来绘制游戏界面,包括蛇的身体和食物。我们也设置了一个延迟,来控制游戏帧率,使游戏看起来更加流畅
原文地址: https://www.cveoy.top/t/topic/hqjD 著作权归作者所有。请勿转载和采集!