41 lines
1016 B
Python
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]
|
|
|
|
|