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.