冽:
编写一个贪吃蛇游戏。
这里提供一个简单的Python贪吃蛇游戏示例。
使用标准库 pygame 来实现图形界面:
首先,确保你已经安装了 pygame 库。如果没有安装,可以通过以下命令安装:
pip install pygame
然后,你可以使用以下代码来创建一个基本的贪吃蛇游戏:
import pygame
import time
import random
# 初始化pygame
pygame.init()
# 设置窗口大小
width, height = 640, 480
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('贪吃蛇')
# 颜色定义
white = (255, 255, 255)
red = (213, 50, 80)
green = (0, 255, 0)
blue = (50, 153, 213)
black = (0, 0, 0)
# 蛇的初始位置和长度
snake_pos = [100, 50]
snake_body = [[100, 50], [90, 50], [80, 50]]
snake_length = len(snake_body)
direction = 'RIGHT'
change_to = direction
# 食物的初始位置
food_pos = [random.randrange(1, (width//10)) * 10, random.randrange(1, (height//10)) * 10]
# 游戏速度
clock = pygame.time.Clock()
food_spawn_time = 0
food_spawn_interval = 5 # 每秒生成食物
# 游戏主循环
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_UP or event.key == ord('w'):
change_to = 'UP'
if event.key == pygame.K_DOWN or event.key == ord('s'):
change_to = 'DOWN'
if event.key == pygame.K_LEFT or event.key == ord('a'):
change_to = 'LEFT'
if event.key == pygame.K_RIGHT or event.key == ord('d'):
change_to = 'RIGHT'
# 更新蛇头的位置
if change_to == 'UP':
snake_pos[1] -= 10
if change_to == 'DOWN':
snake_pos[1] += 10
if change_to == 'LEFT':
snake_pos[0] -= 10
if change_to == 'RIGHT':
snake_pos[0] += 10
# 检查蛇头是否撞到自己的身体
if snake_pos in snake_body:
print('Game Over')
pygame.time.wait(2000)
snake_body = [[100, 50], [90, 50], [80, 50]]
snake_length = len(snake_body)
snake_pos = [100, 50]
direction = 'RIGHT'
change_to = direction
# 检查蛇是否吃到食物
if snake_pos == food_pos:
snake_length += 1
food_spawn_time = time.time()
food_pos = [random.randrange(1, (width//10)) * 10, random.randrange(1, (height//10)) * 10]
# 移动蛇的身体
snake_body.insert(0, list(snake_pos))
if snake_length > len(snake_body):
snake_body.pop()
# 绘制游戏界面
screen.fill(black)
for pos in snake_body:
pygame.draw.rect(screen, green, pygame.Rect(pos[0], pos[1], 10, 10))
pygame.draw.rect(screen, red, pygame.Rect(food_pos[0], food_pos[1], 10, 10))
pygame.display.flip()
# 控制游戏速度
clock.tick(10)
# 控制食物生成速度
if time.time() - food_spawn_time > food_spawn_interval:
food_pos = [random.randrange(1, (width//10)) * 10, random.randrange(1, (height//10)) * 10]
food_spawn_time = time.time()
这段代码创建了一个具有基本功能的贪吃蛇游戏,包括键盘控制、食物生成和游戏结束条件。游戏的内存使用量将取决于你的操作系统和 pygame 库的实现,如果你需要进一步优化内存使用,可能需要考虑更复杂的内存管理技术,但这通常对于贪吃蛇这样的简单游戏不是必需的。
标签:10,游戏,Python,pos,food,贪吃蛇,snake,time,pygame From: https://blog.csdn.net/2401_86529300/article/details/140896161