/
sejeenn
/
python_basic
Обзор
Документация
Войти
/
sejeenn
/
python_basic
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Module25/06_cohabitation_2/temp.py
230 строк
8 KB
Eugene Vorontsov
Copy repo python basic
03 фев 2025, 20:23
03 фев 2025, 20:23
a8fce4a
Код
Авторство
О чём код?
from random import randint class House: """ Исходные данные: количество денег в доме: 100 количество еды в доме: 50 количество еды для кота в доме: 30 количество грязи в доме: 0 """ money = 100 food = 50 cat_food = 30 dirt = 0 """ счетчики: сколько всего было заработано денег: money_count = 0 сколько всего съедено еды: food_eaten_count = 0 сколько всего еды съел кот: cat_food_eaten_count = 0 сколько всего куплено шуб: fur_coat_count = 0 """ money_count = 0 food_eaten_count = 0 cat_food_eaten_count = 0 fur_coat_count = 0 def __init__(self, family): self.family = family def one_day_life(self): """Действия, которые жители дома делают каждый день в нашем доме""" for family_member in self.family: if isinstance(family_member, Husband): """что будет делать муж""" if husband.satiety > 10 and husband.happiness > 10: if House.money < 600: husband.make_money() else: husband_choice = randint(1, 2) if husband_choice == 1: husband.petting_cat() else: husband.play() else: husband.eat() if isinstance(family_member, Wife): """что будет делать жена""" if wife.satiety > 10 and wife.happiness > 10 and House.money > 600: if House.food <= 60: wife.buy_product() else: wife_choice = randint(1, 3) if wife_choice == 1: wife.petting_cat() elif wife_choice == 2: wife.cleaning_house() else: wife.buy_fur_coat() else: wife.eat() if isinstance(family_member, Cat): """Что будет делать кот""" if family_member.satiety > 10: cat_choice = randint(1, 2) if cat_choice == 1: family_member.sleep() else: family_member.tear_wallpaper() else: if House.cat_food > 10: family_member.eat() else: continue if isinstance(family_member, Children): if son.satiety > 10: son.walk() else: son.eat() class Residents: """Что делают жильцы дома: они могут есть и гладить кота""" def __init__(self, name=None, satiety=None, happiness=None): self.name = name self.satiety = satiety self.happiness = happiness def eat(self): self.satiety += 30 House.food -= 30 House.food_eaten_count += 30 print(self.name, 'ест.') def petting_cat(self): self.happiness += 5 self.satiety -= 10 print(self.name, 'гладит кота') class Husband(Residents): """Что может делать муж: он может играть и зарабатывать деньги""" def __init__(self, name, satiety=30, happiness=100): super().__init__(name, satiety, happiness) def play(self): self.happiness += 20 self.satiety -= 10 print(self.name, 'играет.') def make_money(self): self.satiety -= 10 House.money += 150 House.money_count += 150 print(self.name, 'работает.') class Wife(Residents): """ Что может делать жена: она может покупать продукты, покупать шубу, делать уборку в доме. """ def __init__(self, name, satiety=30, happiness=100): super().__init__(name, satiety, happiness) def buy_product(self): self.satiety -= 10 House.food += 100 House.money -= 100 House.cat_food += 50 House.money -= 50 print(self.name, 'покупает продукты.') def buy_fur_coat(self): House.money -= 450 House.fur_coat_count += 1 self.happiness += 60 self.satiety -= 10 print(self.name, 'покупает шубу.') def cleaning_house(self): self.satiety -= 10 House.dirt -= 100 print(self.name, 'убирается в доме.') class Children(Residents): """Что могут делать дети: они могут гулять """ def __init__(self, name, satiety=30, happiness=100): super().__init__(name, satiety, happiness) def walk(self): self.satiety -= 10 self.happiness += 20 print('Ребенок {} погулял'.format(self.name)) class Cat(Residents): """Что могут делать кошки: они могут есть, спать и драть обои""" def __init__(self, name, satiety=30): super().__init__(name, satiety) def eat(self): House.cat_food -= 10 House.cat_food_eaten_count += 10 self.satiety += 20 print('Кот {} поел.'.format(self.name)) def sleep(self): self.satiety -= 10 print('Кот {} спит.'.format(self.name)) def tear_wallpaper(self): self.satiety -= 10 House.dirt += 5 print('Кот {} подрал обои.'.format(self.name)) def life_dead(household): """Проверка, не умер ли кто-то из жильцов дома от голода или депрессии.""" for element in household: if element.satiety <= 0: print('Один из жильцов дома умер от голода!') return True elif element.happiness < 10 and not isinstance(element, Cat): print('Один из жильцов умер от депрессии!') return True else: return False husband = Husband('Eugene') wife = Wife('Olga') son = Children('Nikolay') cat = Cat('Musya') cat2 = Cat('Vasya') cat3 = Cat('Barsik') residents = [husband, wife, son, cat, cat2, cat3] house = House(residents) for day in range(365): House.dirt += 5 if House.dirt >= 90: husband.happiness -= 10 wife.happiness -= 10 son.happiness -= 10 print('День:', day + 1) print('Монитор ресурсов, еда: {}, кошачья еда: {}, деньги: {}, грязь в доме: {} ' ''.format(House.food, House.cat_food, House.money, House.dirt)) print('Степень счастья {}:{}, {}:{}, {}:{}'.format( husband.name, husband.happiness, wife.name, wife.happiness, son.name, son.happiness)) if life_dead(residents): print('Эксперимент не удался, кто-то умер.') break else: house.one_day_life() print('\nЗа год было заработано денег: {}\nСъедено еды: {}\nКуплено шуб: {}'.format( House.money_count, House.food_eaten_count, House.fur_coat_count ))