Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from termcolor import cprint
- from random import randint, randrange
- ######################################################## Часть первая
- #
- # Создать модель жизни небольшой семьи.
- #
- # Каждый день участники жизни могут делать только одно действие.
- # Все вместе они должны прожить год и не умереть.
- #
- # Муж может:
- # есть,
- # играть в WoT,
- # ходить на работу,
- # Жена может:
- # есть,
- # покупать продукты,
- # покупать шубу,
- # убираться в доме,
- # Все они живут в одном доме, дом характеризуется:
- # кол-во денег в тумбочке (в начале - 100)
- # кол-во еды в холодильнике (в начале - 50)
- # кол-во грязи (в начале - 0)
- #
- # У людей есть имя, степень сытости (в начале - 30) и степень счастья (в начале - 100).
- #
- # Любое действие, кроме "есть", приводит к уменьшению степени сытости на 10 пунктов
- # Кушают взрослые максимум по 30 единиц еды, степень сытости растет на 1 пункт за 1 пункт еды.
- # Степень сытости не должна падать ниже 0, иначе чел умрет от голода.
- #
- # Деньги в тумбочку добавляет муж, после работы - 150 единиц за раз.
- # Еда стоит 10 денег 10 единиц еды. Шуба стоит 350 единиц.
- #
- # Грязь добавляется каждый день по 5 пунктов, за одну уборку жена может убирать до 100 единиц грязи.
- # Если в доме грязи больше 90 - у людей падает степень счастья каждый день на 10 пунктов,
- # Степень счастья растет: у мужа от игры в WoT (на 20), у жены от покупки шубы (на 60, но шуба дорогая)
- # Степень счастья не должна падать ниже 10, иначе чел умрает от депресии.
- #
- # Подвести итоги жизни за год: сколько было заработано денег, сколько сьедено еды, сколько куплено шуб.
- class House:
- def __init__(self, money=100, food=50, mud=0):
- self.money = money
- self.food = food
- self.mud = mud
- self.total_money_earn = 0
- self.total_food_ate = 0
- self.total_fur_coat_bought = 0
- def __str__(self):
- return f"Денег в доме — {self.money}, еды в доме - {self.food} загрязненность - {self.mud}"
- class Husband:
- def __init__(self, name, house, satiety=30, happines=100):
- self.name = name
- self.house = house
- self.satiety = satiety
- self.happiness = happines
- def __str__(self):
- return f"{self.name} сыт на {self.satiety} пунктов и счастлив на {self.happiness} пунктов"
- def act(self):
- if self.house.mud > 90:
- self.happiness -= 10
- if self.satiety <= 10:
- self.eat()
- else:
- act = randint(0,2)
- if act == 0:
- self.eat()
- elif act == 1:
- self.work()
- else:
- self.gaming()
- self.house.mud += 2.5
- if self.satiety < 0:
- raise print(f"{self.name} умер от голода: сытость {self.satiety}")
- if self.happiness < 10:
- raise print(f"{self.name} умер от депрессии: уровень счастья {self.happiness}")
- def eat(self):
- food = randint(1, 30)
- self.satiety += food
- self.house.food -= food
- self.house.total_food_ate +=food
- def work(self):
- salary = 150
- self.house.money += salary
- self.satiety -= 10
- self.house.total_money_earn += salary
- def gaming(self):
- self.happiness += 20
- self.satiety -= 10
- class Wife:
- def __init__(self, name, house, satiety=30, happines=100):
- self.name = name
- self.house = house
- self.satiety = satiety
- self.happiness = happines
- def __str__(self):
- return f"{self.name} сыта на {self.satiety} пунктов и счастлива на {self.happiness} пунктов"
- def act(self):
- if self.house.mud > 90:
- self.happiness -= 10
- if self.happiness < 10:
- print(f"{self.name} умерла от депрессии: уровень счастья {self.happiness}")
- raise Exception
- if self.satiety <= 10:
- self.eat()
- else:
- act = randint(0,3)
- if act == 0:
- self.eat()
- elif act == 1:
- self.shopping()
- elif act == 2:
- self.buy_fur_coat()
- else:
- self.clean_house()
- self.house.mud += 2.5
- if self.satiety < 0:
- raise print(f"{self.name} умерла от голода: сытость {self.satiety}")
- def eat(self):
- food_for_eating = randint(1, 30)
- if self.house.food - food_for_eating < 0:
- self.act()
- else:
- self.satiety += food_for_eating
- self.house.food -= food_for_eating
- def shopping(self):
- try:
- food = randint(11, self.house.money) // 10 * 10
- money = food
- self.house.money -= money
- self.house.food += food
- self.satiety -= 10
- except:
- self.act()
- def buy_fur_coat(self):
- if self.house.money - 350 <= 0:
- self.act()
- else:
- self.happiness += 60
- self.house.money -= 350
- self.satiety -= 10
- self.house.total_fur_coat_bought += 1
- def clean_house(self):
- mud_for_cleaning = randint(1,100)
- if self.house.mud - mud_for_cleaning < 0:
- self.act()
- else:
- self.house.mud -= mud_for_cleaning
- self.satiety -= 10
- home = House()
- serge = Husband(name='Сережа', house=home)
- masha = Wife(name='Настя', house=home)
- for day in range(365):
- cprint('================== День {} =================='.format(day), color='red')
- serge.act()
- masha.act()
- cprint(serge, color='cyan')
- cprint(masha, color='cyan')
- cprint(home, color='cyan')
- print(f"Заработано денег {home.total_money_earn}, съедено еды {home.total_food_ate}, куплено шуб {home.total_fur_coat_bought}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement