Python :: Aufgabe #86
9 Lösungen

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.
Lösungen:

import random dic = {"stein" : 0, "papier" : 1, "schere" : 2, "echse" : 3, "spock" : 4} print("\n=======---Stein, Papier, Schere, Echse, Spock---=======\n") print("Stein schleift Schere und zerquetscht Echse.") print("Papier bedeckt Stein und widerlegt Spock.") print("Schere schneidet Papier und köpft Echse.") print("Echse frisst Papier und vergiftet Spock.") print("Spock zertrümmert Schere und verdampft Stein.\n") print(55*"=") while True: while True: wahl = input("Nun wähle! Aber wähle weise: ") wahl = wahl.lower() if wahl not in dic.keys(): print("Falsche Eingabe! Nochmal!\n") else: ai = random.choice(list(dic.keys())) ai = ai.lower() break if wahl == ai: print("{0:10}{1:10}".format("Spieler: ", wahl[0].upper()+wahl[1:])) print("{0:10}{1:10}".format("Computer: ", ai[0].upper()+ai[1:])) print("Unentschieden!") elif ( (wahl == "stein" and (ai == "schere" or ai == "echse")) or (wahl == "papier" and (ai == "stein" or ai == "spock")) or (wahl == "schere" and (ai == "papier" or ai == "echse")) or (wahl == "echse" and (ai == "papier" or ai == "spock")) or (wahl == "spock" and (ai == "stein" or ai == "schere")) ): print("{0:10}{1:10}".format("Spieler: ", wahl[0].upper()+wahl[1:])) print("{0:10}{1:10}".format("Computer: ", ai[0].upper()+ai[1:])) print("Du gewinnst!") else: print("{0:10}{1:10}".format("Spieler: ", wahl[0].upper()+wahl[1:])) print("{0:10}{1:10}".format("Computer: ", ai[0].upper()+ai[1:])) print("Der Computer gewinnt!") again = input("\nNochmal (j/n): ") if again == "J" or again == "j": continue else: break

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)

import random figuren = ["Stein","Schere","Papier","Echse","Spock"] print("Williommen bei Stein, Schere, Papier, Echse, Spock!") run = True while run : n = input("figur wählen nummer eingeben: \n 1)Stein 2)Schere 3)Papier 4)Echse 5)Spock \n") player = figuren[int(n)-1] Gegner = random.choice(figuren) print("Ich: ",player) print("Gegner: ",Gegner) if player == Gegner : print("unentschieden") elif player == "Stein" : if Gegner == "Schere" or Gegner == "Echse" : print("Gewonnen!!!") else : print ("verloren :( ") elif player == "Schere" : if Gegner == "Papier" or Gegner == "Echse" : print("Gewonnen!!!") else : print ("verloren :( ") elif player == "Papier" : if Gegner == "Stein" or Gegner == "Spock" : print("Gewonnen!!!") else : print ("verloren :( ") elif player == "Echse" : if Gegner == "Spock" or Gegner == "Papier" : print("Gewonnen!!!") else : print ("verloren :( ") elif player == "Spock" : if Gegner == "Stein" or Gegner == "Schere" : print("Gewonnen!!!") else : print ("verloren :( ") ende = input("nochmal? j/n") if ende == "n" : run = False

import random random.seed() computerwahl = random.randint(0, 4) tie = "Unentschieden!" viktory = "Sie haben Gewonnen!" lose = "Sie haben Verloren!" playerwahl = input("Stein:1, Papier:2, Schere:3, Echse:4 oder Spock:5? ") def player(playerwahl, computerwahl): if playerwahl == 1: player_stein(computerwahl) elif playerwahl == 2: player_papier(computerwahl) elif playerwahl == 3: player_schere(computerwahl) elif playerwahl == 4: player_echse(computerwahl) elif playerwahl == 5: player_spook(computerwahl) else: print "Falsche Eingabe! " def player_stein(computerwahl): if computerwahl == 0: print tie elif computerwahl == 1: print lose elif computerwahl == 2: print viktory elif computerwahl == 3: print vikory elif computerwahl == 4: print lose else: print "Falsche Eingabe!" def player_schere(computerwahl): if computerwahl == 0: print lose elif computerwahl == 1: print viktory elif computerwahl == 2: print tie elif computerwahl == 3: print viktory elif computerwahl == 4: print lose else: print "Falsche Eingabe!" def player_papier(computerwahl): if computerwahl == 0: print viktory elif computerwahl == 1: print tie elif computerwahl == 2: print lose elif computerwahl == 3: print lose elif computerwahl == 4: print viktory else: print "Falsche Eingabe!" def player_echse(computerwahl): if computerwahl == 0: print lose elif computerwahl == 1: print viktory elif computerwahl == 2: print lose elif computerwahl == 3: print tie elif computerwahl == 4: print viktory else: print "Falsche Eingabe!" def player_spook(computerwahl): if computerwahl == 0: print viktory elif computerwahl == 1: print lose elif computerwahl == 2: print viktory elif computerwahl == 3: print lose elif computerwahl == 4: print tie else: print "Falsche Eingabe!" if computerwahl == 0: playerwahl print "Gegner wählt", computerwahl +1 player(playerwahl, computerwahl) elif computerwahl == 1: playerwahl print "Gegner wählt", computerwahl +1 player(playerwahl, computerwahl) elif computerwahl == 2: playerwahl print "Gegner wählt", computerwahl +1 player(playerwahl, computerwahl) elif computerwahl == 3: playerwahl print "Gegner wählt", computerwahl +1 player(playerwahl, computerwahl) elif computerwahl == 4: playerwahl print "Gegner wählt", computerwahl +1 player(playerwahl, computerwahl) else: print("error")

import random print 'Stein, Schere, Papier' print '---------------------' print 'Stein: Schleift Schere, zerquetscht Echse' print 'Schere: Schneidet Papier, köpft Echse' print 'Papier: Bedeckt Stein, widerlegt Spock' print 'Spock: Zertrümmert Schere, verdampft Stein' print 'Echse: Frisst Papier, vergiftet Spock' print '\nDu kannst zwischen Stein, Schere, Papier, Echse und Spock wählen.' while True: a = raw_input('Waehle Deine Figur: ') a = a.lower() c = random.randint(0,4) #d = '' #e = '' if c == 0: d = 'Stein' if c == 1: d = 'Schere' if c == 2: d = 'Papier' if c == 3: d = 'Spock' if c == 4: d = 'Echse' if a == 'stein': if c == 1 or c == 4: e = 'gewonnen' elif c == 0: e = 'unentschieden' else: e = 'verloren' if a == 'schere': if c == 2 or c == 4: e = 'gewonnen' elif c == 1: e = 'unentschieden' else: e = 'verloren' if a == 'papier': if c == 0 or c == 3: e = 'gewonnen' elif c == 2: e = 'unentschieden' else: e = 'verloren' if a == 'spock': if c == 0 or c == 1: e = 'gewonnen' elif c == 3: e = 'unentschieden' else: e = 'verloren' if a == 'echse': if c == 2 or c == 3: e = 'gewonnen' elif c == 4: e = 'unentschieden' else: e = 'verloren' a = a.capitalize() #print '\tDeine Figur: %r' % (a) print 'Dein Gegner: ', d print 'Dein Ergebnis: ', e, '!' f = raw_input('Noch eine Runde? (j/n)> ') if f == 'j': continue if f == 'n': print 'Spiel beendet!' break else: f = raw_input('Eingabe nicht verstanden. Bitte (j/n) eingeben> ')

# 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

# -*- coding: utf-8 -*- # Python2.7 import random figur_liste = {1:"Schere", 2:"Papier", 3: "Stein", 4:"Echse", 5:"Spock"} win = "DU HAST GEWONNEN!" loose = "DU HAST VERLOREN!" while True: print "*****************" print "REGELN:" print "Schere schneidet Papier und köpft Echse" print "Papier bedeckt Stein und widerlegt Spock" print "Stein zerquetscht Echse und zerschmettert Schere" print "Echse vergiftet Spock und frisst Papier" print "Spock zertruemmert Schere und verdampft Stein" print "***************** \n" print "1: Schere 2: Papier 3: Stein 4: Echse 5: Spock \n" d = int(input("Deine Wahl(1-5): ")) print "-> ", figur_liste[d] print "Computer wählt:" e = random.randrange(1, 6) print "-> ", figur_liste[e], "\n" #Schere if d == 1 and (e == 2 or e == 4): print win elif (d == 2 or d == 4) and e == 1: print loose #Papier elif d == 2 and (e == 3 or e == 5): print win elif (d == 3 or d == 5) and e == 2: print loose #Stein elif d == 3 and (e == 4 or e == 1): print win elif (d == 4 or d == 1) and e == 3: print loose #Echse elif d == 4 and (e == 5 or e == 2): print win elif (d == 5 or d == 2) and e == 4: print loose #Spock elif d == 5 and (e == 1 or e == 3): print win elif (d == 1 or d == 3) and e == 5: print loose else: print "GLEICHSTAND!" print "\n" nchml = raw_input('Nochmal? [ j / n]: ') if nchml == "n": break print "\n"

import random def regeln(): print("Die Regeln lauten: \n Schere schneidet Papier \n Papier bedeckt Stein \n Stein zerquetscht Echse \n Echse vergiftet Spock \n Spock zertrümmert Schere \n Schere köpft Echse \n Echse frisst Papier \n Papier widerlegt Spock \n Spock verdampft Stein \n Stein zertrümmert Schere") def eingabe(): global benutzer_auswahl global möglichkeiten möglichkeiten = ["Stein", "Papier", "Schere", "Echse", "Spock"] t = 0 while t == 0: benutzer_auswahl = input("Was wählen Sie?: (Stein/Papier/Schere/Echse/Spock) ") if benutzer_auswahl not in möglichkeiten: print("Nur (Stein/Papier/Schere/Echse/Spock) möglich!!!") else: t = 1 def kampf(benutzer_auswahl, möglichkeiten): global computer_auswahl global nachricht sieg = "Sie haben gewonnen!!! :D" verloren = "Sie haben leider verloren :(" computer_auswahl = random.choice(möglichkeiten) print("Sie haben " + benutzer_auswahl + " gewählt. \nDer Computer hat " + computer_auswahl + " gewählt.") if benutzer_auswahl == "Schere": if computer_auswahl == "Papier" or computer_auswahl == "Echse": nachricht = sieg else: nachricht = verloren elif benutzer_auswahl == "Papier": if computer_auswahl == "Stein" or computer_auswahl == "Spock": nachricht = sieg else: nachricht = verloren elif benutzer_auswahl == "Stein": if computer_auswahl == "Echse" or computer_auswahl == "Schere": nachricht = sieg else: nachricht = verloren elif benutzer_auswahl == "Spock": if computer_auswahl == "Schere" or computer_auswahl == "Stein": nachricht = sieg else: nachricht = verloren elif benutzer_auswahl == "Echse": if computer_auswahl == "Spock" or computer_auswahl == "Papier": nachricht = sieg else: nachricht = verloren def ausgabe(nachricht): print(nachricht) regeln() eingabe() kampf(benutzer_auswahl, möglichkeiten) ausgabe(nachricht)

#Stein Papier Schere Echse Spock from random import choice from tkinter import * class Spiel(object): wahl=['Stein','Papier','Schere','Echse','Spock'] def __init__(self): self.f=Tk() self.f.title("Stein Papier Schere :-P") self.ich=StringVar() self.cpu=StringVar() self.point=StringVar() self.layout() self.f.mainloop() def layout(self): self.knoepfe=Frame(self.f) self.knoepfe.pack(side=LEFT) for w in Spiel.wahl: Radiobutton(self.knoepfe,text=w,value=w,variable=self.ich,anchor=W).pack() Button(self.knoepfe,text="Start",command=self.start,anchor=W).pack() Button(self.knoepfe,text="Neu",command=self.neu,anchor=W).pack() self.ausgabe=Frame(self.f) self.ausgabe.pack(side=LEFT) Label(self.ausgabe,textvariable=self.point,anchor=E).pack() Label(self.ausgabe,text="Meine Wahl:",anchor=W).pack() Label(self.ausgabe,textvariable=self.ich,anchor=W).pack() Label(self.ausgabe,text="gegenerische Wahl:",anchor=W).pack() Label(self.ausgabe,textvariable=self.cpu,anchor=W).pack() self.anzeige=Label(self.f,text=" ",width=10) self.anzeige.pack(side=BOTTOM) def start(self): self.cpu.set(choice(Spiel.wahl)) if self.point.get(): p=int(self.point.get()) else: p=0 if self.ich.get()==self.cpu.get(): self.anzeige.config(text="Unentschieden") elif self.check(): p+=1 self.point.set(str(p)) self.anzeige.config(text="Gewonnen") else: p-=1 self.point.set(str(p)) self.anzeige.config(text="Verloren") def check(self): i=self.ich.get() c=self.cpu.get() if i=="Schere" and c=="Papier": return True elif i=="Papier" and c=="Stein": return True elif i=="Stein" and c=="Echse": return True elif i=="Echse" and c=="Spock": return True elif i=="Spock" and c=="Schere": return True elif i=="Schere" and c=="Echse": return True elif i=="Echse" and c=="Papier": return True elif i=="Papier" and c=="Spock": return True elif i=="Spock" and c=="Stein": return True elif i=="Stein" and c=="Schere": return True else: return False def neu(self): self.point.set(str(0)) x=Spiel()