Source code for game.pieces

# -*- coding: utf-8 -*-
from game.drawPiece import DrawPiece
from tools import *
import logging


[docs]class Pieces: def __init__(self, game): logging.debug("Pieces constructor") self.game = game self._pieces_list = list() on_top = Color.white for foo in range(0, 8, 2): self.add_piece((foo + 1, 7), on_top) self.add_piece((foo, 6), on_top) self.add_piece((foo + 1, 5), on_top) self.add_piece((foo, 2), Color.opposite(on_top)) self.add_piece((foo + 1, 1), Color.opposite(on_top)) self.add_piece((foo, 0), Color.opposite(on_top)) def __del__(self): for piece in self: piece.setParent(None) piece.destroy() del piece def __iter__(self): return self._pieces_list.__iter__()
[docs] def add_piece(self, cords, color): self._pieces_list.append(DrawPiece(self.game, cords, color))
[docs] def remove_piece(self, cords): piece = self.get_piece(cords) self._pieces_list.remove(piece) piece.setParent(None) piece.destroy() del piece
[docs] def get_piece(self, cords): # -> Piece for foo in self._pieces_list: if foo.cords == cords: return foo raise ValueError
@property def two_lists(self) -> (list, list): """:return two lists of cords of pieces. First list is list of pieces on top of the board""" white = list() black = list() for foo in self._pieces_list: if foo.color == Color.black: black.append(foo.cords) if foo.color == Color.white: white.append(foo.cords) return black, white