diff --git a/u8/program.py b/u8/program.py index 6755e19..e20c1db 100644 --- a/u8/program.py +++ b/u8/program.py @@ -3,8 +3,9 @@ class Node: def __init__(self, text: str): self.text = text self.is_question = text.endswith('?') - self.left = None # Ссылка на левого потомка (выбор t да) - self.right = None # Ссылка на правого потомка (выбор f нет) + self.left = None # Ссылка на левого потомка (выбор a да) + self.right = None # Ссылка на правого потомка (выбор n нет) + class ZooExpertSystem: # Класс для управления системой зоопарка @@ -21,7 +22,7 @@ class ZooExpertSystem: # Списки для разделенных строк входа self.db_lines = [] # Строки относящиеся к базе знаний (дереву) - self.user_choices = ([]) # Строки с ответами пользователя (t или f) + self.user_choices = [] # Строки с ответами пользователя (a или n) def run(self): # контроллер запускает программу в строгом соответствии с жизненным циклом. @@ -61,7 +62,7 @@ class ZooExpertSystem: if not self.db_lines: return False - # Читаем оставшиеся строки с ответами пользователя (t / f) + # Читаем оставшиеся строки с ответами пользователя (a / n) try: while True: choice = input().rstrip("\r") @@ -87,7 +88,7 @@ class ZooExpertSystem: if node.is_question: self.q_count += 1 - # Сначала собираем левую ветку (Да / 'a'), затем правую (Нет / 'n') + # Сначала собираем левую ветку (да a), затем правую (нет n) node.left = parse_node() node.right = parse_node() @@ -107,6 +108,44 @@ class ZooExpertSystem: return True + def _print_stats(self): + # Вывод количества вопросов, ответов и подсказки пользователю + print(f"Pocet otazok: {self.q_count}") + print(f"Pocet odpovedi: {self.a_count}") + print("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.") + + def _run_quiz(self): + # Пошаговый спуск по дереву от корня к животному + curr = self.root + choice_idx = 0 + + while True: + # Выводим текущий вопрос или название животного + print(curr.text) + + # Дошли до конечной точки (листа с животным) + if not curr.is_question: + print("Koniec") + return + + # Если для дальнейшего вопроса у пользователя не осталось ответа + if choice_idx >= len(self.user_choices): + print("Koniec vstupu") + return + + choice = self.user_choices[choice_idx] + choice_idx += 1 + + if choice == "a": + curr = curr.left + elif choice == "n": + curr = curr.right + else: + # Введен неверный символ (не a и не n) + print("Nerozumiem") + return + + if __name__ == "__main__": system = ZooExpertSystem() - system.run() + system.run() \ No newline at end of file