From 0b8574adbd32b3a81cd956c94709b9c0aa90cc9c Mon Sep 17 00:00:00 2001 From: Patrik Tulach Date: Wed, 4 Nov 2026 12:27:16 +0100 Subject: [PATCH] u8 --- u8/zoo.py | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 u8/zoo.py diff --git a/u8/zoo.py b/u8/zoo.py new file mode 100644 index 0000000..3e3dbd5 --- /dev/null +++ b/u8/zoo.py @@ -0,0 +1,78 @@ +def read_line(): + try: + line = input() + except EOFError: + return None + if line.endswith("\r"): + line = line[:-1] + return line + + +def load_tree(): + root = None + stack = [] + questions = answers = 0 + + while True: + line = read_line() + if not line: + return None + + node = [line, None, None] + if root is None: + root = node + else: + parent = stack[-1] + if parent[1] is None: + parent[1] = node + else: + parent[2] = node + stack.pop() + + if line.endswith("?"): + questions += 1 + stack.append(node) + else: + answers += 1 + + if not stack: + break + + if read_line() != "": + return None + return root, questions, answers + + +def main(): + print("Expert zo zoo to vie.") + + result = load_tree() + if result is None: + print("Chybna databaza") + return + node, questions, answers = result + + print(f"Pocet otazok: {questions}") + print(f"Pocet odpovedi: {answers}") + print("Odpovedajte 'a' pre prvu moznost alebo 'n' pre druhu moznost.") + print(node[0]) + + while node[1] is not None: + choice = read_line() + if choice is None: + print("Koniec vstupu") + return + if choice == "a": + node = node[1] + elif choice == "n": + node = node[2] + else: + print("Nerozumiem") + return + print(node[0]) + + print("Koniec") + + +if __name__ == "__main__": + main() \ No newline at end of file