def commit_piece_movement(piece: Piece, source_tile: Tile, target_tile: Optional[Tile]): source_tile.remove_piece() if target_tile is None or target_tile.is_perimeter(): piece.remove_from_play() else: target_tile.place_piece(piece)
def remove_piece_stuck_in_perimeter(tile: Tile, piece: Piece): # Piece could not move, remove it from play if it was stuck in the perimeter if tile.is_perimeter(): tile.remove_piece() piece.remove_from_play()