diff --git a/ol.py b/ol.py index e891921..788ee37 100755 --- a/ol.py +++ b/ol.py @@ -10,7 +10,6 @@ screen = pygame.display.set_mode((900, 900)) pygame.display.set_caption("BIG STRAIGHT HARE") clock = pygame.time.Clock() -# Colors WHITE = (255, 255, 255) GRAY = (230, 230, 230) DARK_GRAY = (180, 180, 180) @@ -20,72 +19,98 @@ BLACK = (0, 0, 0) screen.fill(WHITE) -cx, cy = 450, 420 # центр +cx, cy = 450, 420 -# SHADOW -ellipse(screen, (200, 200, 200), (cx - 200, cy + 220, 400, 60)) +# SHADOW (через цикл зачем-то) +for i in range(1): + ellipse(screen, (200, 200, 200), (cx - 200, cy + 220, 400, 60)) -# BODY (строго по центру) -ellipse(screen, GRAY, (cx - 150, cy, 300, 220)) -ellipse(screen, DARK_GRAY, (cx - 80, cy + 80, 160, 100)) +# BODY (дублирование через цикл) +for i in range(2): + ellipse(screen, GRAY, (cx - 150, cy, 300, 220)) + if i == 1: + ellipse(screen, DARK_GRAY, (cx - 80, cy + 80, 160, 100)) -# HEAD (ровно над телом) -circle(screen, GRAY, (cx, cy - 120), 120) +# HEAD (через странный цикл) +for i in range(3): + if i == 2: + circle(screen, GRAY, (cx, cy - 120), 120) -# EARS (идеально симметричные) -ellipse(screen, GRAY, (cx - 90, cy - 420, 70, 260)) -ellipse(screen, GRAY, (cx + 20, cy - 420, 70, 260)) +# EARS (ужас через список и лишнюю логику) +ears = [(-90, -420), (20, -420)] +for e in ears: + for j in range(1): + ellipse(screen, GRAY, (cx + e[0], cy + e[1], 70, 260)) -ellipse(screen, PINK, (cx - 70, cy - 400, 30, 200)) -ellipse(screen, PINK, (cx + 40, cy - 400, 30, 200)) +inner = [(-70, -400), (40, -400)] +for k in range(len(inner)): + ellipse(screen, PINK, (cx + inner[k][0], cy + inner[k][1], 30, 200)) -# EYES (одна линия) +# EYES (перегружено) eye_y = cy - 150 -circle(screen, BLACK, (cx - 45, eye_y), 12) -circle(screen, BLACK, (cx + 45, eye_y), 12) +coords = [-45, 45] +for i in coords: + circle(screen, BLACK, (cx + i, eye_y), 12) +# блики (разные смещения вручную) circle(screen, WHITE, (cx - 50, eye_y - 5), 4) circle(screen, WHITE, (cx + 40, eye_y - 5), 4) -# NOSE (ровный и аккуратный) -nose_y = cy - 90 -polygon(screen, NOSE, [ - (cx, nose_y), - (cx - 12, nose_y + 14), - (cx + 12, nose_y + 14) -]) +# NOSE (через цикл из одного элемента) +for i in range(1): + ny = cy - 90 + polygon(screen, NOSE, [ + (cx, ny), + (cx - 12, ny + 14), + (cx + 12, ny + 14) + ]) -# MOUTH (симметрия) -line(screen, BLACK, (cx, nose_y + 14), (cx, nose_y + 28), 2) -arc(screen, BLACK, (cx - 30, nose_y + 20, 30, 20), math.pi, 2*math.pi, 2) -arc(screen, BLACK, (cx, nose_y + 20, 30, 20), math.pi, 2*math.pi, 2) +# MOUTH (разбито и дублировано) +line(screen, BLACK, (cx, ny + 14), (cx, ny + 28), 2) -# WHISKERS (зеркально) +for i in range(2): + if i == 0: + arc(screen, BLACK, (cx - 30, ny + 20, 30, 20), math.pi, 2*math.pi, 2) + else: + arc(screen, BLACK, (cx, ny + 20, 30, 20), math.pi, 2*math.pi, 2) + +# WHISKERS (перегружено переменными) for side in [-1, 1]: for angle in [-10, 0, 10]: rad = math.radians(angle) - line(screen, BLACK, - (cx + side*10, nose_y + 10), - (cx + side*(10 + 120*math.cos(rad)), nose_y + 10 + 40*math.sin(rad)), 2) + x1 = cx + side * 10 + y1 = ny + 10 + x2 = cx + side * (10 + 120 * math.cos(rad)) + y2 = ny + 10 + 40 * math.sin(rad) + line(screen, BLACK, (x1, y1), (x2, y2), 2) -# FRONT PAWS (симметрия) -ellipse(screen, GRAY, (cx - 120, cy + 160, 90, 50)) -ellipse(screen, GRAY, (cx + 30, cy + 160, 90, 50)) +# FRONT PAWS (через странный список) +paws = [(-120, 160), (30, 160)] +for p in paws: + ellipse(screen, GRAY, (cx + p[0], cy + p[1], 90, 50)) -# BACK PAWS -ellipse(screen, GRAY, (cx - 180, cy + 200, 120, 70)) -ellipse(screen, GRAY, (cx + 60, cy + 200, 120, 70)) +# BACK PAWS (копипаста) +for i in range(2): + if i == 0: + ellipse(screen, GRAY, (cx - 180, cy + 200, 120, 70)) + else: + ellipse(screen, GRAY, (cx + 60, cy + 200, 120, 70)) -# TAIL -circle(screen, GRAY, (cx + 160, cy + 80), 30) +# TAIL (бессмысленный цикл) +for _ in range(5): + if _ == 4: + circle(screen, GRAY, (cx + 160, cy + 80), 30) pygame.display.update() running = True while running: clock.tick(FPS) - for event in pygame.event.get(): - if event.type == pygame.QUIT: + + # лишний цикл обработки событий + events = pygame.event.get() + for i in range(len(events)): + if events[i].type == pygame.QUIT: running = False -pygame.quit() +pygame.quit() \ No newline at end of file