From 3e478b8b52accf0e3ff2566e91b524fe6046defa Mon Sep 17 00:00:00 2001 From: Lucas Alber Date: Thu, 15 Sep 2022 10:47:12 +0200 Subject: [PATCH] Minor usability improvements --- android_ui.py | 9 ++++++--- main.py | 21 +++++++++++++++------ terminal_ui.py | 12 +++++++++--- 3 files changed, 30 insertions(+), 12 deletions(-) diff --git a/android_ui.py b/android_ui.py index 6a2ad52..1175887 100644 --- a/android_ui.py +++ b/android_ui.py @@ -12,13 +12,16 @@ def query(text): return result -def query_int(text): +def query_int(text, default): try: ans = query(text) - return int(ans) + if ans or default is None: + return int(ans) + else: + return default except ValueError: droid.makeToast("Please enter a valid number!") - return query_int(text) + return query_int(text, default) def query_yes_no(question): diff --git a/main.py b/main.py index ab55be4..0a1a993 100644 --- a/main.py +++ b/main.py @@ -62,7 +62,7 @@ def print_standings(players, guesses, results): # Remove invisivle characters for padding calculation clean = text for color in COLORS.values(): - clean = clean.replace(color, '') + clean = clean.replace(color, "") pad = " " * (width - len(clean) - 2) print(f" {pad}{text} |", end="") @@ -110,11 +110,12 @@ def main(): for j in range(i, i + len(players)): player = players[j % len(players)] if j == i: - guess = ui.query_int(f"{player}, wie viele Stiche machst du?") + guess = ui.query_int(f"{player}, wie viele Stiche machst du?", None) else: not_allowed = i - guess_sum guess = ui.query_int( - f"{player}?{f' ({not_allowed} ist nicht erlaubt)' if j == i + len(players) - 1 and i > 3 and i - guess_sum >= 0 else ''}" + f"(Summe: {guess_sum}) {player}?{f' ({not_allowed} ist nicht erlaubt)' if j == i + len(players) - 1 and i > 3 and i - guess_sum >= 0 else ''}", + None, ) guesses[player] += [guess] guess_sum += guess @@ -140,10 +141,13 @@ def main(): player = players[j % len(players)] if j == i: result = ui.query_int( - f"{player}, wie viele Stiche hast du von {guesses[player][-1]} gemacht?" + f"{player}, wie viele Stiche hast du von {guesses[player][-1]} gemacht? [{guesses[player][-1]}]", + guesses[player][-1], ) else: - result = ui.query_int(f"{player}? (von {guesses[player][-1]})") + result = ui.query_int( + f"{player}? [{guesses[player][-1]}]", guesses[player][-1] + ) results[player] += [result] if j != i + len(players) - 1: @@ -176,6 +180,9 @@ def main(): ) ) + print("\n\n---------------RESULTS---------------") + print("-------------------------------------\n") + print_standings(players, guesses, results) print() place = 0 count = 1 @@ -184,7 +191,9 @@ def main(): if result != last: place += count count = 0 - print(f"{place}. {player} mit {result} Punkten{' WOOOHOO!!' if place == 1 else ''}") + print( + f"{place}. {player} mit {result} Punkten{' WOOOHOO!!' if place == 1 else ''}" + ) count += 1 last = result diff --git a/terminal_ui.py b/terminal_ui.py index 97d7016..f7677a6 100644 --- a/terminal_ui.py +++ b/terminal_ui.py @@ -1,14 +1,20 @@ +from typing import Optional + + def query(text): return input(f"{text} \n> ") -def query_int(text): +def query_int(text: str, default: Optional[int] = None): try: ans = query(text) - return int(ans) + if ans or default is None: + return int(ans) + else: + return default except ValueError: print("Please enter a valid number!") - return query_int(text) + return query_int(text, default) def query_yes_no(question, default="yes"):