from collections import deque def sliding_puzzle(board): goal = "123450" start = "".join(str(num) for row in board for num in row) moves = { 0: [1, 3], 1: [0, 2, 4], 2: [1, 5], 3: [0, 4], 4: [1, 3, 5], 5: [2, 4] } queue = deque([(start, start.index("0"), 0)]) visited = set([start]) while queue: state, zero_idx, move_count = queue.popleft() if state == goal: return move_count for swap_idx in moves[zero_idx]: new_state = list(state) new_state[zero_idx], new_state[swap_idx] = new_state[swap_idx], new_state[zero_idx] new_state_str = "".join(new_state) if new_state_str not in visited: visited.add(new_state_str) queue.append((new_state_str, swap_idx, move_count + 1)) return -1 if __name__ == "__main__": print("Enter the 2x3 sliding puzzle row by row:") board = [list(map(int, input().split())) for _ in range(2)] result = sliding_puzzle(board) if result != -1: print(f"Minimum moves to solve the puzzle: {result}") else: print("The puzzle is unsolvable.") make it more like human code
Please keep input under 1000 characters