python 贪吃蛇
python 贪吃蛇
python 贪吃蛇

用户548851268
2023年12月19日
|
浏览 128
开发编程
Python贪吃蛇是一个经典的编程项目,你可以使用Python编写一个简单的贪吃蛇游戏。以下是一个示例代码,实现了基本的贪吃蛇功能:
复制代码
import pygame
import random
# 游戏窗口的宽度和高度
width = 640
height = 480
# 贪吃蛇身体方块的大小
block_size = 20
# 初始化pygame
pygame.init()
# 创建游戏窗口
window = pygame.display.set_mode((width, height))
pygame.display.set_caption("贪吃蛇")
# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
# 游戏主循环
def game_loop():
game_over = False
game_close = False
# 贪吃蛇的初始位置
x = width // 2
y = height // 2
# 贪吃蛇的移动速度
x_change = 0
y_change = 0
# 食物的初始位置
food_x = round(random.randrange(0, width - block_size) / block_size) * block_size
food_y = round(random.randrange(0, height - block_size) / block_size) * block_size
while not game_over:
while game_close:
# 游戏结束时显示得分信息
window.fill(black)
font_style = pygame.font.SysFont(None, 50)
message = font_style.render("Game Over! Press Q-Quit or C-Play Again", True, white)
window.blit(message, [width // 6, height // 3])
pygame.display.update()
# 处理游戏结束时的事件
for event in pygame.event.get():
if event.type == pygame.QUIT:
game_over = True
game_close = False
if event.type == pygame.KEYDOWN:
if event.key == pygame.K_q:
game_over = True
game_close = False
if event.key == pygame.K_c:
game_loop()
# 处理游戏中的事件
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_x and y == food_y:
food_x = round(random.randrange(0, width - block_size) / block_size) * block_size
food_y = round(random.randrange(0, height - block_size) / block_size) * block_size
# 绘制游戏窗口
window.fill(black)
pygame.draw.rect(window, red, [food_x, food_y, block_size, block_size])
pygame.draw.rect(window, white, [x, y, block_size, block_size])
pygame.display.update()
# 判断贪吃蛇是否撞到了边界或自己的身体
if x >= width or x < 0 or y >= height or y < 0:
game_close = True
pygame.time.Clock().tick(10)
pygame.quit()
# 启动游戏循环
game_loop()
这段代码使用pygame库创建了一个简单的贪吃蛇游戏窗口,贪吃蛇的移动通过键盘控制,当贪吃蛇吃到食物时会增加长度。游戏结束条件为贪吃蛇撞到边界或自己的身体。你可以在此基础上进行修改和扩展,实现更多功能。
我要提问
复制内容
分享给好友
AI编程问答网 免责声明:
以上内容除特别注明外均来源于网友提问,AI编程问答网回答,权益归原著者所有;
