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

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.
#9
vote_ok
von 0 (0 Punkte) - 02.10.2017 um 22:50 Uhr
Quellcode ausblenden Python-Code
#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()

Kommentare:

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

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

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.