/
sejeenn
/
python_basic
Обзор
Документация
Войти
/
sejeenn
/
python_basic
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Module25/06_cohabitation_2/main_mailru.py
200 строк
6 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 pollution(self): House.dirt += 5 def life(self): for resident in self.family: if House.dirt >= 90 and not isinstance(resident, Cat): resident.happiness -= 10 if isinstance(resident, Cat) and House.cat_food >= 20 <= resident.satiety: cat.eat() print('Кот поел') House.cat_food_eaten_count += 10 elif isinstance(resident, Cat): if randint(1, 2) == 1: House.dirt += 5 cat.satiety -= 10 print('Кот подрал обои.') else: print('Кот спит.') elif House.food >= 60 and resident.satiety <= 30: resident.eat() print(resident.name, 'поел.') House.food_eaten_count += 30 elif isinstance(resident, Husband): if House.money <= 150: husband.work_day() print('Муж отправляется на срочную работу.') House.money_count += 150 elif husband.happiness <= 50: husband.game() print('Муж играет в компьютерные игры.') elif husband.happiness <= 70: husband.petting_cat() print('Муж гладит кота.') else: husband.work_day() print('Обычный рабочий день.') House.money_count += 150 elif isinstance(resident, Wife): if House.food <= 60 and House.money > 100: wife.buy_food() elif House.cat_food <= 20: wife.buy_cat_food() elif House.dirt >= 50: wife.cleaning() print('Жена делает уборку в доме.') elif wife.happiness <= 70: wife.petting_cat() print('Жена гладит кота.') elif House.money > 450: wife.purchase() print('Жена купила шубу.') House.fur_coat_count += 1 else: wife.petting_cat() print('Жена просто гладит кота.') 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 class Husband(Residents): def __init__(self, name, satiety=30, happiness=100, work=150): super().__init__(name, satiety, happiness) self.work = work def work_day(self): House.money += self.work self.satiety -= 10 print('Работа.') def petting_cat(self): self.happiness += 5 self.satiety -= 10 def game(self): self.happiness += 20 self.satiety -= 10 class Wife(Residents): def __init__(self, name, satiety=30, happiness=100): super().__init__(name, satiety, happiness) def buy_food(self): House.money -= 100 House.food += 100 def buy_cat_food(self): House.money -= 50 House.cat_food += 50 def petting_cat(self): self.happiness += 5 self.satiety -= 10 def purchase(self): House.money -= 350 self.happiness += 60 self.satiety -= 10 def cleaning(self): House.dirt -= 100 self.satiety -= 10 class Cat(Residents): def __init__(self, name, satiety=30): super().__init__(name, satiety) def eat(self): self.satiety += 20 House.cat_food -= 10 def shitting(self): House.dirt += 5 self.satiety -= 10 def life_dead(qwerty): for element in qwerty: if element.satiety <= 0: print('Один из жильцов дома умер от голода!') return True elif element.happiness == 0 and not isinstance(element, Cat): print('Один из жильцов умер от депрессии!') return True else: return False husband = Husband('Евгений') wife = Wife('Ольга') cat = Cat('Муся') family = [husband, wife, cat] house = House(family) for day in range(365): print('{} день'.format(day)) house.pollution() if life_dead(family): print('Эксперимент не удался!') break else: house.life() print('\nЗа год:\nКуплено шуб:{}\nЗаработано денег:{}\nСъедено еды:{}\n' 'Кот съел еды:'.format(House.fur_coat_count, House.money_count, House.food_eaten_count, House.cat_food_eaten_count))