Код IT Загрузка примера кода…

Python main.py
BG_TOP = (18, 12, 40)
BG_BOT = (8, 20, 50)
FRAME_OUTER = (90, 60, 140)
FRAME_INNER = (140, 100, 200)
FRAME_HIGHLIGHT = (200, 170, 255)


def lerp_color(c1, c2, t):
    return tuple(int(a + (b - a) * t) for a, b in zip(c1, c2))


def make_gradient_bg(w, h):
    surf = pygame.Surface((w, h))
    for y in range(h):
        t = y / max(1, h - 1)
        c = lerp_color(BG_TOP, BG_BOT, t)
        pygame.draw.line(surf, c, (0, y), (w, y))
    return surf


def make_board_frame(w, h):
    surf = pygame.Surface((w, h), pygame.SRCALPHA)
    outer = pygame.Rect(0, 0, w, h)
    inner = outer.inflate(-FRAME * 2, -FRAME * 2)
    shadow = outer.move(0, 6)
    pygame.draw.rect(surf, (0, 0, 0, 80), shadow, border_radius=22)
    pygame.draw.rect(surf, FRAME_OUTER, outer, border_radius=20)
    pygame.draw.rect(surf, FRAME_INNER, outer.inflate(-4, -4), border_radius=18)
    hi = pygame.Rect(outer.x + 8, outer.y + 6, outer.w - 16, 8)
    pygame.draw.rect(surf, (*FRAME_HIGHLIGHT, 60), hi, border_radius=4)
    pygame.draw.rect(surf, (30, 22, 55), inner, border_radius=14)
    pygame.draw.rect(surf, (50, 35, 80), inner, width=2, border_radius=14)
    return surf


BG_SURFACE = make_gradient_bg(WIDTH, HEIGHT)
FRAME_SURFACE = make_board_frame(BOARD_W, BOARD_H)
BG_TOP = (18, 12, 40)
BG_BOT = (8, 20, 50)
FRAME_OUTER = (90, 60, 140)
FRAME_INNER = (140, 100, 200)
FRAME_HIGHLIGHT = (200, 170, 255)


def lerp_color(c1, c2, t):
    return tuple(int(a + (b - a) * t) for a, b in zip(c1, c2))


def make_gradient_bg(w, h):
    surf = pygame.Surface((w, h))
    for y in range(h):
        t = y / max(1, h - 1)
        c = lerp_color(BG_TOP, BG_BOT, t)
        pygame.draw.line(surf, c, (0, y), (w, y))
    return surf


def make_board_frame(w, h):
    surf = pygame.Surface((w, h), pygame.SRCALPHA)
    outer = pygame.Rect(0, 0, w, h)
    inner = outer.inflate(-FRAME * 2, -FRAME * 2)
    shadow = outer.move(0, 6)
    pygame.draw.rect(surf, (0, 0, 0, 80), shadow, border_radius=22)
    pygame.draw.rect(surf, FRAME_OUTER, outer, border_radius=20)
    pygame.draw.rect(surf, FRAME_INNER, outer.inflate(-4, -4), border_radius=18)
    hi = pygame.Rect(outer.x + 8, outer.y + 6, outer.w - 16, 8)
    pygame.draw.rect(surf, (*FRAME_HIGHLIGHT, 60), hi, border_radius=4)
    pygame.draw.rect(surf, (30, 22, 55), inner, border_radius=14)
    pygame.draw.rect(surf, (50, 35, 80), inner, width=2, border_radius=14)
    return surf


BG_SURFACE = make_gradient_bg(WIDTH, HEIGHT)
FRAME_SURFACE = make_board_frame(BOARD_W, BOARD_H)