def init_ui(event_callback): global scr, EVENT_CALLBACK global UI_BOARD, UI_RECT_ID, UI_PIECE EVENT_CALLBACK = event_callback scr = Tkinter.Canvas(width=map_to_ui_x(boards.BOARD_WIDTH), height=map_to_ui_y(boards.BOARD_HEIGHT), bg=BACKGROUND_COLOR) scr.bind_all("<Key>", EVENT_CALLBACK) scr.pack() UI_BOARD = boards.create_board_lines(boards.BOARD_HEIGHT, pieces.EMPTY) UI_PIECE = [pieces.EMPTY, pieces.PIECE_INIT_X, pieces.PIECE_INIT_Y, pieces.PIECE_INIT_DIRECTION] UI_RECT_ID = [] for j in range(boards.BOARD_HEIGHT): id_list = [] for i in range(boards.BOARD_WIDTH): rect_id = ui_create_rect(i, j, BACKGROUND_COLOR) id_list.append(rect_id) UI_RECT_ID.append(id_list)
def test_board_codec(self): """ board = [['_', '_', '_', '_', ...], ..., ['_', '_', '_', '_', ...], ['_', 'S', '_', '_', ...], ['_', 'S', 'S', '_', ...], ['_', 'T', 'S', '_', ...], ['T', 'T', 'T', '_', ...]] """ board = boards.create_board_lines(boards.BOARD_HEIGHT, '_') board[-1][0] = board[-1][1] = board[-1][2] = board[-2][1] = 'T' board[-2][2] = board[-3][1] = board[-3][2] = board[-4][1] = 'S' expect = codec.BOARD_HEADER, board code_str = codec.encode_board(board) result = codec.decode(code_str) self.assertEqual(result, expect)
def strip_board_lines(self, line_idx_list): line_idx_set = set(line_idx_list) nb = [line for (idx, line) in enumerate(self.status) if idx not in line_idx_set] # 不要被消除的 add_num = boards.BOARD_HEIGHT - len(nb) self.status = boards.create_board_lines(add_num, pieces.EMPTY) + nb self.commit_status()
def __init__(self): self.status = boards.create_board_lines(boards.BOARD_HEIGHT, pieces.EMPTY)