def castling_short_right(self, bt): bt = BoardType(bt) self.board = Board(bt, bt.get_size(), 1) self.board.clear() self.delete_all_marks() pos_king_init = bt.get_size() // 2 offset = 1 if bt.does_contain(PieceType.Star) else 0 # pos_init_rook_r = bt.get_size() - 1 - offset # diff = pos_rook_r - pos_king_init pos_king_h = pos_king_init + 2 pos_rook_r = pos_king_h - 1 self.board.set_piece(pos_king_h, 0, PieceType.King) self.board.set_piece(offset, 0, PieceType.Rook) self.board.set_piece(pos_rook_r, 0, PieceType.Rook) if bt.does_contain(PieceType.Star): self.board.set_piece(0, 0, PieceType.Star) self.board.set_piece(bt.get_size() - 1, 0, -PieceType.Star) get_text_position = SH.get_func_get_text_position(left=0.05, top=1.0, right=0.75, bottom=0.05) get_font_definition = SH.get_func_get_font_definition() get_text_colors = SH.get_func_get_colors(*self.get_text_colors(bt), font=get_font_definition(bt.get_size())) self.texts.append( SH.get_new_text("K", *get_text_position(pos_king_init, 0, SH.Corner.UpperLeft), **get_text_colors(False)) ) return bt
def intro_castling(self, bt): bt = BoardType(bt) self.board = Board(bt, bt.get_size(), 1) self.board.clear() self.delete_all_marks() pos_king_h = bt.get_size() // 2 offset = 1 if bt.does_contain(PieceType.Star) else 0 pos_rook_r = bt.get_size() - 1 - offset self.board.set_piece(pos_king_h, 0, PieceType.King) self.board.set_piece(offset, 0, PieceType.Rook) self.board.set_piece(pos_rook_r, 0, PieceType.Rook) if bt.does_contain(PieceType.Star): self.board.set_piece(0, 0, PieceType.Star) self.board.set_piece(bt.get_size() - 1, 0, -PieceType.Star) get_text_position = SH.get_func_get_text_position(left=0.05, top=1.0, right=0.75, bottom=0.05) get_font_definition = SH.get_func_get_font_definition() get_text_colors = SH.get_func_get_colors(*self.get_text_colors(bt), font=get_font_definition(bt.get_size())) diff = pos_rook_r - pos_king_h for i in xrange(2, diff): pos_l = pos_king_h - i pos_r = pos_king_h + i self.texts.append( SH.get_new_text(str(i-1), *get_text_position(pos_l, 0, SH.Corner.UpperLeft), **get_text_colors(True)) ) self.texts.append( SH.get_new_text(str(i-1), *get_text_position(pos_r, 0, SH.Corner.UpperLeft), **get_text_colors(True)) ) return bt