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