Roman9234

oop_test

Apr 25th, 2024 (edited)
835
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.74 KB | None | 0 0
  1. import asyncio
  2. import random
  3.  
  4. # константы времени
  5. TIME_LONG = 0
  6. TIME_MIDDLE = 0
  7. TIME_FAST = 1
  8.  
  9.  
  10. class Bee:
  11.     # 1. здесь должен быть конструктор. При создании пчелы, нужно указывать имя.
  12.     # также у пчелы должен быть возраст, энергия = 100, а также нулевые атрибуты: количество счастливых моментов, количество часов сна и количество рабочих
  13.    
  14.  
  15.     async def work(self):
  16.        
  17.         # 2. Нужно создать переменную, которая укажет, сколько пчеле работать. Реальная пчела может работать 18 часов, но я предлагаю ограничиться от 1 до 10 часов
  18.         # print(f"Пчела {} уделит работе сегодня {} часов!")
  19.         while True:
  20.         # 3. Теперь нужен цикл, который позволит описать каждый час работы пчелы!
  21.             await asyncio.sleep(TIME_FAST)  # Используем await
  22.             # 4. каждый час пчела расходует 10 энергии. И посмотри на другие атрибуты
  23.             print(f"{self.name} работает. Энергия: {self.energy}")
  24.             # 5. Когда энергии нет, пчела работать не может
  25.             print(f"{self.name} устала и должна отдохнуть.")
  26.  
  27.  
  28.     async def sleep(self):
  29.         # 6. Аналогично работе, только во время сна энергия восполняется быстрее
  30.         pass
  31.  
  32.     async def spend_leisure_time(self):
  33.         possibility = random.randint(1, 4)
  34.         self.energy -= 10
  35.         self.happy_moments += 1
  36.         await asyncio.sleep(TIME_MIDDLE)  # Используем await
  37.         if possibility == 1:
  38.             print(f"Пчела {self.name} танцует с другими пчелами")
  39.         elif possibility == 2:
  40.             print(f"Пчела {self.name} ушла в дозор охранять королеву")
  41.         elif possibility == 3:
  42.             print(f"Пчела {self.name} путешествует по округе")
  43.         else:
  44.             print(f"Пчела {self.name} ничего не делает")
  45.  
  46.     async def spend_day(self):
  47.         # 7. Здесь пчела проводит свой день! Пчелы живут в среднем, 26-40 дней. Поэтому день прошел - увеличиваем возраст.
  48.         # Сначала пчела работает, потом, пока энергия есть, предается досугу, а потом - спит
  49.         await asyncio.sleep(TIME_LONG)
  50.        
  51.  
  52.     def show_stats(self):
  53.         print(f"Пчела {self.name}")
  54.         print(f"Часов за работой: {self.work_hours}")
  55.         print(f"Часов за сном: {self.sleep_hours}")
  56.         print(f"Счастливых моментов: {self.happy_moments}")
  57.         print()
  58.  
  59.  
  60. # 8. Надо создать несколько пчел
  61.  
  62.  
  63. async def main():
  64.     #  9. Бесконечный ли здесь нужен цикл?
  65.        
  66.     while True:
  67.         print(f"День № ")
  68.         print("-" * 50)
  69.         await asyncio.gather()  # 10. В скобках здесь вызови метод, где пчела проводит свой день, у каждой пчелы
  70.         print("-" * 50)
  71.  
  72.  
  73. # asyncio.run(main())
  74.  
  75. # 11. Подумай, что в самом конце мы хотим увидеть у наших объектов
Advertisement
Add Comment
Please, Sign In to add comment