Python :: Aufgabe #86 :: Lösung #6

9 Lösungen Lösungen öffentlich
#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
vote_ok
von BlueBite (100 Punkte) - 02.03.2016 um 22:11 Uhr
Quellcode ausblenden Python-Code
# 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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
2095272

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.