avp26/u5/kindergarten_garden.py

44 lines
1.2 KiB
Python

class NoSuchStudentException(Exception):
pass
class Garden():
STUDENTS = [
"Alena", "Boris", "Cyril", "Daniel",
"Eva", "František", "Gitka", "Helena",
"Ivana", "Jozef", "Karol", "Ladislav"
]
PLANT_MAP = {
"G": "Tráva",
"C": "Ďatelina",
"R": "Reďkovky",
"V": "Fialky"
}
def __init__(self, diagrm : str, students : list[str] = None):
self.diagrm: str = diagrm
self.rows: str = diagrm.splitlines()
if students is not None:
self.students = sorted(students)
else:
self.students = self.DEFULT_STUDENTS
def plants(self, students_name : str):
if students_name not in self.students:
raise NoSuchStudentException(f"Učeň {student_name} neexistuje v tomto záhone.")
students_index = self.students.index(students_name)
start_col = student_index * 2
top_plants = self.rows[0][start_col:start_col + 2]
bottom_plants = self.rows[1][start_col:start_col + 2]
raw_chars = list(top_plants + bottom_plants)
result = [self.PLANT_MAP[char] for char in raw_chars]
return result