Весёлая ферма 2

только начал ООП изучать и не могу догадаться!

Задача 5. Весёлая ферма 2

Мы продолжаем писать игру «Весёлая ферма» и теперь необходимо её немного модернизировать. Всё-таки кому-то же нужно собирать урожай, и для этого нам понадобится садовник, который имеет:

Имя.

Грядку с растением, за которым он ухаживает (в нашем случае пока только грядка с картошкой).

И может:

Ухаживать за грядкой.

Собирать с неё урожай (количество картошки ― пустой список).

Модернизируйте программу, используя новый класс «Садовник». На всякий случай вот описание картошки и грядки:

У картошки есть её номер в грядке, а также стадия зрелости. Она может предоставлять информацию о своей зрелости и расти. Всего у картошки может быть четыре стадии зрелости.

Грядка с картошкой содержит список картошки, которая на ней растёт, и может, собственно, взращивать всю эту картошку, а также предоставлять информацию о зрелости всей картошки на своей территории.

Проверьте работу программы, создав грядку из пяти картошек и отдав эту грядку садовнику. Пусть поухаживает за грядкой и соберёт урожай (а, может быть, даже и не один).

вот мой код:

PythonВыделить код

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

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')