commit faab07a4932f373551fd6276b61c5ed4a08b0602 Author: gyg Date: Wed Mar 18 09:47:20 2026 +0300 Add pygame hare program diff --git a/lb3_draw_zaic.py b/lb3_draw_zaic.py new file mode 100644 index 0000000..546efae --- /dev/null +++ b/lb3_draw_zaic.py @@ -0,0 +1,159 @@ +import pygame +from pygame.draw import * + +pygame.init() + +FPS = 30 +screen = pygame.display.set_mode((400, 400)) + +# Используемые цвета +BLACK = (0, 0, 0) +WHITE = (255, 255, 255) +PINK = (255, 200, 200) +DARK_PINK = (255, 150, 150) +LIGHT_GREEN = (220, 255, 220) +BROWN = (180, 130, 80) +DARK_BROWN = (160, 110, 60) + +# Определяем функции для рисования частей зайца +def draw_body(surface, x, y, width, height, color): # Функция рисует тело зайца + ''' + Рисует тело зайца. + surface - объект pygame.Surface + x, y - координаты центра изображения + width, height - ширина и высота изображения + color - цвет, заданный в формате, подходящем для pygame.Color + ''' + ellipse(surface, color, (x - width // 2, y - height // 2, width, height)) + +def draw_ear(surface, x, y, width, height, color): # Фуекция рисует уши + ''' + Рисует ухо зайца. + surface - объект pygame.Surface + x, y - координаты центра изображения + width, height - ширина и высота изображения + color - цвет, заданный в формате, подходящем для pygame.Color + ''' + ellipse(surface, color, (x - width // 2, y - height // 2, width, height)) + + +def draw_head(surface, x, y, size, color): # Функция рисует голову + ''' + Рисует голову зайца. + surface - объект pygame.Surface + x, y - координаты центра изображения + size - диаметр головы + color - цвет, заданный в формате, подходящем для pygame.Color + ''' + circle(surface, color, (x, y), size // 2) + + + +def draw_leg(surface, x, y, width, height, color): # Функци ярисует задние ноги + ''' + Рисует ногу зайца. + surface - объект pygame.Surface + x, y - координаты центра изображения + width, height - ширина и высота изображения + color - цвет, заданный в формате, подходящем для pygame.Color + ''' + ellipse(surface, color, (x - width // 2, y - height // 2, width, height)) + + +def draw_eyes(surface, x, y, size): + ''' + Рисует глаза зайца. + surface - объект pygame.Surface + x, y - координаты центра головы + size - размер головы + ''' + eye_size = size // 8 + # Белки глаз + circle(surface, WHITE, (x - size // 5, y - size // 8), eye_size // 1.5) + circle(surface, WHITE, (x + size // 5, y - size // 8), eye_size // 1.5) + # Зрачки + circle(surface, BLACK, (x - size // 5, y - size // 8), eye_size // 3) + circle(surface, BLACK, (x + size // 5, y - size // 8), eye_size // 3) + # Нос + circle(surface, DARK_PINK, (x, y + size // 10), eye_size // 2) + + +def draw_hare(surface, x, y, width, height, color): + ''' + Рисует зайца на экране. + surface - объект pygame.Surface + x, y - координаты центра изображения + width, height - ширина и высота изображения + color - цвет, заданный в формате, подходящем для pygame.Color + ''' + # Тело + body_width = width // 2 + body_height = height // 2 + body_y = y + body_height // 4 + draw_body(surface, x, body_y, body_width, body_height, color) + + # Голова_1 (рисуем первый раз, чтобы примерить на неё уши) + head_size = height // 3 + draw_head(surface, x, y - head_size // 2, head_size, color) + + # Уши (рисуем после головы, но до глаз) + ear_height = height // 3 + ear_y = y - height // 2 + ear_height // 2 + ear_width = width // 10 + for ear_x in (x - head_size // 4, x + head_size // 4): + draw_ear(surface, ear_x, ear_y, ear_width, ear_height, color) + # Добавим внутреннюю часть уха (розовую) + draw_ear(surface, ear_x, ear_y + 3, ear_width // 2, ear_height // 1.5, PINK) + + # Голова_2 (рисуем второй раз, чтобы закрыть часть ушей) + head_size = height // 3 + draw_head(surface, x, y - head_size // 2, head_size, color) + + + # Глаза + draw_eyes(surface, x, y - head_size // 2, head_size) + + # Задние лапы + back_leg_height = height // 10 + back_leg_y = y + height // 3 + back_leg_width = width // 3 + for leg_x in (x - width // 5, x + width // 5): + draw_leg(surface, leg_x, back_leg_y, back_leg_width, back_leg_height, color) + + # Передние лапы + front_leg_height = height // 4 + front_leg_y = y + height // 12 + front_leg_width = width // 7 + + # Левая передняя лапа + draw_leg(surface, x - width // 5, front_leg_y, front_leg_width, front_leg_height, color) + # Правая передняя лапа + draw_leg(surface, x + width // 5, front_leg_y, front_leg_width, front_leg_height, color) + + # Маленькие лапки(передние лапы) + foot_color = DARK_BROWN + foot_width = front_leg_width // 1.2 + foot_height = front_leg_height // 4 + + draw_leg(surface, x - width // 5, front_leg_y + front_leg_height // 1.8, foot_width, foot_height, foot_color) + draw_leg(surface, x + width // 5, front_leg_y + front_leg_height // 1.8, foot_width, foot_height, foot_color) + + +# Основная программа +# Очищаем экран светло-зеленым фоном (как травка) +screen.fill(LIGHT_GREEN) + +# Рисуем зайца в центре экрана +draw_hare(screen, 200, 200, 240, 380, BROWN) + +pygame.display.update() +clock = pygame.time.Clock() +finished = False + +while not finished: + clock.tick(FPS) + for event in pygame.event.get(): + if event.type == pygame.QUIT: + finished = True + +pygame.quit()