-
Notifications
You must be signed in to change notification settings - Fork 0
/
messages.py
executable file
·85 lines (74 loc) · 2.69 KB
/
messages.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# coding=utf-8
strings = {
'welcome': u'Willkommen zu TextKniffel, das Spiel startet sofort!',
'newgame': u'Ein neues Spiel beginnt...',
'chooseplayer': u'Wie viele Spieler sollen spielen? ',
'nameplayer': u'Wie lautet der Name für Spieler {}',
'prompt': u'Kommando:',
'playerprompt': u'Kommando({}):',
'player': u'Spieler({})',
'wrongtype': u'Der eingegebene Wert muss vom Typ {} sein',
'wrongcommand': u'Kein gültiges Kommando',
'noturnsleft': u'Alle Würfe aufgebraucht, bitte Punkte eintragen',
'int': u'Zahl',
'finished': u'Das Spiel ist beendet!',
'winner': u'Spieler {} hat mit {} Punkten gewonnen!',
'help': u'Test',
'points': u'Punktestand',
'point_header': u'Feld',
'one': u'Einsen',
'two': u'Zweien',
'three': u'Dreien',
'four': u'Vieren',
'five': u'Fünfen',
'six': u'Sechsen',
'bonus': u'Bonus',
'onepair': u'Ein Paar',
'twopair': u'Zwei Paar',
'threesome': u'Dreierpasch',
'foursome': u'Viererpasch',
'kniffel': u'Kniffel',
'smallstreet': u'Kleine Straße',
'bigstreet': u'Große Straße',
'chance': u'Chance',
'fullhouse': u'Full House',
'sum': u'Summe',
'fieldblocked': u'Dieses Feld ist schon belegt',
'unknown_param': u'Ungültiger Parameter {}',
'specify_column': u'Es muss eine Spalte gewählt werden (z.B. \'one 1\')',
'no_cmd_game': u'Der Kommandozeilenmodus ist zur Zeit nicht funktionstüchtig'
}
def print_message(message, *args):
print strings[message].format(*args)
def print_dice(dice):
print dice
def print_points(players):
if type(players) != list:
players = [players]
header = u'{:<18s}'.format(strings['points'])
for player in players:
header += u'{:>14s}'.format(strings['player'].format(player.id))
points = u''
for field in player.points.columns[0].points:
points += u'{:<18s}'.format(strings[field])
for player in players:
points += u' {}{:>10d}'.format('X' if player.points.columns[0].points[field][1] else ' ',
player.points.columns[0].points[field][0])
points += u'\n'
points += u'{:<18s}'.format(strings['sum'])
for player in players:
points += u'{:14d}'.format(player.points.total(0))
print header
print points
def print_help():
print_message('help')
def prompt(message, values=[], needed=None):
while True:
input_value = raw_input(strings[message].format(values))
if needed:
try:
return needed(input_value)
except ValueError:
print_message('wrongtype', strings[needed.__name__])
else:
return input_value