def do_release(self): # 判定是否是取消,是取消则不翻转当前选手 if self._cursor_loc['x'] == self._checked_loc[ 'x'] and self._cursor_loc['y'] == self._checked_loc['y']: self._checked = ~self._checked self._pieces[self._cursor_loc['y']][self._cursor_loc['x']].set_pic( self.cursor_pic()) self.clear_map() self.show_map() return if self.can_release(): self._checked = ~self._checked # 判断游戏是否结束 if self._cursor_original_backup.get_camp( ) != constants.CAMP_NONE and self._cursor_original_backup.get_type( ) == constants.CHESS_BOSS: self.game_over = True self.winner = self.firster # 切换释放棋子后的布局 self._cursor_original_backup = self._pieces[ self._checked_loc['y']][self._checked_loc['x']] tmp = ChessPiece(self.PIECE_NONE, constants.CAMP_NONE) tmp.set_type(constants.CHESS_PIECE) self._pieces[self._checked_loc['y']][self._checked_loc['x']] = tmp self._pieces[self._cursor_loc['y']][self._cursor_loc['x']].set_pic( self.cursor_pic()) self.clear_map() self.show_map() # 切换选手 self.reverse_role()
def cursor_move(self, p_target): self._pieces[self._cursor_loc['y']][ self._cursor_loc['x']] = self._cursor_original_backup self._cursor_original_backup = self._pieces[p_target['y']][ p_target['x']] tmp = ChessPiece(self.cursor_pic(), constants.CAMP_CURSOR) tmp.set_type(constants.CHESS_CURSOR) self._pieces[p_target['y']][p_target['x']] = tmp self._cursor_loc = p_target # 刷新地图 self.clear_map() self.show_map()
def __init__(self, camp=constants.CAMP_RED): if camp == constants.CAMP_WHITE: self._cursor_loc['y'] = 8 elif camp != constants.CAMP_RED: print('阵营参数错误,游戏退出') exit() self.firster = camp # init pieces # init NONE Camp for y in range(self._height): line = [] for x in range(self._width): tmp = ChessPiece(self.PIECE_NONE, constants.CAMP_NONE) tmp.set_type(constants.CHESS_PIECE) line.append(tmp) self._pieces.append(line) del line # init RED Camp and Pic for idx in range(self._width): self._pieces[0][idx].set_camp(constants.CAMP_RED) self._pieces[0][0].set_pic(' 車 ') self._pieces[0][0].set_type(constants.CHESS_CHE) self._pieces[0][1].set_pic(' 馬 ') self._pieces[0][1].set_type(constants.CHESS_MA) self._pieces[0][2].set_pic(' 象 ') self._pieces[0][2].set_type(constants.CHESS_XIANG) self._pieces[0][3].set_pic(' 士 ') self._pieces[0][3].set_type(constants.CHESS_SHI) self._pieces[0][4].set_pic(' 將 ') self._pieces[0][4].set_type(constants.CHESS_BOSS) self._pieces[0][5].set_pic(' 士 ') self._pieces[0][5].set_type(constants.CHESS_SHI) self._pieces[0][6].set_pic(' 象 ') self._pieces[0][6].set_type(constants.CHESS_XIANG) self._pieces[0][7].set_pic(' 馬 ') self._pieces[0][7].set_type(constants.CHESS_MA) self._pieces[0][8].set_pic(' 車 ') self._pieces[0][8].set_type(constants.CHESS_CHE) # 上面的camp已经通过循环统一设置过了 self._pieces[2][1].set_pic(' 炮 ') self._pieces[2][1].set_type(constants.CHESS_PAO) self._pieces[2][1].set_camp(constants.CAMP_RED) self._pieces[2][7].set_pic(' 炮 ') self._pieces[2][7].set_type(constants.CHESS_PAO) self._pieces[2][7].set_camp(constants.CAMP_RED) self._pieces[3][0].set_pic(' 卒 ') self._pieces[3][0].set_type(constants.CHESS_BING) self._pieces[3][0].set_camp(constants.CAMP_RED) self._pieces[3][2].set_pic(' 卒 ') self._pieces[3][2].set_type(constants.CHESS_BING) self._pieces[3][2].set_camp(constants.CAMP_RED) self._pieces[3][4].set_pic(' 卒 ') self._pieces[3][4].set_type(constants.CHESS_BING) self._pieces[3][4].set_camp(constants.CAMP_RED) self._pieces[3][6].set_pic(' 卒 ') self._pieces[3][6].set_type(constants.CHESS_BING) self._pieces[3][6].set_camp(constants.CAMP_RED) self._pieces[3][-1].set_pic(' 卒 ') self._pieces[3][-1].set_type(constants.CHESS_BING) self._pieces[3][-1].set_camp(constants.CAMP_RED) # init WHITE Camp and Pic for idx in range(self._width): self._pieces[-1][idx].set_camp(constants.CAMP_WHITE) self._pieces[-1][0].set_pic(' 車 ') self._pieces[-1][0].set_type(constants.CHESS_CHE) self._pieces[-1][1].set_pic(' 馬 ') self._pieces[-1][1].set_type(constants.CHESS_MA) self._pieces[-1][2].set_pic(' 相 ') self._pieces[-1][2].set_type(constants.CHESS_XIANG) self._pieces[-1][3].set_pic(' 仕 ') self._pieces[-1][3].set_type(constants.CHESS_SHI) self._pieces[-1][4].set_pic(' 帥 ') self._pieces[-1][4].set_type(constants.CHESS_BOSS) self._pieces[-1][5].set_pic(' 仕 ') self._pieces[-1][5].set_type(constants.CHESS_SHI) self._pieces[-1][6].set_pic(' 相 ') self._pieces[-1][6].set_type(constants.CHESS_XIANG) self._pieces[-1][7].set_pic(' 馬 ') self._pieces[-1][7].set_type(constants.CHESS_MA) self._pieces[-1][8].set_pic(' 車 ') self._pieces[-1][8].set_type(constants.CHESS_CHE) # 上面的camp已经通过循环统一设置过了 self._pieces[-3][1].set_pic(' 砲 ') self._pieces[-3][1].set_type(constants.CHESS_PAO) self._pieces[-3][1].set_camp(constants.CAMP_WHITE) self._pieces[-3][7].set_pic(' 砲 ') self._pieces[-3][7].set_type(constants.CHESS_PAO) self._pieces[-3][7].set_camp(constants.CAMP_WHITE) self._pieces[-4][0].set_pic(' 兵 ') self._pieces[-4][0].set_type(constants.CHESS_BING) self._pieces[-4][0].set_camp(constants.CAMP_WHITE) self._pieces[-4][2].set_pic(' 兵 ') self._pieces[-4][2].set_type(constants.CHESS_BING) self._pieces[-4][2].set_camp(constants.CAMP_WHITE) self._pieces[-4][4].set_pic(' 兵 ') self._pieces[-4][4].set_type(constants.CHESS_BING) self._pieces[-4][4].set_camp(constants.CAMP_WHITE) self._pieces[-4][6].set_pic(' 兵 ') self._pieces[-4][6].set_type(constants.CHESS_BING) self._pieces[-4][6].set_camp(constants.CAMP_WHITE) self._pieces[-4][8].set_pic(' 兵 ') self._pieces[-4][8].set_type(constants.CHESS_BING) self._pieces[-4][8].set_camp(constants.CAMP_WHITE) # init cursor 〄 〠 self._cursor_original_backup: ChessPiece = self._pieces[ self._cursor_loc['y']][self._cursor_loc['x']] tmp = ChessPiece(self.cursor_pic(), constants.CAMP_CURSOR) tmp.set_type(constants.CHESS_CURSOR) self._pieces[self._cursor_loc['y']][self._cursor_loc['x']] = tmp del tmp self.strategies = chess_strategy.ChessStrategy(self._pieces, True)