import pygame

pygame.init()
WIDTH, HEIGHT = 480, 320
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("温度单位转换器")

font = pygame.font.SysFont("simhei", 28)
clock = pygame.time.Clock()

input_text = ""
mode = "C→F"
result = ""
button_rect = pygame.Rect(180, 130, 120, 45)

running = True
while running:
    screen.fill((25, 25, 35))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_BACKSPACE:
                input_text = input_text[:-1]
            elif event.unicode.isdigit() or event.unicode == ".":
                input_text += event.unicode

        if event.type == pygame.MOUSEBUTTONDOWN:
            if button_rect.collidepoint(event.pos):
                mode = "F→C" if mode == "C→F" else "C→F"

    try:
        value = float(input_text)
        result = f"{value * 9/5 + 32:.2f} ℉" if mode == "C→F" else f"{(value - 32) * 5/9:.2f} ℃"
    except:
        result = "--"

    title = font.render("温度单位转换器", True, (255, 255, 255))
    screen.blit(title, (140, 20))

    pygame.draw.rect(screen, (60, 60, 80), (180, 65, 240, 40))
    screen.blit(font.render(input_text, True, (255, 255, 255)), (190, 70))

    pygame.draw.rect(screen, (0, 180, 120), button_rect)
    screen.blit(font.render(mode, True, (255, 255, 255)),
                (button_rect.x + 18, button_rect.y + 10))

    screen.blit(font.render(f"结果: {result}", True, (0, 255, 150)), (40, 200))

    pygame.display.flip()
    clock.tick(30)

pygame.quit()
