diff --git a/main.py b/main.py index fd09b48..a168894 100644 --- a/main.py +++ b/main.py @@ -1,12 +1,9 @@ -from functions import binarian -from functions import unbinarian -from submenus import entoBin -from submenus import binToEn +from submenus import entoBin, binToEn, translateMenu from functions import clear import readchar def main_menu(): - options = ["Translate from English to Binarian", "Translate from Binarian to English", "Exit"] + options = ["Translate from English to Binarian","Translate from Binarian to English","Translate","Exit"] selected = 0 while True: @@ -30,11 +27,10 @@ def main_menu(): break elif options[selected] == "Translate from English to Binarian": entoBin() - elif option[selected == "Translate from Binarian to English"]: + elif options[selected] == "Translate from Binarian to English": binToEn() - else: - print(f"Selected: {options[selected]}") - input("Press Enter to return to menu...") + elif options[selected] == "Translate": + translateMenu() if __name__ == "__main__": main_menu() diff --git a/submenus.py b/submenus.py index 22c6b9b..63fa644 100644 --- a/submenus.py +++ b/submenus.py @@ -1,85 +1,88 @@ import readchar -from gamemodes import norToBin -from gamemodes import binToNor +from gamemodes import norToBin, binToNor from functions import clear -def entoBin(): - options = ["Level 1", "Level 2", "Level 3","Level 4", "Level 5" , "Back to main menu"] - selected = 0 +from translate import translateEnToBin, translateBinToEn # Ensure these are correctly imported - while True: - clear() - print("Select a level to start translating!") - print("Use arrow keys to navigate and Enter to select:\n") - - for i, option in enumerate(options): - prefix = "> " if i == selected else " " - print(f"{prefix}{option}") - - key = readchar.readkey() - - if key == readchar.key.UP and selected > 0: - selected -= 1 - elif key == readchar.key.DOWN and selected < len(options) - 1: - selected += 1 - elif key == readchar.key.ENTER: - if options[selected] == "Level 1": - clear() - norToBin(1) - elif options[selected] == "Level 2": - clear() - norToBin(2) - elif options[selected] == "Level 3": - clear() - norToBin(3) - elif options[selected] == "Level 4": - clear() - norToBin(4) - elif options[selected] == "Level 5": - clear() - norToBin(5) - elif options[selected] == "Back to main menu": - print("Exiting...") - break - else: - print(f"Selected: {options[selected]}") +def entoBin(): + options = ["Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Back to main menu"] + selected = 0 + + while True: + clear() + print("Select a level to start translating!") + print("Use arrow keys to navigate and Enter to select:\n") + + for i, option in enumerate(options): + prefix = "> " if i == selected else " " + print(f"{prefix}{option}") + + key = readchar.readkey() + + if key == readchar.key.UP and selected > 0: + selected -= 1 + elif key == readchar.key.DOWN and selected < len(options) - 1: + selected += 1 + elif key == readchar.key.ENTER: + if selected < 5: # If it's a level + clear() + norToBin(selected + 1) + else: # Back to main menu + print("Exiting...") + break def binToEn(): - options = ["Level 1", "Level 2", "Level 3","Level 4", "Level 5" , "Back to main menu"] - selected = 0 + options = ["Level 1", "Level 2", "Level 3", "Level 4", "Level 5", "Back to main menu"] + selected = 0 - while True: - clear() - print("Select a level to start translating!") - print("Use arrow keys to navigate and Enter to select:\n") - - for i, option in enumerate(options): - prefix = "> " if i == selected else " " - print(f"{prefix}{option}") - - key = readchar.readkey() - - if key == readchar.key.UP and selected > 0: - selected -= 1 - elif key == readchar.key.DOWN and selected < len(options) - 1: - selected += 1 - elif key == readchar.key.ENTER: - if options[selected] == "Level 1": - clear() - binToNor(1) - elif options[selected] == "Level 2": - clear() - binToNor(2) - elif options[selected] == "Level 3": - clear() - binToNor(3) - elif options[selected] == "Level 4": - clear() - binToNor(4) - elif options[selected] == "Level 5": - clear() - binToNor(5) - elif options[selected] == "Back to main menu": - print("Exiting...") - break - else: - print(f"Selected: {options[selected]}") + while True: + clear() + print("Select a level to start translating!") + print("Use arrow keys to navigate and Enter to select:\n") + + for i, option in enumerate(options): + prefix = "> " if i == selected else " " + print(f"{prefix}{option}") + + key = readchar.readkey() + + if key == readchar.key.UP and selected > 0: + selected -= 1 + elif key == readchar.key.DOWN and selected < len(options) - 1: + selected += 1 + elif key == readchar.key.ENTER: + if selected < 5: + clear() + binToNor(selected + 1) + else: + print("Exiting...") + break + +def translateMenu(): + options = ["Binarian to English", "English to Binarian", "Back to main menu"] + selected = 0 + + while True: + clear() + print("Select if you want to translate from or to Binarian!") + print("Use arrow keys to navigate and Enter to select:\n") + + for i, option in enumerate(options): + prefix = "> " if i == selected else " " + print(f"{prefix}{option}") + + key = readchar.readkey() + + if key == readchar.key.UP and selected > 0: + selected -= 1 + elif key == readchar.key.DOWN and selected < len(options) - 1: + selected += 1 + elif key == readchar.key.ENTER: + if selected == 0: + clear() + translateBinToEn() + elif selected == 1: + clear() + translateEnToBin() + else: + print("Exiting...") + break diff --git a/translate.py b/translate.py new file mode 100644 index 0000000..01afdcc --- /dev/null +++ b/translate.py @@ -0,0 +1,11 @@ +from functions import * + +def translateEnToBin(): + userIn = input("Enter english word/sentence\n>") + print(binarian(userIn)) + input("Hit ENTER to continue") + +def translateBinToEn(): + userIn = input("Enter binarian word/sentence\n>") + print(unbinarian(userIn)) + input("Hit ENTER to continue") \ No newline at end of file