


Помогите пожалуйста с задаче по Python
Задача 5. Весёлая ферма 2
Мы продолжаем писать игру «Весёлая ферма» и теперь необходимо её немного модернизировать. Всё-таки кому-то же нужно собирать урожай, и для этого нам понадобится садовник, который имеет:
Имя.
Грядку с растением, за которым он ухаживает (в нашем случае пока только грядка с картошкой).
И может:
Ухаживать за грядкой.
Собирать с неё урожай (количество картошки ― пустой список).
вот мой код:
class Potato:
states = {0: 'Отсутствует', 1: 'Росток', 2: 'Зелёная', 3: 'Зрелая'}
def __init__(self, index):
self.index = index
self.state = 0
def grow(self):
if self.state < 3:
self.state += 1
self.print_state()
def is_ripe(self):
if self.state == 3:
return True
return False
def print_state(self):
print('Картошка {} сейчас {}'.format(
self.index, Potato.states[self.state]
))
class PotatoGarden:
def __init__(self, count):
self.potatoes = [Potato(index) for index in range(1, count + 1)]
def grow_all(self):
print('Картошка проростает!')
for i_potato in self.potatoes:
i_potato.grow()
def are_all_ripe(self):
for i_potato in self.potatoes:
if not i_potato.is_ripe():
print('Картошка ещё не созрела!\n')
break
else:
print('Вся картошка созрела! Можно собирать!\n')
class Gardener:
gardener_name = input('Введите имя садовника: ')
gardener_bed = input('Грядка с растением за которым ухаживает садовник: ')
states_of_care = {0: 'Поливает', 1: 'Окучивает', 2: 'Подкармливает', 3: 'Обрабатывает'}
def __init__(self):
self.state_of_care = 0
self.count_potato = []
def print_state_of_care(self):
print('Садовник сейчас {} картошку'.format(
Gardener.states_of_care[self.state_of_care]
))
def take_care_of_the_garden(self):
if self.state_of_care < 3:
self.state_of_care += 1
self.print_state_of_care()
if self.state_of_care == 3:
return True
return False
def harvest(self):
pass
my_garden = PotatoGarden(5)
my_garden.are_all_ripe()
for _ in range(3):
my_garden.grow_all()
my_garden.are_all_ripe()
Я застопорился на месте собирания урожая и не могу понять как это сделать.
Буду очень рад если кто-то поможет!
class Potato:
states = {0: 'Отсутствует', 1: 'Росток', 2: 'Зеленая', 3: 'Зрелая'}
def __init__(self, index):
self.index = index
self.state = 0
def grow(self):
if self.state < 3:
self.state += 1
self.print_state()
def is_ripe(self):
if self.state == 3:
return True
return False
def print_state(self):
print('Картошка {} сейчас {}'.format(self.index, Potato.states[self.state]))
class PotatoGarden:
def __init__(self, count):
self.potatoes = [Potato(index) for index in range (1, count + 1)]
def are_all_ripe(self):
if not all([i_potato.is_ripe() for i_potato in self.potatoes]):
print('Картошка еще не созрела! \n')
else:
print('Вся картошка созрела! Можно собирать. \n')
def grow_all(self):
print('Картошка растет!')
for i_potato in self.potatoes:
i_potato.grow()
class Gardener:
def __init__(self, name, collected_potatoes):
self.name, self.collected_potatoes = name, collected_potatoes
def gardener_info(self):
print('Имя садовника: {}\nСколько собрал картошки: {}\n'.format(self.name, self.collected_potatoes))
def tend(worker, my_garden):
if all([i_potato.is_ripe() for i_potato in my_garden.potatoes]):
question = int(input('Собрать картошку? \n1 - да, 2 - нет\n'))
if question == 1:
potato_count = 0
for i_potato in my_garden.potatoes:
worker.collected_potatoes += 1
potato_count += 1
i_potato.state = 0
print('{} собрал {} картофелин!'.format(worker.name, potato_count))
worker.gardener_info()
else:
question = int(input('Отправить {}а ухаживать за картошкой? \n 1 - да, 2 - нет\n'.format(worker.name)))
if question == 1:
my_garden.grow_all()
my_garden.are_all_ripe()
my_garden = PotatoGarden(5)
worker = Gardener('Петрович', 0)
while True:
Gardener.tend(worker, my_garden)



class Potato:
states = {1: 'Росток', 2: 'Зелёная', 3: 'Зрелая'}
def __init__(self, index):
self.index = index
self.state = 0
def is_ripe(self):
if self.state == 3:
return True
return False
def grow(self):
if self.state < 3:
self.state += 1
self.info()
def info(self):
print(f'Картошка {self.index} сейчас {Potato.states[self.state]}')
class PotatoGarden:
def __init__(self, count, care_status=False):
self.potatoes = [Potato(index) for index in range(1, count + 1)]
self.care_status = care_status
def all_grow(self):
for i_potato in self.potatoes:
i_potato.grow()
def are_all_ripe(self):
if not all([i_potato.is_ripe() for i_potato in self.potatoes]):
print('Картошка ещё не созрела!')
else:
print('Вся картошка созрела. Можно собирать!')
return True
class Gardener:
harvest = []
def __init__(self, name, garden: int):
self.name = name
self.garden = PotatoGarden(garden)
def taking_care(self):
if not self.garden.care_status:
question = input('Грядка не ухожена. Хотите за ней ухаживать ? ').lower()
if question == 'да':
self.garden.care_status = True
print(f'Грядка стала ухоженной, спасибо {self.name} !\n')
else:
print(f'С грядкой все в порядке, {self.name} может отдыхать!\n')
def collecting_harvest(self):
if self.garden.are_all_ripe():
question = input('Собирать урожай? ')
if question == 'да':
self.harvest.append(f'Урожай {len(self.harvest) + 1}')
print(f'Собранные урожаи: {self.harvest}\n')
for i_potato in self.garden.potatoes:
i_potato.state = 0 # обнуляем состояние картошки в изначальную
self.garden.care_status = False # меняем состояние грядки в неухоженную
else:
print('Урожай не готов пока.\n')
self.garden.all_grow()
my_gardener = Gardener('Василий', 5)
for _ in range(9):
my_gardener.collecting_harvest()
my_gardener.taking_care()
class PotatoGarden:
def __init__(self, count):
self.potatoes = [Potato(index) for index in range(1, count + 1)]
def grow_all(self):
print('Картошка прорастает! ')
for i_potato in self.potatoes:
i_potato.grow()
def are_all_ripe(self):
if not all([i_potato.is_ripe() for i_potato in self.potatoes]):
print('Картошка еще не созрела! \n')
else:
print('Вся картошка созрела. Можно собирать')
class Gardener:
def __init__(self, name, collected_potatoes):
[ссылка заблокирована по решению администрации проекта] = name
self.collected_potatoes = collected_potatoes
def gardener_info(self):
print('Имя садовника: {}\nСколько собрал картошки: {}\n'.format( [ссылка заблокирована по решению администрации проекта] , self.collected_potatoes))
```
Вопрос в том что эта функция делать должна . Вот я не очень понял. То ли просто обнулять, то ли выросшую убирать