diff --git a/u5/kindergarted-garden.py b/u5/kindergarted-garden.py index e69de29..80890dc 100644 --- a/u5/kindergarted-garden.py +++ b/u5/kindergarted-garden.py @@ -0,0 +1,42 @@ +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] \ No newline at end of file