Hangman mit GUI...
Nicht sauberste Programmierung, dafür wars eines meiner ersten Programme
Code: Alles auswählen
from turtle import *
from Tkinter import *
from random import *
from tkMessageBox import *
class Hangman:
def __init__(self, w):
self.woerter = w
self.such_wort = self.wort()
self.l = []
num = 0
self.fake = 0
self.r = 0
self.win = Tk()
self.win.title("Hangman")
self.word_frame = Frame(self.win)
self.cv_frame = Frame(self.win)
self.word_frame.pack()
self.cv_frame.pack()
for i in self.such_wort:
if i == "-":
self.l.append(Label(self.word_frame, text="-"))
elif i == " ":
self.l.append(Label(self.word_frame, text=" "))
else:
self.l.append(Label(self.word_frame, text="_"))
self.l[num].c = i
self.l[num].pack(side =LEFT)
num += 1
self.cv = Canvas(self.cv_frame, width=250, height=300, bg="gray")
self.cv.pack()
self.pen = RawPen(self.cv) # Galgen
self.pen.width(2)
self.pen.tracer(0)
self.win.bind("<Any-KeyPress>", self.key)
self.win.mainloop()
def wort(self):
return choice(self.woerter)
def key(self, event):
c = event.char
x = 0
if c.upper() in self.such_wort:
for i in self.l:
if i.c == c.upper():# or i.c == c or i.c == c:
i.config(text=i.c)
self.r += 1
else:
x = 1
if c.lower() in self.such_wort:
for i in self.l:
if i.c == c.lower():# or i.c == c or i.c == c:
i.config(text=i.c)
self.r += 1
else:
x += 1
if x == 2:
self.fake += 1
self.draw()
if self.r == len(self.such_wort):
showinfo("Hang-Man", "Gewonnen!")
def draw(self):
if self.fake == 1:
self.staender_1()
elif self.fake == 2:
self.staender_2()
elif self.fake == 3:
self.senk_stab_3()
elif self.fake == 4:
self.wag_stab_4()
elif self.fake == 5:
self.dia_stab_5()
elif self.fake == 6:
self.senk_stab_6()
elif self.fake == 7:
self.kopf_7()
elif self.fake == 8:
self.koerper_8()
elif self.fake == 9:
self.arm_l_9()
elif self.fake == 10:
self.arm_r_10()
elif self.fake == 11:
self.bein_l_11()
elif self.fake == 12:
self.bein_r_12()
for i in self.l:
i.config(text=i.c)
showinfo("Hang-Man", "Aufgehangen!")
def staender_1(self):
self.pen.up()
self.pen.goto(-100, -130)
self.pen.down()
self.pen.goto(-60, -80)
def staender_2(self):
self.pen.goto(-20, -130)
def senk_stab_3(self):
self.pen.goto(-60, -80)
self.pen.goto(-60, 50)
def wag_stab_4(self):
self.pen.goto(20, 50)
def dia_stab_5(self):
self.pen.up()
self.pen.goto(-30, 50)
self.pen.down()
self.pen.goto(-60, 10)
def senk_stab_6(self):
self.pen.up()
self.pen.goto(20, 50)
self.pen.down()
self.pen.goto(20, 30)
def kopf_7(self):
self.pen.circle(-15)
def koerper_8(self):
self.pen.up()
self.pen.goto(20, 0)
self.pen.down()
self.pen.goto(20, -70)
def arm_l_9(self):
self.pen.up()
self.pen.goto(20, -20)
self.pen.down()
self.pen.goto(-10, -40)
def arm_r_10(self):
self.pen.up()
self.pen.goto(20, -20)
self.pen.down()
self.pen.goto(50, -40)
def bein_l_11(self):
self.pen.up()
self.pen.goto(20, -70)
self.pen.down()
self.pen.goto(0, -100)
def bein_r_12(self):
self.pen.up()
self.pen.goto(20, -70)
self.pen.down()
self.pen.goto(40, -100)
w = ["Keks",
"Schildkroete",
"Kirchturm",
"Zirkuswagen",
"Hausstaub",
"Giraffenkaefig",
"Schaukelpferd",
"Regenwaldvernichtung",
"Forellen schmecken gut",
"Pfuetze",
"Mueller",
"Mausefalle",
"Pfefferkuchenhaeuschen",
"Christbaum",
"Ostereier verstecken und suchen",
"Schornsteinfeger"
]
h = Hangman(w)
@roschi: ich hab mal deine Wörter benutzt^^