这里是一个简单的贪吃蛇游戏示例代码:

import pygame
import random

# 游戏窗口尺寸
WINDOW_WIDTH = 800
WINDOW_HEIGHT = 600

# 蛇身方块大小
BLOCK_SIZE = 20

# 游戏速度
FPS = 10

# 颜色定义
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GREEN = (0, 255, 0)
RED = (255, 0, 0)

# 初始化pygame模块
pygame.init()

# 创建游戏窗口
window = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT))
pygame.display.set_caption("贪吃蛇")

# 创建时钟对象,用于控制游戏帧率
clock = pygame.time.Clock()

# 蛇的初始位置和初始方向
snake_x = WINDOW_WIDTH // 2
snake_y = WINDOW_HEIGHT // 2
snake_direction = "UP"

# 蛇身列表
snake = [(snake_x, snake_y)]

# 食物的初始位置
food_x = random.randint(0, (WINDOW_WIDTH - BLOCK_SIZE) // BLOCK_SIZE) * BLOCK_SIZE
food_y = random.randint(0, (WINDOW_HEIGHT - BLOCK_SIZE) // BLOCK_SIZE) * BLOCK_SIZE

# 得分
score = 0

# 游戏循环
running = True
while running:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP and snake_direction != "DOWN":
                snake_direction = "UP"
            elif event.key == pygame.K_DOWN and snake_direction != "UP":
                snake_direction = "DOWN"
            elif event.key == pygame.K_LEFT and snake_direction != "RIGHT":
                snake_direction = "LEFT"
            elif event.key == pygame.K_RIGHT and snake_direction != "LEFT":
                snake_direction = "RIGHT"

    # 更新蛇的位置
    if snake_direction == "UP":
        snake_y -= BLOCK_SIZE
    elif snake_direction == "DOWN":
        snake_y += BLOCK_SIZE
    elif snake_direction == "LEFT":
        snake_x -= BLOCK_SIZE
    elif snake_direction == "RIGHT":
        snake_x += BLOCK_SIZE

    # 判断是否吃到食物
    if snake_x == food_x and snake_y == food_y:
        # 生成新的食物位置
        food_x = random.randint(0, (WINDOW_WIDTH - BLOCK_SIZE) // BLOCK_SIZE) * BLOCK_SIZE
        food_y = random.randint(0, (WINDOW_HEIGHT - BLOCK_SIZE) // BLOCK_SIZE) * BLOCK_SIZE
        # 增加蛇的长度和得分
        snake.append((snake_x, snake_y))
        score += 1
    else:
        # 移除蛇尾
        snake.pop(0)

    # 判断是否碰到边界或自身
    if snake_x < 0 or snake_x >= WINDOW_WIDTH or snake_y < 0 or snake_y >= WINDOW_HEIGHT or (snake_x, snake_y) in snake[:-1]:
        running = False

    # 渲染游戏界面
    window.fill(BLACK)
    pygame.draw.rect(window, RED, (food_x, food_y, BLOCK_SIZE, BLOCK_SIZE))
    for block in snake:
        pygame.draw.rect(window, GREEN, (block[0], block[1], BLOCK_SIZE, BLOCK_SIZE))
    pygame.display.update()

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

# 游戏结束后显示得分
font = pygame.font.Font(None, 36)
text = font.render(f"Score: {score}", True, WHITE)
text_rect = text.get_rect(center=(WINDOW_WIDTH // 2, WINDOW_HEIGHT // 2))
window.blit(text, text_rect)
pygame.display.update()

# 等待3秒后退出游戏
pygame.time.wait(3000)

# 退出pygame模块
pygame.quit()

这是一个简单的贪吃蛇游戏,使用了pygame库来实现游戏界面的渲染和事件处理。游戏窗口大小为800x600,蛇身方块大小为20x20。蛇的初始位置位于窗口中心,初始方向为向上。食物的初始位置随机生成。游戏每帧更新蛇的位置,判断是否吃到食物或碰到边界或自身,然后渲染游戏界面。游戏结束后显示得分,并等待3秒后退出游戏

python 38写一个贪吃蛇

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

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