From 65c49aaa7befd8b8cb4ba6c252bf9198bfdcdf7e Mon Sep 17 00:00:00 2001 From: 24_OskinEA <24_OskinEA@iux.local> Date: Wed, 18 Mar 2026 13:24:33 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20rabit2.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rabit2.py | 151 ++++++++++++++++++++++++++---------------------------- 1 file changed, 73 insertions(+), 78 deletions(-) diff --git a/rabit2.py b/rabit2.py index 31ef579..7781050 100755 --- a/rabit2.py +++ b/rabit2.py @@ -6,119 +6,114 @@ pygame.init() FPS = 30 screen = pygame.display.set_mode((400, 400)) +clock = pygame.time.Clock() -def draw_body(surface, x, y, width, height, color): - ellipse(surface, color, (x - width // 2, y - height // 2, width, height)) +# COLORS через список +COLORS = [ + (255, 255, 255), # 0 WHITE + (0, 0, 0), # 1 BLACK + (255, 150, 150), # 2 NOSE + (150, 100, 100), # 3 MOUTH + (255, 200, 200), # 4 BLUSH + (100, 100, 100), # 5 WHISKERS + (200, 200, 200) # 6 BODY +] -def draw_head(surface, x, y, size, color): - circle(surface, color, (x, y), size // 2) +WHITE, BLACK, NOSE, MOUTH, BLUSH, WHISKERS, BODY = COLORS -def draw_ear(surface, x, y, width, height, color): - ellipse(surface, color, (x - width // 2, y - height // 2, width, height)) - -def draw_leg(surface, x, y, width, height, color): - ellipse(surface, color, (x - width // 2, y - height // 2, width, height)) def draw_hare(surface, x, y, width, height, color): - body_width = width // 2 - body_height = height // 2 - body_y = y + body_height // 2 - draw_body(surface, x, body_y, body_width, body_height, color) - + # === ОСНОВНЫЕ ЧИСЛА === + body_w = width // 2 + body_h = height // 2 head_size = height // 4 + ear_h = height // 3 + + # === ТЕЛО === + ellipse(surface, color, (x - body_w // 2, y + body_h // 2 - body_h // 2, body_w, body_h)) + + # === ГОЛОВА === head_y = y - head_size // 2 - draw_head(surface, x, head_y, head_size, color) + circle(surface, color, (x, head_y), head_size // 2) - ear_height = height // 3 - ear_y = y - height // 2 + ear_height // 2 - for ear_x in (x - head_size // 4, x + head_size // 4): - draw_ear(surface, ear_x, ear_y, width // 8, ear_height, color) + # === УШИ === + ear_y = y - height // 2 + ear_h // 2 + ellipse(surface, color, (x - head_size // 4 - width // 16, ear_y - ear_h // 2, width // 8, ear_h)) + ellipse(surface, color, (x + head_size // 4 - width // 16, ear_y - ear_h // 2, width // 8, ear_h)) - leg_height = height // 16 - leg_y = y + height // 2 - leg_height // 2 - for leg_x in (x - width // 4, x + width // 4): - draw_leg(surface, leg_x, leg_y, width // 4, leg_height, color) + # === ЛАПЫ (задние) === + leg_h = height // 16 + leg_y = y + height // 2 - leg_h // 2 + ellipse(surface, color, (x - width // 4 - width // 8, leg_y - leg_h // 2, width // 4, leg_h)) + ellipse(surface, color, (x + width // 4 - width // 8, leg_y - leg_h // 2, width // 4, leg_h)) - # Добавляем детали - - # Глаза (белки) + # === ГЛАЗА === eye_y = head_y - head_size // 8 - eye_radius = head_size // 8 - for eye_x in (x - head_size // 6, x + head_size // 6): - circle(surface, (255, 255, 255), (eye_x, eye_y), eye_radius) + eye_r = head_size // 8 - # Зрачки - pupil_radius = eye_radius // 2 - for pupil_x in (x - head_size // 6, x + head_size // 6): - circle(surface, (0, 0, 0), (pupil_x, eye_y), pupil_radius) + circle(surface, WHITE, (x - head_size // 6, eye_y), eye_r) + circle(surface, WHITE, (x + head_size // 6, eye_y), eye_r) - # Блики в глазах - spark_radius = pupil_radius // 3 - for spark_x in (x - head_size // 6 - 2, x + head_size // 6 - 2): - circle(surface, (255, 255, 255), (spark_x, eye_y - 2), spark_radius) + circle(surface, BLACK, (x - head_size // 6, eye_y), eye_r // 2) + circle(surface, BLACK, (x + head_size // 6, eye_y), eye_r // 2) - # Носик (розовый треугольник) + circle(surface, WHITE, (x - head_size // 6 - 2, eye_y - 2), eye_r // 6) + circle(surface, WHITE, (x + head_size // 6 - 2, eye_y - 2), eye_r // 6) + + # === НОС === nose_y = head_y + head_size // 8 - polygon(surface, (255, 150, 150), [ + polygon(surface, NOSE, [ (x, nose_y), (x - head_size // 8, nose_y + head_size // 12), (x + head_size // 8, nose_y + head_size // 12) ]) - # Ротик - line(surface, (150, 100, 100), - (x, nose_y + head_size // 16), + # === РОТ === + line(surface, MOUTH, + (x, nose_y + head_size // 16), (x, nose_y + head_size // 8), 2) - # Немного румянца на щечках - blush_radius = head_size // 10 - for cheek_x in (x - head_size // 4, x + head_size // 4): - circle(surface, (255, 200, 200), (cheek_x, nose_y + head_size // 24), blush_radius) + # === ЩЁКИ === + blush_r = head_size // 10 + circle(surface, BLUSH, (x - head_size // 4, nose_y + head_size // 24), blush_r) + circle(surface, BLUSH, (x + head_size // 4, nose_y + head_size // 24), blush_r) - # Усики (по три с каждой стороны) - теперь после румянца + # === УСЫ === whisker_y = nose_y + head_size // 24 - whisker_length = head_size // 4 + whisker_len = head_size // 4 + for i in range(3): - # Левые усики - line(surface, (100, 100, 100), - (x - head_size // 10, whisker_y + i * 2), - (x - whisker_length - head_size // 10, whisker_y - head_size // 10 + i * 2), 1) - # Правые усики - line(surface, (100, 100, 100), - (x + head_size // 10, whisker_y + i * 2), - (x + whisker_length + head_size // 10, whisker_y - head_size // 10 + i * 2), 1) + line(surface, WHISKERS, + (x - head_size // 10, whisker_y + i * 2), + (x - whisker_len - head_size // 10, whisker_y - head_size // 10 + i * 2), 1) - # Передние лапки (две маленькие) - с обводкой - front_leg_width = width // 12 - front_leg_height = height // 8 - front_leg_y = y + height // 6 + line(surface, WHISKERS, + (x + head_size // 10, whisker_y + i * 2), + (x + whisker_len + head_size // 10, whisker_y - head_size // 10 + i * 2), 1) - # Левая передняя лапка (с обводкой) - ellipse(surface, color, (x - width // 6 - front_leg_width // 2, - front_leg_y - front_leg_height // 2, - front_leg_width, front_leg_height)) - ellipse(surface, (0, 0, 0), (x - width // 6 - front_leg_width // 2, - front_leg_y - front_leg_height // 2, - front_leg_width, front_leg_height), 1) + # === ПЕРЕДНИЕ ЛАПЫ === + fw = width // 12 + fh = height // 8 + fy = y + height // 6 - # Правая передняя лапка (с обводкой) - ellipse(surface, color, (x + width // 6 - front_leg_width // 2, - front_leg_y - front_leg_height // 2, - front_leg_width, front_leg_height)) - ellipse(surface, (0, 0, 0), (x + width // 6 - front_leg_width // 2, - front_leg_y - front_leg_height // 2, - front_leg_width, front_leg_height), 1) + ellipse(surface, color, (x - width // 6 - fw // 2, fy - fh // 2, fw, fh)) + ellipse(surface, BLACK, (x - width // 6 - fw // 2, fy - fh // 2, fw, fh), 1) -draw_hare(screen, 200, 200, 200, 400, (200, 200, 200)) + ellipse(surface, color, (x + width // 6 - fw // 2, fy - fh // 2, fw, fh)) + ellipse(surface, BLACK, (x + width // 6 - fw // 2, fy - fh // 2, fw, fh), 1) + + +# РИСУЕМ +screen.fill(WHITE) +draw_hare(screen, 200, 200, 200, 400, BODY) pygame.display.update() -clock = pygame.time.Clock() -finished = False +finished = False while not finished: clock.tick(FPS) for event in pygame.event.get(): if event.type == pygame.QUIT: finished = True -pygame.quit() +pygame.quit() \ No newline at end of file