Translate to German, Make TTS friendly
This commit is contained in:
130
main.py
Normal file
130
main.py
Normal file
@@ -0,0 +1,130 @@
|
||||
import os
|
||||
|
||||
try:
|
||||
import android_ui as ui
|
||||
except ImportError:
|
||||
import terminal_ui as ui
|
||||
|
||||
MIN_CELL_WIDTH = 15
|
||||
|
||||
|
||||
def clear():
|
||||
os.system("cls" if os.name in ("nt", "dos") else "clear")
|
||||
|
||||
|
||||
def remove_line(d):
|
||||
for key in d.keys():
|
||||
del d[key][-1]
|
||||
|
||||
|
||||
def calc_points(guess, result):
|
||||
if guess == result:
|
||||
return 20 + guess * 10
|
||||
else:
|
||||
return -10 * abs(guess - result)
|
||||
|
||||
|
||||
def print_standings(players, guesses, results):
|
||||
# Header
|
||||
width = max(MIN_CELL_WIDTH, *[len(player) for player in players])
|
||||
|
||||
print("| Round |", end="")
|
||||
for player in players:
|
||||
pad = " " * (width - len(player) - 2)
|
||||
print(f" {player}{pad} |", end="")
|
||||
print()
|
||||
print("-" * (9 + len(players) * (width + 1)))
|
||||
|
||||
# Data
|
||||
points = {player: 0 for player in players}
|
||||
for num_round in range(1, len(guesses[players[0]]) + 1):
|
||||
pad = 7 - len(str(num_round)) - 2
|
||||
print(f"| {' ' * pad}{num_round} |", end="")
|
||||
|
||||
for player in players:
|
||||
if num_round <= len(results[player]):
|
||||
points[player] += calc_points(guesses[player][num_round - 1], results[player][num_round - 1])
|
||||
text = f"{points[player]} / {guesses[player][num_round - 1]} ({results[player][num_round - 1]})"
|
||||
else:
|
||||
text = f"??? / {guesses[player][num_round - 1]} (?)"
|
||||
|
||||
pad = " " * (width - len(text) - 2)
|
||||
print(f" {pad}{text} |", end="")
|
||||
print()
|
||||
|
||||
|
||||
def main():
|
||||
# SETUP
|
||||
clear()
|
||||
print("Hey! Willkommen bei WiZaRδ!\n")
|
||||
|
||||
players = [name.strip() for name in ui.query("Gib die Spielernamen ein (Kommagetrennt)").split(",")]
|
||||
guesses = {player: [] for player in players}
|
||||
results = {player: [] for player in players}
|
||||
|
||||
num_rounds = 60 // len(players)
|
||||
|
||||
# NORMAL GAMEPLAY
|
||||
|
||||
for i in range(1, num_rounds + 1):
|
||||
print("\n\n")
|
||||
print(f"Runde {i} von {num_rounds}.")
|
||||
print(f"{players[(i - 1) % len(players)]} teilt aus, {players[i % len(players)]} fängt an.\n\n")
|
||||
|
||||
# INPUT GUESSES
|
||||
|
||||
print()
|
||||
while True:
|
||||
guess_sum = 0
|
||||
summary = "Das heißt "
|
||||
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?")
|
||||
else:
|
||||
guess = ui.query_int(f"{player}?{f' ({i - guess_sum} ist nicht erlaubt)' if j == i + len(players) - 1 and i > 3 else ''}")
|
||||
guesses[player] += [guess]
|
||||
guess_sum += guess
|
||||
if j != i + len(players) - 1:
|
||||
summary += f"{', ' if j != i else ''}{player} schätzt {guess}"
|
||||
else:
|
||||
summary += f" und {player} schätzt {guess}"
|
||||
if ui.query_yes_no(f"{summary}, passt das?"):
|
||||
break
|
||||
else:
|
||||
remove_line(guesses)
|
||||
|
||||
# PRINT STANDINGS
|
||||
print()
|
||||
print_standings(players, guesses, results)
|
||||
input("\nDrücke ENTER um fortzufahren...")
|
||||
|
||||
# INPUT RESULTS
|
||||
print()
|
||||
while True:
|
||||
summary = "Also "
|
||||
for j in range(i, i + len(players)):
|
||||
player = players[j % len(players)]
|
||||
if j == i:
|
||||
result = ui.query_int(f"{player}, wie viele Stiche hast du gemacht?")
|
||||
else:
|
||||
result = ui.query_int(f"{player}?")
|
||||
results[player] += [result]
|
||||
|
||||
if j != i + len(players) - 1:
|
||||
summary += f"{', ' if j != i else ''}{player} hat {result}"
|
||||
else:
|
||||
summary += f" und {player} hat {result} gemacht"
|
||||
if ui.query_yes_no(f"{summary}, passt das?"):
|
||||
break
|
||||
else:
|
||||
remove_line(results)
|
||||
|
||||
# PRINT STANDINGS
|
||||
print()
|
||||
print_standings(players, guesses, results)
|
||||
input("\nDrücke ENTER um fortzufahren...")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user