import pygame
import random

# 初始化
pygame.init()

# 窗口设置
WIDTH = 400
HEIGHT = 600
win = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("简易驾驶小游戏")

# 颜色
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
GRAY = (50, 50, 50)
RED = (255, 0, 0)
GREEN = (0, 255, 0)

# 玩家小车
car_w = 50
car_h = 80
player_x = WIDTH // 2 - car_w // 2
player_y = HEIGHT - 120
speed = 6

# 障碍物（对面来车）
enemy_list = []
enemy_w = 50
enemy_h = 80
enemy_speed = 5
clock = pygame.time.Clock()
fps = 60

# 生成随机车辆


def create_enemy():
    x = random.choice([60, 175, 290])
    y = -100
    enemy_list.append([x, y])

# 画马路


def draw_road():
    win.fill(GRAY)
    # 道路边线
    pygame.draw.rect(win, WHITE, (40, 0, 10, HEIGHT))
    pygame.draw.rect(win, WHITE, (350, 0, 10, HEIGHT))


# 游戏主循环
run = True
create_enemy()

while run:
    clock.tick(fps)

    # 事件监听
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False

    # 按键控制
    keys = pygame.key.get_pressed()
    if keys[pygame.K_LEFT] and player_x > 50:
        player_x -= speed
    if keys[pygame.K_RIGHT] and player_x < WIDTH - 50 - car_w:
        player_x += speed

    draw_road()

    # 绘制玩家车
    pygame.draw.rect(win, GREEN, (player_x, player_y, car_w, car_h))

    # 移动&绘制敌方车辆
    for i in range(len(enemy_list)):
        enemy_list[i][1] += enemy_speed
        x, y = enemy_list[i]
        pygame.draw.rect(win, RED, (x, y, enemy_w, enemy_h))

        # 碰撞检测
        if (player_x < x + enemy_w and
            player_x + car_w > x and
            player_y < y + enemy_h and
                player_y + car_h > y):
            print("游戏结束！撞到车了")
            run = False

    # 移除出屏幕的车 + 刷新新车
    if enemy_list[0][1] > HEIGHT:
        enemy_list.pop(0)
        create_enemy()

    pygame.display.update()

pygame.quit()
