Ein Noob hat Probleme :(
Verfasst: Samstag 22. März 2003, 10:48
Hallo! Ich bin ein Schüler und wir nehmen gerade in der Schule Python durch... (nicht gerade einfach wie ich finde
)Nun ja ich sehe ,dass es
hier sogar ein forum gibt und von daher frage ich mich ob ihr mir helfen könnt.*hoff*Ich habe schon etliche Homepages besucht und mir von denen Infos geholt ,aber trotzdem blicke ich durch einige Programme noch nicht ganz durch ....
nr1:Eine "Klassen" Aufgabe
#!/usr/bin/env python
from Tkinter import *
root = Tk()
class Tier(Label):
def __init__(self,name):
self.name = StringVar(root)
Label.__init__(self,root,textvariable=self.name,relief="ridge")
self.pack(side=LEFT)
self.name.set(name)
self.n = name
self.bind("<Button-1>",self.gibLaut)
self.bind("<Button-3>",self.setName)
def gibLaut(self,e):
pass
def setName(self,e):
pass
class Hund(Tier):
def gibLaut(self,e):
self.name.set(self.n+": Wuff, wuff,...")
def setName(self,e):
self.name.set(self.n)
class Katze(Tier):
def gibLaut(self,e):
self.name.set(self.n+": Miau, miau ,...")
def setName(self,e):
self.name.set(self.n)
class Vogel(Tier):
def gibLaut(self,e):
self.name.set(self.n+": Tschiep, Tschiep, ...")
def setName(self,e):
self.name.set(self.n)
# ---------------------------------
# Hauptprogramm
tiere = []
tiere.append(Hund("Bello"))
tiere.append(Hund("Karo"))
tiere.append(Hund("Caesar"))
tiere.append(Katze("Mieze"))
tiere.append(Katze("Rolli"))
tiere.append(Vogel("Piepmatz"))
tiere.append(Vogel("Gööröödt"))
root.mainloop()
nr2 8-Damen
#!/usr/bin/env python2.1
from Tkinter import *
import tkMessageBox
root = Tk()
# ========================================
class Feld (Label): # erbt alle(!) Methoden und Attribute von "Label"
def __init__(self,parent,x,y):
Label.__init__(self,parent,width=8,height=4,relief="ridge")
self.x = x
self.y = y
self.bz = 0
self.dame = 0
self.bind("<Button-1>",self.setzeDame)
self.bind("<Button-3>",self.loescheDame)
self.pack(side=LEFT)
self.farbe()
def reset(self):
self.bz = 0
self.dame = 0
self.configure(text="")
def farbe(self):
if self.bz == 0:
if (self.x + self.y) % 2 == 0:
self.configure(bg="White")
else:
self.configure(bg="Gray")
else:
self.configure(bg="Red")
def setzeDame(self,e=None):
if (self.dame == 0) and (self.bz == 0):
self.configure(text="x")
self.dame = 1
self.bedroht(1)
self.faerbeNord(1)
self.faerbeNordOst(1)
self.faerbeOst(1)
self.faerbeSuedOst(1)
self.faerbeSued(1)
self.faerbeSuedWest(1)
self.faerbeWest(1)
self.faerbeNordWest(1)
farbeSetzen()
def bedroht(self,n):
self.bz = self.bz + n
def istBedroht(self):
return (self.bz > 0)
def loescheDame(self,e=None):
if self.dame == 1:
self.configure(text="")
self.dame = 0
self.bedroht(-1)
self.faerbeNord(-1)
self.faerbeNordOst(-1)
self.faerbeOst(-1)
self.faerbeSuedOst(-1)
self.faerbeSued(-1)
self.faerbeSuedWest(-1)
self.faerbeWest(-1)
self.faerbeNordWest(-1)
farbeSetzen()
def faerbeNord(self,n):
if self.x-1 >= 0:
f[self.x-1][self.y].bedroht(n)
f[self.x-1][self.y].faerbeNord(n)
def faerbeNordOst(self,n):
if (self.x-1 >= 0) and (self.y+1 <=7):
f[self.x-1][self.y+1].bedroht(n)
f[self.x-1][self.y+1].faerbeNordOst(n)
def faerbeOst(self,n):
if self.y+1 <= 7:
f[self.x][self.y+1].bedroht(n)
f[self.x][self.y+1].faerbeOst(n)
def faerbeSuedOst(self,n):
if (self.x+1 <= 7) and (self.y+1 <= 7):
f[self.x+1][self.y+1].bedroht(n)
f[self.x+1][self.y+1].faerbeSuedOst(n)
def faerbeSued(self,n):
if self.x+1 <= 7:
f[self.x+1][self.y].bedroht(n)
f[self.x+1][self.y].faerbeSued(n)
def faerbeSuedWest(self,n):
if (self.x+1 <= 7 ) and (self.y-1 >= 0):
f[self.x+1][self.y-1].bedroht(n)
f[self.x+1][self.y-1].faerbeSuedWest(n)
def faerbeWest(self,n):
if self.y-1 >= 0:
f[self.x][self.y-1].bedroht(n)
f[self.x][self.y-1].faerbeWest(n)
def faerbeNordWest(self,n):
if (self.x-1 >= 0 ) and (self.y-1 >= 0):
f[self.x-1][self.y-1].bedroht(n)
f[self.x-1][self.y-1].faerbeNordWest(n)
# ========================================
def farbeSetzen():
x = 0
while x < breite:
y = 0
while y < hoehe:
f[x][y].farbe()
y += 1
x += 1
# ========================================
def sucheAlleLoesungen():
global liste
global fertig
global loesung
zeile = 0 # Nmmer der zu besetzenden Zeile
liste = range(8) # Liste der unbesetzten Spalten
loesung= []
fertig = 0
sucheLoesung(0)
# ========================================
def sucheLoesung(zeile):
global fertig
if fertig != 1:
if zeile == hoehe:
anzahl.set(anzahl.get()+1) # schon wieder eine Lösung gefunden
loesungsString.set(str(loesung))
if not (tkMessageBox.askyesno(title="Weiter?", message="Soll nach weiteren Lösungen gesucht werden?")):
fertig = 1
else:
for spalte in liste:
if not f[zeile][spalte].istBedroht():
f[zeile][spalte].setzeDame()
loesung.append(spalte+1)
sucheLoesung(zeile+1)
f[zeile][spalte].loescheDame()
loesung.remove(spalte+1)
# ========================================
def reset():
x = 0
while x < breite:
y = 0
while y < hoehe:
f[x][y].reset()
f[x][y].farbe()
y += 1
x += 1
anzahl.set(0)
loesungsString.set("")
# ========================================
# Das Hauptprogramm
#========================================
hoehe = 8
breite = 8
anzahl = IntVar(root)
loesungsString = StringVar(root)
anzahl.set(0)
f = range(breite)
x = 0
while x < breite:
frame = Frame(root)
f[x] = range(hoehe)
y = 0
while y < hoehe:
f[x][y] = Feld(frame,x,y)
y += 1
frame.pack(side=TOP)
x += 1
# Und nun noch ein paar Knöpfe
f1 = Frame(root)
start = Button(f1,text="Start", command=sucheAlleLoesungen)
anzahlLoes = Label(f1,textvariable=anzahl)
loesung = Label(f1,textvariable=loesungsString)
stop = Button(f1,text="Reset", command=reset)
start.pack (side=LEFT)
anzahlLoes.pack(side=LEFT)
stop.pack (side=RIGHT)
loesung.pack (side=RIGHT,fill="both")
f1.pack (side=TOP,fill="x")
root.mainloop()
kann mir jemand sagen wie diese 2 Programme funktionieren ?In meinem Python Buch stehen etliche von den Befehlen nicht drin und die Hps auf denen ich war helfen auch nicht
BITTE helft mir!

hier sogar ein forum gibt und von daher frage ich mich ob ihr mir helfen könnt.*hoff*Ich habe schon etliche Homepages besucht und mir von denen Infos geholt ,aber trotzdem blicke ich durch einige Programme noch nicht ganz durch ....
nr1:Eine "Klassen" Aufgabe
#!/usr/bin/env python
from Tkinter import *
root = Tk()
class Tier(Label):
def __init__(self,name):
self.name = StringVar(root)
Label.__init__(self,root,textvariable=self.name,relief="ridge")
self.pack(side=LEFT)
self.name.set(name)
self.n = name
self.bind("<Button-1>",self.gibLaut)
self.bind("<Button-3>",self.setName)
def gibLaut(self,e):
pass
def setName(self,e):
pass
class Hund(Tier):
def gibLaut(self,e):
self.name.set(self.n+": Wuff, wuff,...")
def setName(self,e):
self.name.set(self.n)
class Katze(Tier):
def gibLaut(self,e):
self.name.set(self.n+": Miau, miau ,...")
def setName(self,e):
self.name.set(self.n)
class Vogel(Tier):
def gibLaut(self,e):
self.name.set(self.n+": Tschiep, Tschiep, ...")
def setName(self,e):
self.name.set(self.n)
# ---------------------------------
# Hauptprogramm
tiere = []
tiere.append(Hund("Bello"))
tiere.append(Hund("Karo"))
tiere.append(Hund("Caesar"))
tiere.append(Katze("Mieze"))
tiere.append(Katze("Rolli"))
tiere.append(Vogel("Piepmatz"))
tiere.append(Vogel("Gööröödt"))
root.mainloop()
nr2 8-Damen
#!/usr/bin/env python2.1
from Tkinter import *
import tkMessageBox
root = Tk()
# ========================================
class Feld (Label): # erbt alle(!) Methoden und Attribute von "Label"
def __init__(self,parent,x,y):
Label.__init__(self,parent,width=8,height=4,relief="ridge")
self.x = x
self.y = y
self.bz = 0
self.dame = 0
self.bind("<Button-1>",self.setzeDame)
self.bind("<Button-3>",self.loescheDame)
self.pack(side=LEFT)
self.farbe()
def reset(self):
self.bz = 0
self.dame = 0
self.configure(text="")
def farbe(self):
if self.bz == 0:
if (self.x + self.y) % 2 == 0:
self.configure(bg="White")
else:
self.configure(bg="Gray")
else:
self.configure(bg="Red")
def setzeDame(self,e=None):
if (self.dame == 0) and (self.bz == 0):
self.configure(text="x")
self.dame = 1
self.bedroht(1)
self.faerbeNord(1)
self.faerbeNordOst(1)
self.faerbeOst(1)
self.faerbeSuedOst(1)
self.faerbeSued(1)
self.faerbeSuedWest(1)
self.faerbeWest(1)
self.faerbeNordWest(1)
farbeSetzen()
def bedroht(self,n):
self.bz = self.bz + n
def istBedroht(self):
return (self.bz > 0)
def loescheDame(self,e=None):
if self.dame == 1:
self.configure(text="")
self.dame = 0
self.bedroht(-1)
self.faerbeNord(-1)
self.faerbeNordOst(-1)
self.faerbeOst(-1)
self.faerbeSuedOst(-1)
self.faerbeSued(-1)
self.faerbeSuedWest(-1)
self.faerbeWest(-1)
self.faerbeNordWest(-1)
farbeSetzen()
def faerbeNord(self,n):
if self.x-1 >= 0:
f[self.x-1][self.y].bedroht(n)
f[self.x-1][self.y].faerbeNord(n)
def faerbeNordOst(self,n):
if (self.x-1 >= 0) and (self.y+1 <=7):
f[self.x-1][self.y+1].bedroht(n)
f[self.x-1][self.y+1].faerbeNordOst(n)
def faerbeOst(self,n):
if self.y+1 <= 7:
f[self.x][self.y+1].bedroht(n)
f[self.x][self.y+1].faerbeOst(n)
def faerbeSuedOst(self,n):
if (self.x+1 <= 7) and (self.y+1 <= 7):
f[self.x+1][self.y+1].bedroht(n)
f[self.x+1][self.y+1].faerbeSuedOst(n)
def faerbeSued(self,n):
if self.x+1 <= 7:
f[self.x+1][self.y].bedroht(n)
f[self.x+1][self.y].faerbeSued(n)
def faerbeSuedWest(self,n):
if (self.x+1 <= 7 ) and (self.y-1 >= 0):
f[self.x+1][self.y-1].bedroht(n)
f[self.x+1][self.y-1].faerbeSuedWest(n)
def faerbeWest(self,n):
if self.y-1 >= 0:
f[self.x][self.y-1].bedroht(n)
f[self.x][self.y-1].faerbeWest(n)
def faerbeNordWest(self,n):
if (self.x-1 >= 0 ) and (self.y-1 >= 0):
f[self.x-1][self.y-1].bedroht(n)
f[self.x-1][self.y-1].faerbeNordWest(n)
# ========================================
def farbeSetzen():
x = 0
while x < breite:
y = 0
while y < hoehe:
f[x][y].farbe()
y += 1
x += 1
# ========================================
def sucheAlleLoesungen():
global liste
global fertig
global loesung
zeile = 0 # Nmmer der zu besetzenden Zeile
liste = range(8) # Liste der unbesetzten Spalten
loesung= []
fertig = 0
sucheLoesung(0)
# ========================================
def sucheLoesung(zeile):
global fertig
if fertig != 1:
if zeile == hoehe:
anzahl.set(anzahl.get()+1) # schon wieder eine Lösung gefunden
loesungsString.set(str(loesung))
if not (tkMessageBox.askyesno(title="Weiter?", message="Soll nach weiteren Lösungen gesucht werden?")):
fertig = 1
else:
for spalte in liste:
if not f[zeile][spalte].istBedroht():
f[zeile][spalte].setzeDame()
loesung.append(spalte+1)
sucheLoesung(zeile+1)
f[zeile][spalte].loescheDame()
loesung.remove(spalte+1)
# ========================================
def reset():
x = 0
while x < breite:
y = 0
while y < hoehe:
f[x][y].reset()
f[x][y].farbe()
y += 1
x += 1
anzahl.set(0)
loesungsString.set("")
# ========================================
# Das Hauptprogramm
#========================================
hoehe = 8
breite = 8
anzahl = IntVar(root)
loesungsString = StringVar(root)
anzahl.set(0)
f = range(breite)
x = 0
while x < breite:
frame = Frame(root)
f[x] = range(hoehe)
y = 0
while y < hoehe:
f[x][y] = Feld(frame,x,y)
y += 1
frame.pack(side=TOP)
x += 1
# Und nun noch ein paar Knöpfe
f1 = Frame(root)
start = Button(f1,text="Start", command=sucheAlleLoesungen)
anzahlLoes = Label(f1,textvariable=anzahl)
loesung = Label(f1,textvariable=loesungsString)
stop = Button(f1,text="Reset", command=reset)
start.pack (side=LEFT)
anzahlLoes.pack(side=LEFT)
stop.pack (side=RIGHT)
loesung.pack (side=RIGHT,fill="both")
f1.pack (side=TOP,fill="x")
root.mainloop()
kann mir jemand sagen wie diese 2 Programme funktionieren ?In meinem Python Buch stehen etliche von den Befehlen nicht drin und die Hps auf denen ich war helfen auch nicht

BITTE helft mir!