kleine Problemhilfe
Verfasst: Freitag 4. Mai 2007, 12:30
Wie sicher schon der eine oder andere bemerkt hat versuche ich gerade mit mehr oder weniger erfolgreichen Versuchen Python zu lernen. Dazu benutze ich ein Buch welches mir bislang auch gut geholfen hat! Am Ende eines jeden Kapitels kann man dann Aufgaben lösen, wobei die Lösungen gleich im Anschluss folgen. Ich habe es also selber versucht die Aufgabe zu lösen, nicht geschafft und danach die Lösung fleißig abgetippt.
Doch selbst diese Lösung läuft bei mir nicht:
Ich habe NATÜRLICH mindestens 10 mal alles auf genauste auf Schreibfehler überprüft aber konnte am Ende keine mehr finden.
Kann mir vieleicht BITTE einer sagen wo mein Fehler sein kann?
Danke schonmal an alle die sich die Mühe machen mir zu helfen.
Edit (birkenfeld): code-Tag auf python gestellt.
Doch selbst diese Lösung läuft bei mir nicht:
Code: Alles auswählen
# Schiffeversenken.pyw
from Tkinter import *
from random import *
class Feld (object):
def __init__(self,spiel,x,y):
self.x = x
self.y = y
self.spiel = spiel
self.button = button(self.spiel.fenster,
text=' ',command=self.press)
self.button.grid(column=x, row=y)
def press(self):
check = self.spiel.spielfeld.checkTreffer
if check(self.x, self.y):
self.button.config(bg='blue')
else: self.buttom.config(bg='white')
class Spielfeld (object):
def __init__(self):
self.d = {}
for i in range(12):
for j in range (12):
self.d[(i,j)]=0
for i in range(4): self.setzeBoot(1)
for i in range(3): self.setzeBoot(2)
for i in range(2): self.setzeBoot(3)
self.setzeBoot(4)
def setzeBoot(self, laenge):
max = 11 - laenge
ok=0
while not ok:
if choice[(0,1)]:
y = randint(1,10)
x = randint(1,max)
if self.check(x, y, x+laenge-1, y):
for x in range(x, x+laenge):
self.d[(x, y)] = 1
ok=1
else:
x = randint(1,10)
y = randint(1,max)
if self.check(x, y, x, y+laenge-1):
for y in range(y, y+laenge):
self.d[(x, y)] = 1
ok = 1
def check(self, x1, y1, x2, y2):
ok = 1
for x in range(x1-1,x2+2):
for y in range(y1-1,y2+2):
if self.d[x,y]: ok= 0
return ok
def checkTreffer(self, x, y):
return self.d[x,y]
class Schiffeversenken (object):
def __init__ (self):
self.fenster = Tk()
self.spielfeld = Spielfeld()
for x in range(12):
for y in range(12):
button=Feld(self, x, y)
self.fenster.mainloop()
spiel = Schiffeversenken()
Kann mir vieleicht BITTE einer sagen wo mein Fehler sein kann?
Danke schonmal an alle die sich die Mühe machen mir zu helfen.
Edit (birkenfeld): code-Tag auf python gestellt.