From eabfa933d2de900f50f6a7e5471e43cff67f58aa Mon Sep 17 00:00:00 2001 From: Marcin Kostrzewski Date: Sun, 13 Mar 2022 22:04:59 +0100 Subject: [PATCH] Initial implementation --- elisa_pl.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/elisa_pl.py b/elisa_pl.py index 4648e70..82cb250 100644 --- a/elisa_pl.py +++ b/elisa_pl.py @@ -1 +1,49 @@ -print("Hello, World!") \ No newline at end of file +import re +import random + +ARG_LITERAL = '%' +GOODBYES =["Do zobaczenia", "Elo"] +QUIT = "wyjscie" + +pairs = ( ('test (.*)', ('%1',)), ('test2 (.*)', ('%1 2',)) ) + + +def main(): + is_running = True + while is_running: + user_input = input().lower() + + if should_quit(user_input): + is_running = False + continue + + for pair in pairs: + search = re.search(pair[0].lower(), user_input) + + if not search: + continue + + ans = pick_answer(pair) + print(substitute_arg(ans, search.groups())) + + print(random.choice(GOODBYES)) + + +def should_quit(input): + return QUIT in input + + +def substitute_arg(pattern, sub): + # TODO: More than one argument support + arg = ARG_LITERAL + '1' + return pattern.replace(arg, sub[0]) + + +def pick_answer(pair): + assert len(pair) == 2 + idx = random.randint(0, len(pair[1]) - 1) + return pair[1][idx] + + +if __name__ == "__main__": + main() \ No newline at end of file