Python :: Aufgabe #86 :: Lösung #6
9 Lösungen
#86
Stein, Papier, Schere, Echse, Spock
Anfänger - Python
von Energy
- 24.09.2015 um 15:22 Uhr
Programmiere das Spiel Stein, Papier, Schere, Echse, Spock, sodass man selbst eine Figur auswählen kann und der Computer eine zufällige Figur auswählt. Ermittele dann, wer diese Partie gewonnen hat.
#6
von BlueBite (100 Punkte)
- 02.03.2016 um 22:11 Uhr
# Bei der Eingabe gibt es keine Fehlerkontrolle - aber das kann ja der nächste
# Programmierer optimieren ;)
eingabe = raw_input("Stein, Papier, Schere, Echse, Spock - Wähle weise!: ")
eingabe = eingabe.lower()
# Folgende Listen können miteinander addiert werden und die Gewinner lassen sich
# daraus ableiten
stein = [0, -1, 1, 1, -1, "Stein", "stein"]
papier = [1, 0, -1, -1, 1, "Papier", "papier"]
schere = [-1, 1, 0, 1, -1, "Schere", "schere"]
echse = [-1, 1, -1, 0, 1, "Echse", "echse"]
spock = [1, -1, 1, -1, 0, "Spock", "spock"]
auswahl = [stein, papier, schere, echse, spock]
counter = 0
# Die Eingabe des Users wird verglichen mit den Listen und die korrekte Liste
# wird dem User zugeordnet (in der Variable a)
for i in auswahl:
if eingabe == i[6]:
a = auswahl[counter]
else:
counter += 1
# Der Computer wöhlt per Zufall eine Zahl zwischen 0 und 4 und diese
# Liste wird dem Computer zugeordnet (Variable b)
computerchoice = int(random()*100/20)
b = auswahl[computerchoice]
# Es werden nun die Listen aufsummiert und gesehen, wer gewonnen hat
for i in range(5):
if a[i]+b[i] == 1 and a[i] == 1:
print "Du hast mit %s gegen den Computer mit %s gewonnen!" % (a[5], b[5])
break
elif a[i]+b[i] == 1 and b[i] == 1:
print "Der Computer hat mit %s gegen dich und deinem Zeichen %s gewonnen :-(" % (b[5], a[5])
break
elif i == 4:
print "Ihr habt beide das gleiche Zeichen gewählt, nämlich %s" % a[5]
break
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
