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

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.
#2
vote_ok
von Jan (50 Punkte) - 21.10.2015 um 07:32 Uhr
Quellcode ausblenden Python-Code
import random, time
"""
0 - rock
1 - Spock
2 - paper
3 - lizard
4 - scissors
"""
#Wandelt Nummer vom Computer in den Namen für die Ausgabe um!
def numbertoname(number):

    if number==0: name="Stein"
    elif number==1: name="Spock"
    elif number==2: name="Papier"
    elif number==3: name="Echse"
    elif number==4: name="Schere"
    return name

#Wandelt den Namen in die Nummer für die Berechung um!
def nametonumber(name):

    if name=="Stein": number=0
    elif name=="Spock": number=1
    elif name=="Papier": number=2
    elif name=="Echse": number=3
    elif name=="Schere": number=4
    return number

#Startet die Berechenung
def spiel(name):
    
#Gibt zugehörige Nummer zurück von der Auswahl des Spielers!
    SpielerNummer=nametonumber(name)

#Berechnet die Zufällige Auswahl vom Computer
    CompNummer=random.randrange(0, 5)

#Berechnet Differenz --> Wer gewinnt!
    Unterschied=(SpielerNummer-CompNummer) % 5
    if Unterschied == 0:
        Gewinner = "Unentschieden!"
    elif Unterschied == 1:
        Gewinner = "Spieler gewinnt!"
    elif Unterschied == 2:
        Gewinner = "Spieler gewinnt!"
    elif Unterschied == 3:
        Gewinner = "Computer gewinnt!"
    elif Unterschied == 4:
        Gewinner = "Computer gewinnt!"

#Wandelt Auswahl des Computers in den Namen um!
    CompName=numbertoname(CompNummer)

#Ausgabe für den Spieler
    time.sleep(0.5)
    print ("Spieler wählt: ", name)
    print ("Computer wählt: ", CompName)
    time.sleep(1)
    print (Gewinner, "\n")
    time.sleep(0.5)

#Anfangsausgabe als Erklärung    
print ("Wilkommen zu Stein-Schere-Papier-Echse-Spock\n\n")

#Spielerklärung
print ("Kurze Erklärung, wie das Spiel funktioniert:\n ")
print ("Schere schneidet Papier")         
print ("Papier bedeckt Stein")              
print ("Stein zerquetscht Echse")
print ("Echse vergiftet Spock")
print ("Spock zertrümmert Schere")
print ("Schere köpft Echse")
print ("Echse frisst Papier")
print ("Papier widerlegt Spock")
print ("Spock verdampft Stein")
print ("Stein schleift Schere\n")
print ("Bitte wählen Sie einen der Namen aus:\n")
print ("0 - Stein")
print ("1 - Spock")
print ("2 - Papier")
print ("3 - Lizard")
print ("4 - Schere\n")
 
while True:

#Aufforderung an den Spieler eine Zahl einzugeben!
    decision = int(input("Bitte geben Sie die Nummer ein: "))
   
#Beendet den Vorgang bei falscher Zahl!
    if (decision > 4 ) or (decision < 0):
        print ("Error: It has to be a number between 0 and 4")
        break
   
#Wandelt die Zahl in den Namen um und startet die Berechnung!
    name = numbertoname(decision)
    spiel(name)

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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

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.