avp26/u5/kindergarted-garden.py

41 lines
1016 B
Python

class NoSuchStudentException(Exception):
pass
class Garden:
DEFAULT_STUDENTS = ["Alice", "Bob", "Charlie", "David","Eve", "Fred", "Ginny", "Harriet", "Ileana", "Joseph", "Kincaid", "Larry"]
PLANT_MAP ={
'G': 'tráva',
'C': 'ďatelina',
'R': 'reďkovky',
'V': 'fialky'
}
def __init__(self, diagram, students=None):
if students is None:
self.students = sorted(self.DEFAULT_STUDENTS)
else:
self.students = sorted(students)
self.r = diagram.splitlines()
def plants(self, student):
if student not in self.students:
raise NoSuchStudentException(f"Student '{student}' is not assigned a plot.")
i = self.students.index(student)
c1 = i*2
c2 = i*2+1
student_plants = [
self.r[0][c1],
self.r[0][c2],
self.r[1][c1],
self.r[1][c2]
]
return [self.PLANT_MAP[code] for code in student_plants]