Wow. Dann schau mal in die Mailingliste, die Newsgroup und den IRC-Channel. Wenn den meisten Leuten PEP8 scheinbar so egal wäre wie dir - warum sind dann viele Python-Programme exakt so geschrieben, wie im Styleguide steht?pyStyler hat geschrieben:Ich persönlich kenne nicht sehr viele Leute die damit ein Problem haben.
( höchstens 2 aus diesem Forum )
Simples Schach Game to dive into Python
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@mawe:
Ich hab soeben mal dein Beispiel ausprobiert... ehm gibts noch andere grafische Lösungen???
Das Game soll zwar simple sein, aber etwas anspruchsvoll schon
Weil das ist nicht grad die "hübscheste" Lösung... was kann man sonst noch machen?
Ich hab soeben mal dein Beispiel ausprobiert... ehm gibts noch andere grafische Lösungen???

Das Game soll zwar simple sein, aber etwas anspruchsvoll schon

Weil das ist nicht grad die "hübscheste" Lösung... was kann man sonst noch machen?
Code: Alles auswählen
from Tkinter import *
from thread import*
import Image
import ImageTk
import array
# 0,0: Turm T
# 0,1: Pferd P
# 0,2: Läufer L
# 0,3: Dame D
# 0,4: König K
# 0,5: Läufer
# 0,6: Pferd P
# 0,7: Turm T
# 1,0 - 1,7: Bauer B
# 6,0 - 6,7: Bauer
# 7,0: Turm
# 7,1: Pferd
# 7,2: Läufer
# 7,3: Dame
# 7,4: König
# 7,5: Läufer
# 7,6: Pferd
# 7,7: Turm
"""
ursprung = [
['T', 'P', 'L', 'D', 'K', 'L', 'P', 'T'],
['B' for x in range(8)],
['0' for x in range(8)],
['0' for x in range(8)],
['0' for x in range(8)],
['0' for x in range(8)],
['B' for x in range(8)],
['T', 'P', 'L', 'D', 'K', 'L', 'P', 'T']
]
"""
root = Tk()
img_bauer = PhotoImage(file="bauer.gif")
img_bg = PhotoImage(file="bg.gif")
class Spielfigur(object):
def __init__(self, pid, startpos, canvas, spieler):
self.pid = pid
self.pos = startpos
self.spieler = spieler
self.canvas = canvas
self.dead = False
if pid == "B":
self.image = canvas.create_image(self.pos, image=img_bauer, anchor=NW)
else:
self.image = 0
def GetPosition(self):
return self.pos
def GetImage(self):
return self.image
def SetPosition(self, new_pos):
self.pos = new_pos
self.canvas.coords(self.image, self.pos)
def AllowedMove(self, previous_pos, new_pos):
if self.pid == 'B':
if self.spieler == 'oben':
bewegung_y = new_pos[1] - previous_pos[1]
if previous_pos[0] != new_pos[0] or bewegung_y != 50:
return False
elif self.spieler == 'unten':
bewegung_y = new_pos[1] - previous_pos[1]
if previous_pos[0] != new_pos[0] or bewegung_y != -50:
return False
return True
def Kill(self):
if self.dead == False:
if self.image != 0:
self.canvas.delete(self.image)
self.dead = True
def IsDead(self):
return self.dead
class Application:
def __init__(self):
self.clicked_figur = False
self.canvas = Canvas(root, width=400, height=400)
self.canvas.bind("<ButtonPress>", self.click)
self.canvas.bind("<Motion>", self.move)
self.canvas.bind("<ButtonRelease>", self.release)
self.canvas.pack()
# bilder für die figuren laden
bg = self.canvas.create_image(0, 0, image=img_bg, anchor=NW)
self.canvas.coords(bg,0,0)
self.spielfiguren = []
spieler_weiss = [
['T', 'P', 'L', 'D', 'K', 'L', 'P', 'T'],
['B' for x in range(8)],
]
for x in range(8):
for y in range(2):
if spieler_weiss[y][x] != "0":
figur = Spielfigur(spieler_weiss[y][x], (x*50, y*50), self.canvas, 'oben')
self.spielfiguren.append(figur)
spieler_schwarz = [
['B' for x in range(8)],
['T', 'P', 'L', 'D', 'K', 'L', 'P', 'T']
]
for x in range(8):
for ty in range(2):
y = ty + 6
if spieler_schwarz[ty][x] != "0":
figur = Spielfigur(spieler_schwarz[ty][x], (x*50, y*50), self.canvas, 'unten')
self.spielfiguren.append(figur)
def KillFigureOnPosition(self, position):
for figur in range(32):
if self.spielfiguren[figur].GetPosition() == position:
print figur
self.spielfiguren[figur].Kill()
def click(self, event):
for figur in range(32):
if self.spielfiguren[figur].IsDead() == False:
pos = self.spielfiguren[figur].GetPosition()
if event.x > pos[0] and event.x < pos[0]+50 and event.y > pos[1] and event.y < pos[1]+50:
self.clicked_figur = figur
self.previous_pos = pos
self.abstand_x = event.x % 50
self.abstand_y = event.y % 50
def move(self, event):
if self.clicked_figur != False:
#print self.clicked_figur
self.spielfiguren[self.clicked_figur].SetPosition((event.x-self.abstand_x, event.y-self.abstand_y))
def release(self, event):
if self.clicked_figur != False:
pos = self.spielfiguren[self.clicked_figur].GetPosition()
pos = (pos[0]+25, pos[1]+25)
new_pos = (pos[0]- ((pos[0])%50), pos[1] - ((pos[1])%50))
print new_pos
if self.spielfiguren[self.clicked_figur].AllowedMove(self.previous_pos, new_pos) and self.previous_pos != new_pos:
self.KillFigureOnPosition(new_pos)
self.spielfiguren[self.clicked_figur].SetPosition(new_pos)
else:
self.spielfiguren[self.clicked_figur].SetPosition(self.previous_pos)
self.clicked_figur = False
app = Application()
root.mainloop()
Wenn jemand Lust hat daran weiter zu arbeiten mit mir, soll sich melden?!
