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