以下是一个简单的贪吃蛇 Python 代码示例,使用 Pygame 库实现:

import pygame
import random

# 初始化pygame
pygame.init()

# 设置窗口大小和标题
screen_width = 640
screen_height = 480
screen = pygame.display.set_mode((screen_width, screen_height))
pygame.display.set_caption('贪吃蛇')

# 定义颜色
white = (255, 255, 255)
black = (0, 0, 0)
red = (255, 0, 0)
green = (0, 255, 0)

# 定义字体
font = pygame.font.SysFont(None, 25)

# 定义蛇和食物的大小
block_size = 10

# 定义时钟对象
clock = pygame.time.Clock()

# 定义函数,用于显示消息
def message_to_screen(msg, color):
    screen_text = font.render(msg, True, color)
    screen.blit(screen_text, [screen_width/2, screen_height/2])

# 定义函数,用于绘制蛇
def draw_snake(snake_list):
    for x in snake_list:
        pygame.draw.rect(screen, green, [x[0], x[1], block_size, block_size])

# 开始游戏循环
def gameLoop():
    # 定义游戏结束标志
    game_over = False

    # 定义方向初始值
    direction = 'right'

    # 初始化蛇的位置和长度
    snake_list = []
    snake_length = 1
    snake_x = screen_width/2
    snake_y = screen_height/2

    # 初始化食物的位置
    food_x = round(random.randrange(0, screen_width-block_size) / 10.0) * 10.0
    food_y = round(random.randrange(0, screen_height-block_size) / 10.0) * 10.0

    # 开始游戏循环
    while not game_over:
        # 处理事件
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                game_over = True
            elif event.type == pygame.KEYDOWN:
                if event.key == pygame.K_LEFT:
                    direction = 'left'
                elif event.key == pygame.K_RIGHT:
                    direction = 'right'
                elif event.key == pygame.K_UP:
                    direction = 'up'
                elif event.key == pygame.K_DOWN:
                    direction = 'down'

        # 移动蛇的位置
        if direction == 'right':
            snake_x += block_size
        elif direction == 'left':
            snake_x -= block_size
        elif direction == 'up':
            snake_y -= block_size
        elif direction == 'down':
            snake_y += block_size

        # 判断蛇是否吃到了食物
        if snake_x == food_x and snake_y == food_y:
            snake_length += 1
            food_x = round(random.randrange(0, screen_width-block_size) / 10.0) * 10.0
            food_y = round(random.randrange(0, screen_height-block_size) / 10.0) * 10.0

        # 绘制背景和食物
        screen.fill(white)
        pygame.draw.rect(screen, red, [food_x, food_y, block_size, block_size])

        # 将蛇的位置添加到列表中
        snake_head = []
        snake_head.append(snake_x)
        snake_head.append(snake_y)
        snake_list.append(snake_head)

        # 如果蛇的长度超过了限制,移除列表中的第一个元素
        if len(snake_list) > snake_length:
            del snake_list[0]

        # 判断是否撞到了边界或者自己
        for segment in snake_list[:-1]:
            if segment == snake_head:
                game_over = True
        if snake_x >= screen_width or snake_x < 0 or snake_y >= screen_height or snake_y < 0:
            game_over = True

        # 绘制蛇
        draw_snake(snake_list)

        # 更新屏幕
        pygame.display.update()

        # 控制游戏帧率
        clock.tick(10)

    # 退出pygame
    pygame.quit()

# 开始游戏循环
gameLoop()

在这个代码示例中,我们使用了 pygame 模块来创建一个简单的贪吃蛇游戏。在游戏循环中,我们首先处理事件,然后移动蛇的位置,并判断蛇是否吃到了食物。接下来,我们绘制背景、食物和蛇,并判断是否撞到了边界或者自己。最后,我们使用 pygame.display.update() 方法来更新屏幕,使用 clock.tick(10) 方法来控制游戏帧率。

代码解释:

  1. 导入必要的库: import pygameimport random 分别用于游戏开发和随机数生成。
  2. 初始化 Pygame: pygame.init() 初始化 Pygame 库。
  3. 设置窗口大小和标题: screen_widthscreen_height 定义窗口大小,screen = pygame.display.set_mode((screen_width, screen_height)) 创建游戏窗口,pygame.display.set_caption('贪吃蛇') 设置窗口标题。
  4. 定义颜色: 定义了游戏中的不同颜色。
  5. 定义字体: 定义了游戏中的字体,font = pygame.font.SysFont(None, 25) 使用默认字体大小为 25。
  6. 定义蛇和食物的大小: block_size = 10 定义了蛇和食物的像素大小。
  7. 定义时钟对象: clock = pygame.time.Clock() 用于控制游戏帧率。
  8. 定义显示消息函数: message_to_screen(msg, color) 用于在屏幕上显示文本消息。
  9. 定义绘制蛇函数: draw_snake(snake_list) 用于绘制蛇。
  10. 开始游戏循环: gameLoop() 函数包含了游戏的主要逻辑。
  11. 处理事件: 使用 pygame.event.get() 获取用户输入等事件。
  12. 移动蛇的位置: 根据用户输入的方向,更新蛇的坐标。
  13. 判断蛇是否吃到了食物: 如果蛇的头部坐标与食物坐标一致,则蛇增长,食物重新生成随机位置。
  14. 绘制背景、食物和蛇: 使用 screen.fill(white) 清理屏幕,使用 pygame.draw.rect() 绘制食物,使用 draw_snake(snake_list) 绘制蛇。
  15. 判断是否撞到了边界或者自己: 检查蛇是否碰到了边界或自身,如果碰到则游戏结束。
  16. 更新屏幕: 使用 pygame.display.update() 更新游戏窗口。
  17. 控制游戏帧率: 使用 clock.tick(10) 控制游戏帧率为 10 帧每秒。
  18. 退出 Pygame: 使用 pygame.quit() 退出 Pygame 库。

这个简单的代码示例演示了使用 Pygame 创建一个基本的贪吃蛇游戏的基本步骤。通过修改代码,你可以添加更多功能,例如增加游戏难度、添加得分系统、添加背景音乐等等。

Python 贪吃蛇游戏代码示例 - 简单易懂

原文地址: https://www.cveoy.top/t/topic/oXYr 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录