예제 #1
0
파일: scene.py 프로젝트: mmlacak/crochess
    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
예제 #2
0
파일: scene.py 프로젝트: mmlacak/crochess
    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