10.08.09, 09:36
|
#2 (permalink)
|
Registriert seit: 14.04.06 Likes: 4 | Eine nicht besonders hübsche Python-Lösung (ich hoffe, sie ist jetzt Bug-Frei  ): Code: #!/usr/bin/python
import random
import sys
def wuerfeln(anzWuerfel):
return [random.randint(1, 6) for x in range(anzWuerfel)]
def auswertung(e):
anzahl = [0 for i in range(7)]
for i in e:
anzahl[i] += 1
wuerfel = 0
pasche = 0
if (anzahl[1] >= 3):
pasche = 10**(anzahl[1])
wuerfel += anzahl[1]
for i in range(2, 7):
if (anzahl[i] >= 3):
pasche += i * 10**(anzahl[i]-1)
wuerfel += anzahl[i]
punkte = 0
if (anzahl[1] in [1,2] or anzahl[5] in [1,2]):
punkte = pasche
else:
wuerfel = 0
if (anzahl[1] < 3 or punkte == 0):
punkte += 100 * anzahl[1]
wuerfel += anzahl[1]
if (anzahl[5] < 3 or punkte == 0):
punkte += 50 * anzahl[5]
wuerfel += anzahl[5]
return (punkte, wuerfel)
punkte = [0 for i in range(2)]
pa = 0
aktRunde = 1
while (max(punkte) < 10000 or pa != 0):
print "#### RUNDE", aktRunde
print "Spieler %d ist an der Reihe!" % (pa+1),
abbruch = False
runde = 0
wuerfel = 5
print "Druecke ENTER zum Wuerfeln! ",
sys.stdin.readline()
while (not abbruch):
e = wuerfeln(wuerfel)
print "Gewuerfelt:", e
stat = auswertung(e)
runde += stat[0]
wuerfel -= stat[1]
if (stat[0] == 0):
runde = 0
print "Punkte dieser Runde: %d" % runde
if (stat[0] == 0):
break
if (wuerfel == 0):
wuerfel = 5
while (stat[0] > 0):
print "Noch eine Runde mit %d Wuerfeln? (j/n) " % wuerfel,
a = sys.stdin.readline().strip()
if (a == "j"):
break
elif (a == "n"):
abbruch = True
break
punkte[pa] += runde
print "Punkte gesamt:", punkte[pa]
print
pa = (pa + 1) % 2
if (pa == 0): aktRunde += 1 |
| |