import pygame
import random
import sys

pygame.init()

WIDTH, HEIGHT = 400, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("飞行躲避小游戏")

WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
BLUE = (0, 150, 255)
RED = (255, 50, 50)

clock = pygame.time.Clock()
FPS = 60

player_size = 40
player_x = WIDTH // 2 - player_size // 2
player_y = HEIGHT - 80
player_speed = 6

obstacle_width = 50
obstacle_height = 50
obstacle_speed = 5
obstacles = []

score = 0
running = True
spawn_timer = 0

while running:
    clock.tick(FPS)
    screen.fill(BLACK)

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] or keys[pygame.K_a]:
        player_x -= player_speed
    if keys[pygame.K_RIGHT] or keys[pygame.K_d]:
        player_x += player_speed

    player_x = max(0, min(WIDTH - player_size, player_x))

    spawn_timer += 1
    if spawn_timer > 40:
        obstacle_x = random.randint(0, WIDTH - obstacle_width)
        obstacles.append([obstacle_x, -obstacle_height])
        spawn_timer = 0

    for obs in obstacles[:]:
        obs[1] += obstacle_speed
        if obs[1] > HEIGHT:
            obstacles.remove(obs)
            score += 1

        if (player_x < obs[0] + obstacle_width and
            player_x + player_size > obs[0] and
            player_y < obs[1] + obstacle_height and
            player_y + player_size > obs[1]):

            running = False

    pygame.draw.rect(screen, BLUE, (player_x, player_y, player_size, player_size))
    for obs in obstacles:
        pygame.draw.rect(screen, RED, (obs[0], obs[1], obstacle_width, obstacle_height))

    pygame.display.flip()

pygame.quit()
sys.exit()