Живая ферма
Вам предстоит написать игровой цикл. Что это значит - программа будет крутиться в бесконечном цикле, каждую итерацию цикла мы будем называть "игровой тик". Вы должны будете описать классы экземпляры которых будут иметь собственный жизненный цикл.
Про собственный жизненный цикл
Не пугайтесь такой формулировки.. просто таже "кошка" должна знать через сколько тиков ей надо попросить еды... достаточно будет просто счетчика.
Классы которые рекоммендуется реализовать.
LiveObject
- Родительский класс всех объектов имеющих свой жизненный цикл. Все экземпляры этого класса имеют методtick()
.UPDATE
Возник вопрос, что такое метод
tick()
. Это метод который будет присутствовать у экземпляров, имеющих собственный жизненный цикл. В подобном методе вы можете обработать "тик игрового цикла".Давайте для наглядности... У нас есть класс
TickCounter
class TickCounter:def __init__(self):self.count = 0def tick():self.count += 1Теперь у нас есть класс который может реагировать на вызов его метода
tick()
. В этом методеTickCounter
обновляет свое собственное состояние.tick_counter = TickCounter()# начать "игровой луп" ... если вы хотите замедлить его.. а вы это хотите, скорее всего, можете воспльзоваться модулем timewhile True:tick_counter.tick() # tick_counter - объект которому мы только что сообщили о том что произошел игровой тик, и он может на это отреагироватьP.S Если все равно не понятно... смело спрашивайте.
Animal
- Суперкласс всех животныхCow
- Класс "коровы"Cat
- Класс "кота"Dog
- Класс "собаки"
Условия задачи
- Все животные должны иметь собственный аттрибут "nickname".
- Каждое животное, в зависимости от класса, должно с некоторой периодичность просить покормить его.
Подсказки
Вы можете использовать модуль
time
чтобы замедлить цикл.. вам достаточно будет поспать некоторое время в конце каждого "тика".Как я сказал, вам достаточно просто счетчиков в экземлярах классов.
Пример вывода в консоль
Что после?
Уже после сдачи домашки, я потрачу некоторое время, чтобы мы поигрались с этим примером.