Уведомления

Группа в Telegram: @pythonsu

#1 Май 6, 2021 22:49:29

Ruslan_Nali
Зарегистрирован: 2020-06-22
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

Всем привет!

Пытаюсь решить следующую задачу по ООП.
Напишите программу зооферма, в которой будут созданы несколько объектов класса Critter, а манипулировать ими всеми можно будет с помощью списка. Теперь пользователь должен заботиться не об одной зверушке, а обо всех обитателях зоофермы. Выбирая пункт в меню, пользователь выбирает действие, которое хотел бы выполнить со всеми зверушками: покормить их, поиграть с ними или узнать об их самочувствии. Чтобы программа была интереснее, при создании каждой зверушки следует назначить ей случайно выбранные уровни голода и уныния.

Я никак не придумаю как написать код, который позволит манипулировать ими всеми с помощью списка.

Допустим я создал класс Critter и описал в нем методы и атрибуты. Потом я инициализирую 3 объекта данного класса:
def main():
cow = Critter(name = “Корова”, hunger = random.randint(1,5), boredom = random.randint(1,5))
hen = Critter(name = “Курица”, hunger = random.randint(1,5), boredom = random.randint(1,5))
pig = Critter(name = “Свинья”, hunger = random.randint(1,5), boredom = random.randint(1,5))

Как манипулировать ими с помощью списка?
Помогите пожалуйста.

Офлайн

#2 Май 6, 2021 22:55:40

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

ООП

Методы класса
хотя не тут же список блин еще



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Май 6, 2021 22:57:56)

Офлайн

#3 Май 6, 2021 23:41:28

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1308
Репутация: +  112  -
Профиль   Отправить e-mail  

ООП

Ruslan_Nali
Как манипулировать ими с помощью списка?
Может имелось ввиду что все созданные зверушки должны быть в списке,а потом когда нужно отдать команду,просто пройтись по списку и для каждой зверушки выполнить метод.типа
 зверюшки = [корова,петух,свинья,опоссум]
для зверюшка в зверюшки:
   зверюшка.покормить()

Офлайн

#4 Май 7, 2021 00:21:52

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

ООП

 class X:
    
    all_self = []
    
    def __init__(self, data):
        self.x = data
        self.__class__.all_self.append(self)
        
    def set_x(self, data):
        self.x = data
    @classmethod
    def for_all_self(cls, data):
        for i in cls.all_self:
            i.set_x(data)
a = X(1)
b = X(2)
print(f"поштучно: a = {a.x}, b = {b.x}")
X.for_all_self(5)
print(f"опт:      a = {a.x}, b = {b.x}")
?



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Май 7, 2021 00:23:12)

Офлайн

#5 Май 7, 2021 05:54:58

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

ООП

Ruslan_Nali
cow = Critter(name = “Корова”, hunger = random.randint(1,5), boredom = random.randint(1,5))
hen = Critter(name = “Курица”, hunger = random.randint(1,5), boredom = random.randint(1,5))
pig = Critter(name = “Свинья”, hunger = random.randint(1,5), boredom = random.randint(1,5))
1. Странная у вас ферма. Обычно на зооферме животные одного вида содержат. А вы в одно стойло корову с курицей поместили. Надо зверюг по кличкам различать. А так у вас Ноев ковчег получился.
2. Инициализацию свойств лучше убрать в __init__ чтобы упростить создание.

Ruslan_Nali
выбранные уровни голода и уныния.
3. :) Меня такой подход возмущает. Надо делать свойства сытость и радость. А так это концлагерь а не ферма.

xam1816
для зверюшка в зверюшки:
зверюшка.покормить()
4. Тоже ужас. У вас одна животина голодная другая сытая, а вы всех одинаково кормите. Так либо одна сдохнет либо другая лопнет. Особенно если в одном месте содержать курицу и корову.
  
for i in animals:
   if i.сытость < 0.5:
       i.покормить()
5. Код должен иметь некую цель. Например установить экономически обоснованную частоту кормления, порог начала кормления, периодичность осеменения и т.п. Если кормить редко то зверюги будут голодные и привес будет маленький а часть зверюг сдохнет от голода. С другой стороны каждое кормление это затраты времени персонала. Код может позволить оценить оптимальную стратегию кормления.

Подходы к разведению коров можно посмотреть тут
https://www.youtube.com/watch?v=Of_ncEWRd2E&t=2241s

Правда судя по видео надо предусмотреть затраты на боеприпасы еще.



Отредактировано doza_and (Май 7, 2021 06:01:08)

Офлайн

#6 Май 7, 2021 06:34:20

Ruslan_Nali
Зарегистрирован: 2020-06-22
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

ООП

Спасибо вам всем большое.
Обязательно пересмотрю свое видение о зооферме )

Офлайн

#7 Май 7, 2021 10:05:54

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

ООП

doza_and
другая лопнет
та нэ то не может быть нихоче не ист людина некхого неэ ниволятъ



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Офлайн

#8 Май 7, 2021 15:50:48

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

ООП

AD0DE412
та нэ то не может быть нихоче
Ну ок. Корм сожрет и переведет его в навоз. Все равно убыток. Где-то читал что весовой КПД кормления бройлеров сейчас около 80 процентов. Еда практически полностью переводится в курочку.



Офлайн

#9 Май 8, 2021 08:44:40

AD0DE412
Зарегистрирован: 2019-05-12
Сообщения: 1130
Репутация: +  44  -
Профиль   Отправить e-mail  

ООП

Я конечно вас уважаю как программиста и человека
но я вас умоляю вы совершено не разберетесь в фермах
вы спросите меня за фермы
я вам скажу за фермы
навоз это не shit навоз это gold
органиничный натуралик для садоводов
а закорма
что вы знаете закорма
послушаете есть же сойлент
красный желтый но лучше зеленый от него хоть и случается бешенство у коров
но имейте уважение
коровы это же не свиньи
так ведь?

берите два не раздумывайте
пока есть



1. пжлст, форматируйте код, это в панели создания сообщений, выделите код и нажмите что то вроде
2. чтобы вставить изображение залейте его куда нибудь (например), нажмите и вставьте ссылку на его url

есчщо

Отредактировано AD0DE412 (Май 8, 2021 08:45:39)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version