Het moet een lijst van puzzle objecten zijn.
Hier de complete code. (Ik dacht dat het makkelijker was om een deel van de code te verzenden, omdat het voor mij veel is (115 regels))
#!/usr/bin/env python
from PIL import Image,ImageDraw
# converteer Algebraische notatie (bijv. e4 naar 4,4)
def alg2nr(Alg):
y = 8 - int(Alg[1])
if Alg[0] == 'a':
x = 0
elif Alg[0] == 'b':
x = 1
elif Alg[0] == 'c':
x = 2
elif Alg[0] == 'd':
x = 3
elif Alg[0] == 'e':
x = 4
elif Alg[0] == 'f':
x = 5
elif Alg[0] == 'g':
x = 6
elif Alg[0] == 'h':
x = 7
return [x,y]
# De stukken op het veld zetten met coordinatie x en y met bereik van 0 tm 7
def setpiece(square,color,piece):
a,b = 100 * square[0], 100 * square[1]
if color == 'white':
if piece == '':
im_board.paste(im_w, (a,b), im_w)
elif piece == 'K':
im_board.paste(im_wK, (a,b), im_wK)
elif piece == 'Q':
im_board.paste(im_wQ, (a,b), im_wQ)
elif piece == 'B':
im_board.paste(im_wB, (a,b), im_wB)
elif piece == 'N':
im_board.paste(im_wN, (a,b), im_wN)
elif piece == 'R':
im_board.paste(im_wR, (a,b), im_wR)
elif color == 'black':
if piece == '':
im_board.paste(im_b, (a,b), im_b)
elif piece == 'K':
im_board.paste(im_bK, (a,b), im_bK)
elif piece == 'Q':
im_board.paste(im_bQ, (a,b), im_bQ)
elif piece == 'B':
im_board.paste(im_bB, (a,b), im_bB)
elif piece == 'N':
im_board.paste(im_bN, (a,b), im_bN)
elif piece == 'R':
im_board.paste(im_bR, (a,b), im_bR)
del draw
class puzzle(object):
def __init__(self,pieces_w,pieces_b,player,solution):
self.player = player
self.pieces_w = pieces_w
self.pieces_b = pieces_b
self.solution = solution
# puzzels laden
puzzles = []
with open('puzzles') as infile:
for line in infile:
z = []
white = []
black = []
if not line.startswith('#'):
line = line.rstrip()
for a in line.rsplit('\t'):
z.append(a)
for a in z[0].rsplit(' '):
white.append(a)
for a in z[1].rsplit(' '):
black.append(a)
puzzles.append(puzzle(white, black, z[2], z[3]))
# Afbeelding van bord en stukken laden.
im_board = Image.open('board.jpg')
im_b = Image.open('b.png')
im_bB = Image.open('bB.png')
im_bK = Image.open('bK.png')
im_bN = Image.open('bN.png')
im_bQ = Image.open('bQ.png')
im_bR = Image.open('bR.png')
im_w = Image.open('w.png')
im_wB = Image.open('wB.png')
im_wK = Image.open('wK.png')
im_wN = Image.open('wN.png')
im_wQ = Image.open('wQ.png')
im_wR = Image.open('wR.png')
# Een puzzel laden.
def open_puzzle(number):
l = len(puzzles)
if number < l:
for a in puzzle[number].pieces_w:
b = alg2nr(a[2:])
if len(a) == 2:
setpiece(b,'white','')
else:
setpiece(b,'white',a[0])
for a in puzzle[number].pieces_b:
b = alg2nr(a[2:])
if len(a) == 2:
setpiece(b,'black','')
else:
setpiece(b,'black',a[0])
im_board.show()
else:
print 'error'