Beispiel #1
0
    def go(self, direction: str) -> Board:
        current_zero_row = self.row_containing_blank_piece()
        current_zero_column = self.column_containing_blank_piece()

        if self.is_move_possible(direction) is False:
            raise ValueError(f'Moving {direction} Not possible')

        blocks = _cpy(self.blocks)

        if direction == 'UP':
            x_position = current_zero_row - 1
            y_position = current_zero_column

        elif direction == 'DOWN':
            x_position = current_zero_row + 1
            y_position = current_zero_column

        elif direction == 'LEFT':
            x_position = current_zero_row
            y_position = current_zero_column - 1

        elif direction == 'RIGHT':
            x_position = current_zero_row
            y_position = current_zero_column + 1

        swapping_piece = blocks[x_position][y_position]

        blocks[x_position][y_position] = 0
        blocks[current_zero_row][current_zero_column] = swapping_piece

        return Board(blocks)
Beispiel #2
0
 def __init__(self, win):
     assert isinstance(win, SegmentsGenerator)
     self._win = _cpy(win)
     self._win.init_segmentation()
Beispiel #3
0
 def __init__(self, win):
     assert isinstance(win, SegmentsGenerator)
     self._win = _cpy(win)
     self._win.init_segmentation()