Живая ферма

Вам предстоит написать игровой цикл. Что это значит - программа будет крутиться в бесконечном цикле, каждую итерацию цикла мы будем называть "игровой тик". Вы должны будете описать классы экземпляры которых будут иметь собственный жизненный цикл.

Про собственный жизненный цикл

Не пугайтесь такой формулировки.. просто таже "кошка" должна знать через сколько тиков ей надо попросить еды... достаточно будет просто счетчика.

Классы которые рекоммендуется реализовать.

  • LiveObject - Родительский класс всех объектов имеющих свой жизненный цикл. Все экземпляры этого класса имеют метод tick().

    UPDATE

    Возник вопрос, что такое метод tick(). Это метод который будет присутствовать у экземпляров, имеющих собственный жизненный цикл. В подобном методе вы можете обработать "тик игрового цикла".

    Давайте для наглядности... У нас есть класс TickCounter

    class TickCounter:
    def __init__(self):
    self.count = 0
    def tick():
    self.count += 1

    Теперь у нас есть класс который может реагировать на вызов его метода tick(). В этом методе TickCounter обновляет свое собственное состояние.

    tick_counter = TickCounter()
    # начать "игровой луп" ... если вы хотите замедлить его.. а вы это хотите, скорее всего, можете воспльзоваться модулем time
    while True:
    tick_counter.tick() # tick_counter - объект которому мы только что сообщили о том что произошел игровой тик, и он может на это отреагировать

    P.S Если все равно не понятно... смело спрашивайте.

  • Animal - Суперкласс всех животных
  • Cow - Класс "коровы"
  • Cat - Класс "кота"
  • Dog - Класс "собаки"

Условия задачи

  • Все животные должны иметь собственный аттрибут "nickname".
  • Каждое животное, в зависимости от класса, должно с некоторой периодичность просить покормить его.

Подсказки

  • Вы можете использовать модуль time чтобы замедлить цикл.. вам достаточно будет поспать некоторое время в конце каждого "тика".

  • Как я сказал, вам достаточно просто счетчиков в экземлярах классов.

Пример вывода в консоль

Что после?

Уже после сдачи домашки, я потрачу некоторое время, чтобы мы поигрались с этим примером.