From f9c3347b09624de8fd8e14cd2ec7ea08554fc3c4 Mon Sep 17 00:00:00 2001 From: 24_SuslaII <24_SuslaII@iux.local> Date: Wed, 18 Mar 2026 13:51:03 +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=20rabbit=5F1.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rabbit_1.py | 153 ++++++++++++++++++++++++++-------------------------- 1 file changed, 78 insertions(+), 75 deletions(-) diff --git a/rabbit_1.py b/rabbit_1.py index a7c2cb5..33dc480 100644 --- a/rabbit_1.py +++ b/rabbit_1.py @@ -1,93 +1,96 @@ import pygame -from pygame.draw import * +from pygame.draw import ellipse, circle pygame.init() FPS = 30 screen = pygame.display.set_mode((400, 400)) -# Рисуем зайца -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_head(surface, x, y, size, color): - ''' - Рисует голову зайца. - surface - объект pygame.Surface - x, y - координаты центра изображения - size - диаметр головы - color - цвет, заданный в формате, подходящем для pygame.Color - ''' - circle(surface, color, (x, y), size // 2) - -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_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_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 // 2 - draw_body(surface, x, body_y, body_width, body_height, color) +class Hare: + """Класс для представления зайца""" - # Рисуем голову - head_size = height // 4 - draw_head(surface, x, y - head_size // 2, head_size, color) + def __init__(self, x, y, width, height, color): + """ + Инициализация зайца + x, y - координаты центра изображения + width, height - ширина и высота изображения + color - цвет зайца + """ + self.x = x + self.y = y + self.width = width + self.height = height + self.color = color - # Рисуем уши - 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) + def draw_body(self, surface): + """Рисует тело зайца""" + body_width = self.width // 2 + body_height = self.height // 2 + body_y = self.y + body_height // 2 + ellipse(surface, self.color, + (self.x - body_width // 2, body_y - body_height // 2, + body_width, body_height)) - # Рисуем ноги - 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) + def draw_head(self, surface): + """Рисует голову зайца""" + head_size = self.height // 4 + head_y = self.y - head_size // 2 + circle(surface, self.color, (self.x, head_y), head_size // 2) + return head_size - # Добавляем глазки - eye_size = head_size // 8 - eye_y = y - head_size // 2 - head_size // 8 - for eye_x in (x - head_size // 6, x + head_size // 6): - circle(surface, pygame.Color('black'), (eye_x, eye_y), eye_size) + def draw_ears(self, surface, head_size): + """Рисует уши зайца""" + ear_height = self.height // 3 + ear_y = self.y - self.height // 2 + ear_height // 2 + ear_width = self.width // 8 + ear_offset = head_size // 4 + + ellipse(surface, self.color, + (self.x - ear_offset - ear_width // 2, ear_y - ear_height // 2, + ear_width, ear_height)) + ellipse(surface, self.color, + (self.x + ear_offset - ear_width // 2, ear_y - ear_height // 2, + ear_width, ear_height)) + + def draw_legs(self, surface): + """Рисует ноги зайца""" + leg_height = self.height // 16 + leg_y = self.y + self.height // 2 - leg_height // 2 + leg_width = self.width // 4 + leg_offset = self.width // 4 + + ellipse(surface, self.color, + (self.x - leg_offset - leg_width // 2, leg_y - leg_height // 2, + leg_width, leg_height)) + ellipse(surface, self.color, + (self.x + leg_offset - leg_width // 2, leg_y - leg_height // 2, + leg_width, leg_height)) + + def draw_eyes(self, surface, head_size): + """Рисует глаза зайца""" + eye_size = head_size // 8 + eye_y = self.y - head_size // 2 - head_size // 8 + eye_offset = head_size // 6 + eye_color = pygame.Color('black') + + circle(surface, eye_color, (self.x - eye_offset, eye_y), eye_size) + circle(surface, eye_color, (self.x + eye_offset, eye_y), eye_size) + + def draw(self, surface): + """Полная отрисовка зайца""" + self.draw_body(surface) + head_size = self.draw_head(surface) + self.draw_ears(surface, head_size) + self.draw_legs(surface) + self.draw_eyes(surface, head_size) + # Заливаем фон screen.fill(pygame.Color('white')) -# Рисуем зайца в центре экрана -draw_hare(screen, 200, 200, 200, 300, pygame.Color('gray')) +# Создаем и рисуем зайца +hare = Hare(200, 200, 200, 300, pygame.Color('gray')) +hare.draw(screen) pygame.display.update() clock = pygame.time.Clock()