diff --git a/lb3_GLEB_fix.py b/lb3_GLEB_fix.py new file mode 100644 index 0000000..74d09b8 --- /dev/null +++ b/lb3_GLEB_fix.py @@ -0,0 +1,115 @@ +import pygame +import sys + +# Инициализация +pygame.init() +WIDTH, HEIGHT = 600, 600 +screen = pygame.display.set_mode((WIDTH, HEIGHT)) +pygame.display.set_caption("Кроликкк") + +# Цвета +WHITE = (255, 255, 255) +GRAY = (200, 200, 200) +PINK = (255, 180, 180) +BLACK = (0, 0, 0) + + +def draw_ears(surface): + """Рисует уши кролика с использованием циклов""" + # Позиции для левого и правого уха + ear_positions = [ + (250, 100, 40, 120), # левое ухо (внешняя часть) + (310, 100, 40, 120) # правое ухо (внешняя часть) + ] + + # Внешняя часть ушей + for x, y, w, h in ear_positions: + pygame.draw.ellipse(surface, GRAY, (x, y, w, h)) + + # Внутренняя часть ушей + inner_ear_positions = [ + (260, 110, 20, 80), # левое ухо (внутренняя часть) + (320, 110, 20, 80) # правое ухо (внутренняя часть) + ] + for x, y, w, h in inner_ear_positions: + pygame.draw.ellipse(surface, PINK, (x, y, w, h)) + + +def draw_head(surface): + """Рисует голову кролика""" + pygame.draw.circle(surface, GRAY, (300, 250), 80) + + +def draw_face(surface): + """Рисует лицо кролика с использованием циклов""" + x, y = 300, 250 + + # Глаза с бликами (цикл для повторяющихся элементов) + eye_offsets = [(-30, -10), (30, -10)] + for dx, dy in eye_offsets: + eye_x, eye_y = x + dx, y + dy + pygame.draw.circle(surface, BLACK, (eye_x, eye_y), 10) + pygame.draw.circle(surface, WHITE, (eye_x + 5, eye_y - 5), 4) + + # Нос + pygame.draw.circle(surface, PINK, (x, y + 20), 8) + + # Рот + pygame.draw.arc(surface, BLACK, (x - 15, y + 25, 30, 20), 3.14, 0, 2) + + # Усы (цикл для пар линий) + mustache_points = [ + (260, 270, 220, 265), # левый верхний + (260, 275, 220, 280), # левый нижний + (340, 270, 380, 265), # правый верхний + (340, 275, 380, 280) # правый нижний + ] + for x1, y1, x2, y2 in mustache_points: + pygame.draw.line(surface, BLACK, (x1, y1), (x2, y2), 2) + + +def draw_body(surface): + """Рисует тело кролика""" + pygame.draw.ellipse(surface, GRAY, (240, 330, 120, 150)) + + +def draw_limbs(surface): + """Рисует лапки и хвост с использованием циклов""" + # Лапки (левая и правая) + paw_positions = [ + (250, 450, 40, 50), # левая лапка + (310, 450, 40, 50) # правая лапка + ] + for x, y, w, h in paw_positions: + pygame.draw.ellipse(surface, GRAY, (x, y, w, h)) + + # Хвост + pygame.draw.circle(surface, WHITE, (300, 470), 20) + + +def draw_rabbit(surface): + """Отрисовывает всего кролика в правильном порядке""" + # Порядок отрисовки оптимизирован (сначала задние элементы) + draw_body(surface) + draw_head(surface) + draw_ears(surface) + draw_face(surface) + draw_limbs(surface) + + +# Основной цикл +running = True +clock = pygame.time.Clock() + +while running: + for event in pygame.event.get(): + if event.type == pygame.QUIT: + running = False + + screen.fill(WHITE) + draw_rabbit(screen) + pygame.display.flip() + clock.tick(60) + +pygame.quit() +sys.exit()