41 clusters, 117 submissions

gen_successors: cluster #1 (4)

# 6xxxxxxxx1 (2020-09-20 18:57) def gen_successors(node): #write all 1st possible move successors=[] num0=node.index(0) if num0 in [3,4,5,6,7,8]: #up 456789 noden=node[0:9] new=[''] moven=node[-1] num0u=num0-3 noden.remove(0) noden.insert(num0u,0) moven=[moven+'U'] new=noden[0:9]+moven successors+=new if num0 in [0,1,2,3,4,5]: #down 123456 noden=node[0:9] new=[''] moven=node[-1] num0u=num0+3 noden.remove(0) noden.insert(num0u,0) moven=[moven+'D'] new=noden[0:9]+moven successors+=new if num0 in [1,2,4,5,7,8]: #left 235689 noden=node[0:9] new=[''] moven=node[-1] num0u=num0-1 noden.remove(0) noden.insert(num0u,0) moven=[moven+'L'] new=noden[0:9]+moven successors+=new if num0 in [0,1,3,4,6,7]: #right 124578 noden=node[0:9] new=[''] moven=node[-1] num0u=num0+1 noden.remove(0) noden.insert(num0u,0) moven=[moven+'R'] new=noden[0:9]+moven successors+=new return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 19:44) def gen_successors(node): successors = [] num0=node.index(0) if num0 in [3,4,5,6,7,8]: #up noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 3 noden.remove(0) noden.insert(num0u,0) moven = [moven+'U'] new = noden[0:9]+moven successors += new if num0 in [0,1,2,3,4,5]: #down noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 3 noden.remove(0) noden.insert(num0u,0) moven = [moven+'D'] new = noden[0:9]+moven successors += new if num0 in [1,2,4,5,7,8]: #left noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 1 noden.remove(0) noden.insert(num0u,0) moven = [moven+'L'] new = noden[0:9]+moven successors += new if num0 in [0,1,3,4,6,7]: #right noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 1 noden.remove(0) noden.insert(num0u,0) moven = [moven+'R'] new = noden[0:9]+moven successors += new return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:25) def gen_successors(node): successors = [] num0=node.index(0) if num0 in [3,4,5,6,7,8]: #up noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 3 noden.remove(0) noden.insert(num0u,0) moven = [moven+'U'] new = noden[0:9]+moven successors += new if num0 in [0,1,2,3,4,5]: #down noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 3 noden.remove(0) noden.insert(num0u,0) moven = [moven+'D'] new = noden[0:9]+moven successors += new if num0 in [1,2,4,5,7,8]: #left noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 1 noden.remove(0) noden.insert(num0u,0) moven = [moven+'L'] new = noden[0:9]+moven successors += new if num0 in [0,1,3,4,6,7]: #right noden = node[0:9] new = [''] moven = node[-1] num0u = num0 + 1 noden.remove(0) noden.insert(num0u,0) moven = [moven+'R'] new = noden[0:9]+moven successors += new return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:40) def gen_successors(node): successors = [] num0 = node.index(0) if num0 in [3,4,5,6,7,8]: #up noden = node[0:9] new = [''] moven = node[-1] num0u = num0-3 noden.remove(0) noden.insert(num0u, 0) moven = [moven+'U'] new = noden[0:9]+moven successors += new if num0 in [0,1,2,3,4,5]: #down noden = node[0:9] new = [''] moven = node[-1] num0d = num0+3 noden.remove(0) noden.insert(num0d, 0) moven = [moven+'D'] new = noden[0:9]+moven successors += new if num0 in [1,2,4,5,7,8]: #left noden = node[0:9] new = [''] moven = node[-1] num0L = num0-1 noden.remove(0) noden.insert(num0L, 0) moven = [moven+'L'] new = noden[0:9]+moven successors += new if num0 in [0,1,3,4,6,7]: #right noden = node[0:9] new = [''] moven = node[-1] num0u = num0+1 noden.remove(0) noden.insert(num0u, 0) moven = [moven+'R'] new = noden[0:9]+moven successors += new return successors #------------------------------------------

gen_successors: cluster #2 (3)

# 6xxxxxxxx1 (2020-09-20 20:00) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodeMade = list(node) nodeMade[0], nodeMade[1] = nodeMade[1], nodeMade[0] nodeMade[-1] += "R" successors.extend(nodeMade) nodeMade = list(node) nodeMade[0], nodeMade[3] = nodeMade[3], nodeMade[0] nodeMade[-1] += "D" successors.extend(nodeMade) elif i == 1: nodeMade = list(node) nodeMade[1], nodeMade[0] = nodeMade[0], nodeMade[1] nodeMade[-1] += "L" successors.extend(nodeMade) nodeMade = list(node) nodeMade[1], nodeMade[4] = nodeMade[4], nodeMade[1] nodeMade[-1] += "D" successors.extend(nodeMade) nodeMade = list(node) nodeMade[1], nodeMade[2] = nodeMade[2], nodeMade[1] nodeMade[-1] += "R" successors.extend(nodeMade) elif i == 2: nodeMade = list(node) nodeMade[2], nodeMade[1] = nodeMade[1], nodeMade[2] nodeMade[-1] += "L" successors.extend(nodeMade) nodeMade = list(node) nodeMade[2], nodeMade[5] = nodeMade[5], nodeMade[2] nodeMade[-1] += "D" successors.extend(nodeMade) elif i == 3: nodeMade = list(node) nodeMade[3], nodeMade[0] = nodeMade[0], nodeMade[3] nodeMade[-1] += "U" successors.extend(nodeMade) nodeMade = list(node) nodeMade[3], nodeMade[4] = nodeMade[4], nodeMade[3] nodeMade[-1] += "R" successors.extend(nodeMade) nodeMade = list(node) nodeMade[3], nodeMade[6] = nodeMade[6], nodeMade[3] nodeMade[-1] += "D" successors.extend(nodeMade) elif i == 4: nodeMade = list(node) nodeMade[4], nodeMade[1] = nodeMade[1], nodeMade[4] nodeMade[-1] += "U" successors.extend(nodeMade) nodeMade = list(node) nodeMade[4], nodeMade[3] = nodeMade[3], nodeMade[4] nodeMade[-1] += "L" successors.extend(nodeMade) nodeMade = list(node) nodeMade[4], nodeMade[5] = nodeMade[5], nodeMade[4] nodeMade[-1] += "R" successors.extend(nodeMade) nodeMade = list(node) nodeMade[4], nodeMade[7] = nodeMade[7], nodeMade[4] nodeMade[-1] += "D" successors.extend(nodeMade) elif i == 5: nodeMade = list(node) nodeMade[5], nodeMade[2] = nodeMade[2], nodeMade[5] nodeMade[-1] += "U" successors.extend(nodeMade) nodeMade = list(node) nodeMade[5], nodeMade[4] = nodeMade[4], nodeMade[5] nodeMade[-1] += "L" successors.extend(nodeMade) nodeMade = list(node) nodeMade[5], nodeMade[8] = nodeMade[8], nodeMade[5] nodeMade[-1] += "D" successors.extend(nodeMade) elif i == 6: nodeMade = list(node) nodeMade[6], nodeMade[3] = nodeMade[3], nodeMade[6] nodeMade[-1] += "U" successors.extend(nodeMade) nodeMade = list(node) nodeMade[6], nodeMade[7] = nodeMade[7], nodeMade[6] nodeMade[-1] += "R" successors.extend(nodeMade) elif i == 7: nodeMade = list(node) nodeMade[7], nodeMade[4] = nodeMade[4], nodeMade[7] nodeMade[-1] += "U" successors.extend(nodeMade) nodeMade = list(node) nodeMade[7], nodeMade[6] = nodeMade[6], nodeMade[7] nodeMade[-1] += "L" successors.extend(nodeMade) nodeMade = list(node) nodeMade[7], nodeMade[8] = nodeMade[8], nodeMade[7] nodeMade[-1] += "R" successors.extend(nodeMade) elif i == 8: nodeMade = list(node) nodeMade[8], nodeMade[7] = nodeMade[7], nodeMade[8] nodeMade[-1] += "L" successors.extend(nodeMade) nodeMade = list(node) nodeMade[8], nodeMade[5] = nodeMade[5], nodeMade[8] nodeMade[-1] += "U" successors.extend(nodeMade) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:42) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodeA = list(node) nodeA[0], nodeA[1] = nodeA[1], nodeA[0] nodeA[-1] += "R" successors.extend(nodeA) nodeA = list(node) nodeA[0], nodeA[3] = nodeA[3], nodeA[0] nodeA[-1] += "D" successors.extend(nodeA) elif i == 1: nodeA = list(node) nodeA[1], nodeA[0] = nodeA[0], nodeA[1] nodeA[-1] += "L" successors.extend(nodeA) nodeA = list(node) nodeA[1], nodeA[4] = nodeA[4], nodeA[1] nodeA[-1] += "D" successors.extend(nodeA) nodeA = list(node) nodeA[1], nodeA[2] = nodeA[2], nodeA[1] nodeA[-1] += "R" successors.extend(nodeA) elif i == 2: nodeA = list(node) nodeA[2], nodeA[1] = nodeA[1], nodeA[2] nodeA[-1] += "L" successors.extend(nodeA) nodeA = list(node) nodeA[2], nodeA[5] = nodeA[5], nodeA[2] nodeA[-1] += "D" successors.extend(nodeA) elif i == 3: nodeA = list(node) nodeA[3], nodeA[0] = nodeA[0], nodeA[3] nodeA[-1] += "U" successors.extend(nodeA) nodeA = list(node) nodeA[3], nodeA[4] = nodeA[4], nodeA[3] nodeA[-1] += "R" successors.extend(nodeA) nodeA = list(node) nodeA[3], nodeA[6] = nodeA[6], nodeA[3] nodeA[-1] += "D" successors.extend(nodeA) elif i == 4: nodeA = list(node) nodeA[4], nodeA[1] = nodeA[1], nodeA[4] nodeA[-1] += "U" successors.extend(nodeA) nodeA = list(node) nodeA[4], nodeA[3] = nodeA[3], nodeA[4] nodeA[-1] += "L" successors.extend(nodeA) nodeA = list(node) nodeA[4], nodeA[5] = nodeA[5], nodeA[4] nodeA[-1] += "R" successors.extend(nodeA) nodeA = list(node) nodeA[4], nodeA[7] = nodeA[7], nodeA[4] nodeA[-1] += "D" successors.extend(nodeA) elif i == 5: nodeA = list(node) nodeA[5], nodeA[2] = nodeA[2], nodeA[5] nodeA[-1] += "U" successors.extend(nodeA) nodeA = list(node) nodeA[5], nodeA[4] = nodeA[4], nodeA[5] nodeA[-1] += "L" successors.extend(nodeA) nodeA = list(node) nodeA[5], nodeA[8] = nodeA[8], nodeA[5] nodeA[-1] += "D" successors.extend(nodeA) elif i == 6: nodeA = list(node) nodeA[6], nodeA[3] = nodeA[3], nodeA[6] nodeA[-1] += "U" successors.extend(nodeA) nodeA = list(node) nodeA[6], nodeA[7] = nodeA[7], nodeA[6] nodeA[-1] += "R" successors.extend(nodeA) elif i == 7: nodeA = list(node) nodeA[7], nodeA[4] = nodeA[4], nodeA[7] nodeA[-1] += "U" successors.extend(nodeA) nodeA = list(node) nodeA[7], nodeA[6] = nodeA[6], nodeA[7] nodeA[-1] += "L" successors.extend(nodeA) nodeA = list(node) nodeA[7], nodeA[8] = nodeA[8], nodeA[7] nodeA[-1] += "R" successors.extend(nodeA) elif i == 8: nodeA = list(node) nodeA[8], nodeA[7] = nodeA[7], nodeA[8] nodeA[-1] += "L" successors.extend(nodeA) nodeA = list(node) nodeA[8], nodeA[5] = nodeA[5], nodeA[8] nodeA[-1] += "U" successors.extend(nodeA) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:08) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodex = list(node) nodex[0], nodex[1] = nodex[1], nodex[0] nodex[-1] += "R" successors.extend(nodex) nodex = list(node) nodex[0], nodex[3] = nodex[3], nodex[0] nodex[-1] += "D" successors.extend(nodex) elif i == 1: nodex = list(node) nodex[1], nodex[0] = nodex[0], nodex[1] nodex[-1] += "L" successors.extend(nodex) nodex = list(node) nodex[1], nodex[4] = nodex[4], nodex[1] nodex[-1] += "D" successors.extend(nodex) nodex = list(node) nodex[1], nodex[2] = nodex[2], nodex[1] nodex[-1] += "R" successors.extend(nodex) elif i == 2: nodex = list(node) nodex[2], nodex[1] = nodex[1], nodex[2] nodex[-1] += "L" successors.extend(nodex) nodex = list(node) nodex[2], nodex[5] = nodex[5], nodex[2] nodex[-1] += "D" successors.extend(nodex) elif i == 3: nodex = list(node) nodex[3], nodex[0] = nodex[0], nodex[3] nodex[-1] += "U" successors.extend(nodex) nodex = list(node) nodex[3], nodex[4] = nodex[4], nodex[3] nodex[-1] += "R" successors.extend(nodex) nodex = list(node) nodex[3], nodex[6] = nodex[6], nodex[3] nodex[-1] += "D" successors.extend(nodex) elif i == 4: nodex = list(node) nodex[4], nodex[1] = nodex[1], nodex[4] nodex[-1] += "U" successors.extend(nodex) nodex = list(node) nodex[4], nodex[3] = nodex[3], nodex[4] nodex[-1] += "L" successors.extend(nodex) nodex = list(node) nodex[4], nodex[5] = nodex[5], nodex[4] nodex[-1] += "R" successors.extend(nodex) nodex = list(node) nodex[4], nodex[7] = nodex[7], nodex[4] nodex[-1] += "D" successors.extend(nodex) elif i == 5: nodex = list(node) nodex[5], nodex[2] = nodex[2], nodex[5] nodex[-1] += "U" successors.extend(nodex) nodex = list(node) nodex[5], nodex[4] = nodex[4], nodex[5] nodex[-1] += "L" successors.extend(nodex) nodex = list(node) nodex[5], nodex[8] = nodex[8], nodex[5] nodex[-1] += "D" successors.extend(nodex) elif i == 6: nodex = list(node) nodex[6], nodex[3] = nodex[3], nodex[6] nodex[-1] += "U" successors.extend(nodex) nodex = list(node) nodex[6], nodex[7] = nodex[7], nodex[6] nodex[-1] += "R" successors.extend(nodex) elif i == 7: nodex = list(node) nodex[7], nodex[4] = nodex[4], nodex[7] nodex[-1] += "U" successors.extend(nodex) nodex = list(node) nodex[7], nodex[6] = nodex[6], nodex[7] nodex[-1] += "L" successors.extend(nodex) nodex = list(node) nodex[7], nodex[8] = nodex[8], nodex[7] nodex[-1] += "R" successors.extend(nodex) elif i == 8: nodex = list(node) nodex[8], nodex[7] = nodex[7], nodex[8] nodex[-1] += "L" successors.extend(nodex) nodex = list(node) nodex[8], nodex[5] = nodex[5], nodex[8] nodex[-1] += "U" successors.extend(nodex) return successors #------------------------------------------

gen_successors: cluster #3 (5)

# 6xxxxxxxx1 (2020-09-18 23:46) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodeEdit = list(node) nodeEdit[0], nodeEdit[1] = nodeEdit[1], nodeEdit[0] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[0], nodeEdit[3] = nodeEdit[3], nodeEdit[0] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 1: nodeEdit = list(node) nodeEdit[1], nodeEdit[0] = nodeEdit[0], nodeEdit[1] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[1], nodeEdit[4] = nodeEdit[4], nodeEdit[1] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[1], nodeEdit[2] = nodeEdit[2], nodeEdit[1] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 2: nodeEdit = list(node) nodeEdit[2], nodeEdit[1] = nodeEdit[1], nodeEdit[2] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[2], nodeEdit[5] = nodeEdit[5], nodeEdit[2] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 3: nodeEdit = list(node) nodeEdit[3], nodeEdit[0] = nodeEdit[0], nodeEdit[3] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[3], nodeEdit[4] = nodeEdit[4], nodeEdit[3] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[3], nodeEdit[6] = nodeEdit[6], nodeEdit[3] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 4: nodeEdit = list(node) nodeEdit[4], nodeEdit[1] = nodeEdit[1], nodeEdit[4] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[3] = nodeEdit[3], nodeEdit[4] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[5] = nodeEdit[5], nodeEdit[4] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[7] = nodeEdit[7], nodeEdit[4] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 5: nodeEdit = list(node) nodeEdit[5], nodeEdit[2] = nodeEdit[2], nodeEdit[5] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[5], nodeEdit[4] = nodeEdit[4], nodeEdit[5] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[5], nodeEdit[8] = nodeEdit[8], nodeEdit[5] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 6: nodeEdit = list(node) nodeEdit[6], nodeEdit[3] = nodeEdit[3], nodeEdit[6] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[6], nodeEdit[7] = nodeEdit[7], nodeEdit[6] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 7: nodeEdit = list(node) nodeEdit[7], nodeEdit[4] = nodeEdit[4], nodeEdit[7] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[7], nodeEdit[6] = nodeEdit[6], nodeEdit[7] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[7], nodeEdit[8] = nodeEdit[8], nodeEdit[7] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 8: nodeEdit = list(node) nodeEdit[8], nodeEdit[5] = nodeEdit[5], nodeEdit[8] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[8], nodeEdit[7] = nodeEdit[7], nodeEdit[8] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-19 19:18) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodeE = list(node) nodeE[0], nodeE[1] = nodeE[1], nodeE[0] nodeE[9] = node[9] + "R" successors.extend(nodeE) nodeE = list(node) nodeE[0], nodeE[3] = nodeE[3], nodeE[0] nodeE[9] = node[9] + "D" successors.extend(nodeE) elif i == 1: nodeE = list(node) nodeE[1], nodeE[0] = nodeE[0], nodeE[1] nodeE[9] = node[9] + "L" successors.extend(nodeE) nodeE = list(node) nodeE[1], nodeE[4] = nodeE[4], nodeE[1] nodeE[9] = node[9] + "D" successors.extend(nodeE) nodeE = list(node) nodeE[1], nodeE[2] = nodeE[2], nodeE[1] nodeE[9] = node[9] + "R" successors.extend(nodeE) elif i == 2: nodeE = list(node) nodeE[2], nodeE[1] = nodeE[1], nodeE[2] nodeE[9] = node[9] + "L" successors.extend(nodeE) nodeE = list(node) nodeE[2], nodeE[5] = nodeE[5], nodeE[2] nodeE[9] = node[9] + "D" successors.extend(nodeE) elif i == 3: nodeE = list(node) nodeE[3], nodeE[0] = nodeE[0], nodeE[3] nodeE[9] = node[9] + "U" successors.extend(nodeE) nodeE = list(node) nodeE[3], nodeE[4] = nodeE[4], nodeE[3] nodeE[9] = node[9] + "R" successors.extend(nodeE) nodeE = list(node) nodeE[3], nodeE[6] = nodeE[6], nodeE[3] nodeE[9] = node[9] + "D" successors.extend(nodeE) elif i == 4: nodeE = list(node) nodeE[4], nodeE[1] = nodeE[1], nodeE[4] nodeE[9] = node[9] + "U" successors.extend(nodeE) nodeE = list(node) nodeE[4], nodeE[3] = nodeE[3], nodeE[4] nodeE[9] = node[9] + "L" successors.extend(nodeE) nodeE = list(node) nodeE[4], nodeE[5] = nodeE[5], nodeE[4] nodeE[9] = node[9] + "R" successors.extend(nodeE) nodeE = list(node) nodeE[4], nodeE[7] = nodeE[7], nodeE[4] nodeE[9] = node[9] + "D" successors.extend(nodeE) elif i == 5: nodeE = list(node) nodeE[5], nodeE[2] = nodeE[2], nodeE[5] nodeE[9] = node[9] + "U" successors.extend(nodeE) nodeE = list(node) nodeE[5], nodeE[4] = nodeE[4], nodeE[5] nodeE[9] = node[9] + "L" successors.extend(nodeE) nodeE = list(node) nodeE[5], nodeE[8] = nodeE[8], nodeE[5] nodeE[9] = node[9] + "D" successors.extend(nodeE) elif i == 6: nodeE = list(node) nodeE[6], nodeE[3] = nodeE[3], nodeE[6] nodeE[9] = node[9] + "U" successors.extend(nodeE) nodeE = list(node) nodeE[6], nodeE[7] = nodeE[7], nodeE[6] nodeE[9] = node[9] + "R" successors.extend(nodeE) elif i == 7: nodeE = list(node) nodeE[7], nodeE[4] = nodeE[4], nodeE[7] nodeE[9] = node[9] + "U" successors.extend(nodeE) nodeE = list(node) nodeE[7], nodeE[6] = nodeE[6], nodeE[7] nodeE[9] = node[9] + "L" successors.extend(nodeE) nodeE = list(node) nodeE[7], nodeE[8] = nodeE[8], nodeE[7] nodeE[9] = node[9] + "R" successors.extend(nodeE) elif i == 8: nodeE = list(node) nodeE[8], nodeE[5] = nodeE[5], nodeE[8] nodeE[9] = node[9] + "U" successors.extend(nodeE) nodeE = list(node) nodeE[8], nodeE[7] = nodeE[7], nodeE[8] nodeE[9] = node[9] + "L" successors.extend(nodeE) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 15:35) def gen_successors(node): successors = [] i = node.index(0) if i == 0: c = list(node) c[0], c[1] = c[1], c[0] c[9] = node[9] + "R" successors.extend(c) c = list(node) c[0], c[3] = c[3], c[0] c[9] = node[9] + "D" successors.extend(c) elif i == 1: c = list(node) c[1], c[0] = c[0], c[1] c[9] = node[9] + "L" successors.extend(c) c = list(node) c[1], c[4] = c[4], c[1] c[9] = node[9] + "D" successors.extend(c) c = list(node) c[1], c[2] = c[2], c[1] c[9] = node[9] + "R" successors.extend(c) elif i == 2: c = list(node) c[2], c[1] = c[1], c[2] c[9] = node[9] + "L" successors.extend(c) c = list(node) c[2], c[5] = c[5], c[2] c[9] = node[9] + "D" successors.extend(c) elif i == 3: c = list(node) c[3], c[0] = c[0], c[3] c[9] = node[9] + "U" successors.extend(c) c = list(node) c[3], c[4] = c[4], c[3] c[9] = node[9] + "R" successors.extend(c) c = list(node) c[3], c[6] = c[6], c[3] c[9] = node[9] + "D" successors.extend(c) elif i == 4: c = list(node) c[4], c[1] = c[1], c[4] c[9] = node[9] + "U" successors.extend(c) c = list(node) c[4], c[3] = c[3], c[4] c[9] = node[9] + "L" successors.extend(c) c = list(node) c[4], c[5] = c[5], c[4] c[9] = node[9] + "R" successors.extend(c) c = list(node) c[4], c[7] = c[7], c[4] c[9] = node[9] + "D" successors.extend(c) elif i == 5: c = list(node) c[5], c[2] = c[2], c[5] c[9] = node[9] + "U" successors.extend(c) c = list(node) c[5], c[4] = c[4], c[5] c[9] = node[9] + "L" successors.extend(c) c = list(node) c[5], c[8] = c[8], c[5] c[9] = node[9] + "D" successors.extend(c) elif i == 6: c = list(node) c[6], c[3] = c[3], c[6] c[9] = node[9] + "U" successors.extend(c) c = list(node) c[6], c[7] = c[7], c[6] c[9] = node[9] + "R" successors.extend(c) elif i == 7: c = list(node) c[7], c[4] = c[4], c[7] c[9] = node[9] + "U" successors.extend(c) c = list(node) c[7], c[6] = c[6], c[7] c[9] = node[9] + "L" successors.extend(c) c = list(node) c[7], c[8] = c[8], c[7] c[9] = node[9] + "R" successors.extend(c) elif i == 8: c = list(node) c[8], c[5] = c[5], c[8] c[9] = node[9] + "U" successors.extend(c) c = list(node) c[8], c[7] = c[7], c[8] c[9] = node[9] + "L" successors.extend(c) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:56) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodeEdit = list(node) nodeEdit[0], nodeEdit[1] = nodeEdit[1], nodeEdit[0] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[0], nodeEdit[3] = nodeEdit[3], nodeEdit[0] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 1: nodeEdit = list(node) nodeEdit[1], nodeEdit[0] = nodeEdit[0], nodeEdit[1] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[1], nodeEdit[4] = nodeEdit[4], nodeEdit[1] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[1], nodeEdit[2] = nodeEdit[2], nodeEdit[1] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 2: nodeEdit = list(node) nodeEdit[2], nodeEdit[1] = nodeEdit[1], nodeEdit[2] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[2], nodeEdit[5] = nodeEdit[5], nodeEdit[2] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 3: nodeEdit = list(node) nodeEdit[3], nodeEdit[0] = nodeEdit[0], nodeEdit[3] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[3], nodeEdit[4] = nodeEdit[4], nodeEdit[3] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[3], nodeEdit[6] = nodeEdit[6], nodeEdit[3] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 4: nodeEdit = list(node) nodeEdit[4], nodeEdit[1] = nodeEdit[1], nodeEdit[4] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[3] = nodeEdit[3], nodeEdit[4] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[5] = nodeEdit[5], nodeEdit[4] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[7] = nodeEdit[7], nodeEdit[4] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 5: nodeEdit = list(node) nodeEdit[5], nodeEdit[2] = nodeEdit[2], nodeEdit[5] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[5], nodeEdit[4] = nodeEdit[4], nodeEdit[5] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[5], nodeEdit[8] = nodeEdit[8], nodeEdit[5] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 6: nodeEdit = list(node) nodeEdit[6], nodeEdit[3] = nodeEdit[3], nodeEdit[6] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[6], nodeEdit[7] = nodeEdit[7], nodeEdit[6] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 7: nodeEdit = list(node) nodeEdit[7], nodeEdit[4] = nodeEdit[4], nodeEdit[7] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[7], nodeEdit[6] = nodeEdit[6], nodeEdit[7] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[7], nodeEdit[8] = nodeEdit[8], nodeEdit[7] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 8: nodeEdit = list(node) nodeEdit[8], nodeEdit[5] = nodeEdit[5], nodeEdit[8] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[8], nodeEdit[7] = nodeEdit[7], nodeEdit[8] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:48) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodeEdit = list(node) nodeEdit[0], nodeEdit[1] = nodeEdit[1], nodeEdit[0] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[0], nodeEdit[3] = nodeEdit[3], nodeEdit[0] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 1: nodeEdit = list(node) nodeEdit[1], nodeEdit[0] = nodeEdit[0], nodeEdit[1] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[1], nodeEdit[4] = nodeEdit[4], nodeEdit[1] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[1], nodeEdit[2] = nodeEdit[2], nodeEdit[1] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 2: nodeEdit = list(node) nodeEdit[2], nodeEdit[1] = nodeEdit[1], nodeEdit[2] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[2], nodeEdit[5] = nodeEdit[5], nodeEdit[2] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 3: nodeEdit = list(node) nodeEdit[3], nodeEdit[0] = nodeEdit[0], nodeEdit[3] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[3], nodeEdit[4] = nodeEdit[4], nodeEdit[3] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[3], nodeEdit[6] = nodeEdit[6], nodeEdit[3] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 4: nodeEdit = list(node) nodeEdit[4], nodeEdit[1] = nodeEdit[1], nodeEdit[4] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[3] = nodeEdit[3], nodeEdit[4] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[5] = nodeEdit[5], nodeEdit[4] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[4], nodeEdit[7] = nodeEdit[7], nodeEdit[4] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 5: nodeEdit = list(node) nodeEdit[5], nodeEdit[2] = nodeEdit[2], nodeEdit[5] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[5], nodeEdit[4] = nodeEdit[4], nodeEdit[5] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[5], nodeEdit[8] = nodeEdit[8], nodeEdit[5] nodeEdit[9] = node[9] + "D" successors.extend(nodeEdit) elif i == 6: nodeEdit = list(node) nodeEdit[6], nodeEdit[3] = nodeEdit[3], nodeEdit[6] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[6], nodeEdit[7] = nodeEdit[7], nodeEdit[6] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 7: nodeEdit = list(node) nodeEdit[7], nodeEdit[4] = nodeEdit[4], nodeEdit[7] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[7], nodeEdit[6] = nodeEdit[6], nodeEdit[7] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[7], nodeEdit[8] = nodeEdit[8], nodeEdit[7] nodeEdit[9] = node[9] + "R" successors.extend(nodeEdit) elif i == 8: nodeEdit = list(node) nodeEdit[8], nodeEdit[5] = nodeEdit[5], nodeEdit[8] nodeEdit[9] = node[9] + "U" successors.extend(nodeEdit) nodeEdit = list(node) nodeEdit[8], nodeEdit[7] = nodeEdit[7], nodeEdit[8] nodeEdit[9] = node[9] + "L" successors.extend(nodeEdit) return successors #------------------------------------------

gen_successors: cluster #4 (5)

# 6xxxxxxxx1 (2020-09-20 20:59) def gen_successors(node): successors = [] a = int(len(node[:-1])**0.5) b = node.index(0); m = 0; found = False for i in range(1,a+1): if m == b//a: x = b%a - 1; y = b%a + 1; z = b - a; w = b + a if x >= 0: c = node[:-1] c.remove(0); c.insert(b-1,0); successors += c + [node[-1]+ 'L'] if z >= 0: s = node[:-1] s.remove(0); s.insert(z,0) s.remove(s[z+1]); s.insert(b,node[z]) successors += s + [node[-1]+ 'U'] if w < a**2: g = node[:-1] g.remove(0); g.insert(w,0) g.remove(g[w-1]); g.insert(b,node[w]) successors += g + [node[-1]+ 'D'] if y < a: p = node[:-1] p.remove(0); p.insert(b+1,0) successors += p + [node[-1]+ 'R'] found = True if found == True: break else: m += 1 return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:15) def gen_successors(node): successors = [] n = int(len(node[:-1])**0.5) c = node.index(0); m = 0; found = False for i in range(1,n+1): if m == c//n: x = c%n - 1; y = c%n + 1; z = c - n; w = c + n if x >= 0: g = node[:-1] g.remove(0); g.insert(c-1,0); successors += g + [node[-1]+ 'L'] if z >= 0: l = node[:-1] l.remove(0); l.insert(z,0) l.remove(l[z+1]); l.insert(c,node[z]) successors += l + [node[-1]+ 'U'] if w < n**2: k = node[:-1] k.remove(0); k.insert(w,0) k.remove(k[w-1]); k.insert(c,node[w]) successors += k + [node[-1]+ 'D'] if y < n: h = node[:-1] h.remove(0); h.insert(c+1,0) successors += h + [node[-1]+ 'R'] found = True if found == True: break else: m += 1 return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:32) def gen_successors(node): successors = [] x = int(len(node[:-1])**(1/2)) y = node.index(0); m = 0; found = False for i in range(1,x+1): if m == y//x: a = y%x - 1; b = y%x + 1; z = y - x; w = y + x if a >= 0: c = node[:-1] c.remove(0); c.insert(y-1,0); successors += c + [node[-1]+ 'L'] if z >= 0: s = node[:-1] s.remove(0); s.insert(z,0) s.remove(s[z+1]); s.insert(y,node[z]) successors += s + [node[-1]+ 'U'] if w < x**2: g = node[:-1] g.remove(0); g.insert(w,0) g.remove(g[w-1]); g.insert(y,node[w]) successors += g + [node[-1]+ 'D'] if b < x: p = node[:-1] p.remove(0); p.insert(y+1,0) successors += p + [node[-1]+ 'R'] found = True if found == True: break else: m += 1 return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:45) def gen_successors(node): successors = [] q = int(len(node[:-1])**0.5) k = node.index(0); l = 0; found = False for i in range(1,q+1): if l == k//q: a = k%q - 1; x = k%q + 1; b = k - q; w = k + q if a >= 0: c = node[:-1] c.remove(0); c.insert(k-1,0); successors += c + [node[-1]+ 'L'] if b >= 0: s = node[:-1] s.remove(0); s.insert(b,0) s.remove(s[b+1]); s.insert(k,node[b]) successors += s + [node[-1]+ 'U'] if w < q**2: g = node[:-1] g.remove(0); g.insert(w,0) g.remove(g[w-1]); g.insert(k,node[w]) successors += g + [node[-1]+ 'D'] if x < q: p = node[:-1] p.remove(0); p.insert(k+1,0) successors += p + [node[-1]+ 'R'] found = True if found == True: break else: l += 1 return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:55) def gen_successors(node): successors = [] a = int(len(node[:-1])**0.5) b = node.index(0); m = 0; found = False for i in range(1,a+1): if m == b//a: x = b%a - 1; y = b%a + 1; z = b - a; w = b + a if x >= 0: c = node[:-1] c.remove(0); c.insert(b-1,0); successors += c + [node[-1]+ 'L'] if z >= 0: s = node[:-1] s.remove(0); s.insert(z,0) s.remove(s[z+1]); s.insert(b,node[z]) successors += s + [node[-1]+ 'U'] if w < a**2: g = node[:-1] g.remove(0); g.insert(w,0) g.remove(g[w-1]); g.insert(b,node[w]) successors += g + [node[-1]+ 'D'] if y < a: p = node[:-1] p.remove(0); p.insert(b+1,0) successors += p + [node[-1]+ 'R'] found = True if found == True: break else: m += 1 return successors

gen_successors: cluster #5 (2)

# 6xxxxxxxx1 (2020-09-20 23:36) def gen_successors(node): successors = [] board = node[:-1] command = node[-1] idx = board.index(0) if idx + 3 <= 8 : board[idx], board[idx+3] = board[idx+3], board[idx] successors += (board + [(command + 'D')]) board[idx], board[idx+3] = board[idx+3], board[idx] if idx - 3 >= 0 : board[idx], board[idx-3] = board[idx-3], board[idx] successors += (board + [(command + 'U')]) board[idx], board[idx-3] = board[idx-3], board[idx] if (idx - 1)//3 == (idx)//3 and idx > 0: board[idx], board[idx-1] = board[idx-1], board[idx] successors += (board + [(command + 'L')]) board[idx], board[idx-1] = board[idx-1], board[idx] if (idx + 1)//3 == (idx)//3 and idx < 8: board[idx], board[idx+1] = board[idx+1], board[idx] successors += (board + [(command + 'R')]) board[idx], board[idx+1] = board[idx+1], board[idx] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:50) def gen_successors(node): successors = [] board = node[:-1] command = node[-1] idx = board.index(0) if idx + 3 <= 8 : board[idx], board[idx+3] = board[idx+3], board[idx] successors += (board + [(command + 'D')]) board[idx], board[idx+3] = board[idx+3], board[idx] if idx - 3 >= 0 : board[idx], board[idx-3] = board[idx-3], board[idx] successors += (board + [(command + 'U')]) board[idx], board[idx-3] = board[idx-3], board[idx] if (idx - 1)//3 == (idx)//3 and idx > 0: board[idx], board[idx-1] = board[idx-1], board[idx] successors += (board + [(command + 'L')]) board[idx], board[idx-1] = board[idx-1], board[idx] if (idx + 1)//3 == (idx)//3 and idx < 8: board[idx], board[idx+1] = board[idx+1], board[idx] successors += (board + [(command + 'R')]) board[idx], board[idx+1] = board[idx+1], board[idx] return successors #------------------------------------------

gen_successors: cluster #6 (2)

# 6xxxxxxxx1 (2020-09-20 02:36) def gen_successors(node): successors = [] def L(index): node[index], node[index-1] = node[index-1], node[index] return node[0:9:1] + ([node[9] + "L"]) def R(index): node[index], node[index+1] = node[index+1], node[index] return node[0:9:1] + ([node[9] + "R"]) def U(index): node[index], node[index-3] = node[index-3], node[index] return node[0:9:1] + ([node[9] + "U"]) def D(index): node[index], node[index+3] = node[index+3], node[index] return node[0:9:1] + ([node[9] + "D"]) def fixL(index): node[index], node[index-1] = node[index-1], node[index] return node def fixR(index): node[index], node[index+1] = node[index+1], node[index] return node def fixU(index): node[index], node[index-3] = node[index-3], node[index] return node def fixD(index): node[index], node[index+3] = node[index+3], node[index] return node if(node[0] == 0): successors += D(0) fixD(0) successors += R(0) fixR(0) elif(node[1] == 0): successors += (D(1)) fixD(1) successors += (L(1)) fixL(1) successors += (R(1)) fixR(1) elif(node[2] == 0): successors += (D(2)) fixD(2) successors += (L(2)) fixL(2) elif(node[3] == 0): successors += (U(3)) fixU(3) successors += (D(3)) fixD(3) successors += (R(3)) fixR(3) elif(node[4] == 0): successors += (U(4)) fixU(4) successors += (D(4)) fixD(4) successors += (L(4)) fixL(4) successors += (R(4)) fixR(4) elif(node[5] == 0): successors += (U(5)) fixU(5) successors += (D(5)) fixD(5) successors += (L(5)) fixL(5) elif(node[6] == 0): successors += (U(6)) fixU(6) successors += (R(6)) fixR(6) elif(node[7] == 0): successors += (U(7)) fixU(7) successors += (L(7)) fixL(7) successors += (R(7)) fixR(7) elif(node[8] == 0): successors += (L(8)) fixL(8) successors += (U(8)) fixU(8) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:24) def gen_successors(node): successors = [] def L(index): node[index], node[index-1] = node[index-1], node[index] return node[0:9:1] + ([node[9] + "L"]) def R(index): node[index], node[index+1] = node[index+1], node[index] return node[0:9:1] + ([node[9] + "R"]) def U(index): node[index], node[index-3] = node[index-3], node[index] return node[0:9:1] + ([node[9] + "U"]) def D(index): node[index], node[index+3] = node[index+3], node[index] return node[0:9:1] + ([node[9] + "D"]) def fixL(index): node[index], node[index-1] = node[index-1], node[index] return node def fixR(index): node[index], node[index+1] = node[index+1], node[index] return node def fixU(index): node[index], node[index-3] = node[index-3], node[index] return node def fixD(index): node[index], node[index+3] = node[index+3], node[index] return node if(node[0] == 0): successors += D(0) fixD(0) successors += R(0) fixR(0) elif(node[1] == 0): successors += (D(1)) fixD(1) successors += (L(1)) fixL(1) successors += (R(1)) fixR(1) elif(node[2] == 0): successors += (D(2)) fixD(2) successors += (L(2)) fixL(2) elif(node[3] == 0): successors += (U(3)) fixU(3) successors += (D(3)) fixD(3) successors += (R(3)) fixR(3) elif(node[4] == 0): successors += (U(4)) fixU(4) successors += (D(4)) fixD(4) successors += (L(4)) fixL(4) successors += (R(4)) fixR(4) elif(node[5] == 0): successors += (U(5)) fixU(5) successors += (D(5)) fixD(5) successors += (L(5)) fixL(5) elif(node[6] == 0): successors += (U(6)) fixU(6) successors += (R(6)) fixR(6) elif(node[7] == 0): successors += (U(7)) fixU(7) successors += (L(7)) fixL(7) successors += (R(7)) fixR(7) elif(node[8] == 0): successors += (L(8)) fixL(8) successors += (U(8)) fixU(8) return successors #------------------------------------------

gen_successors: cluster #7 (2)

# 6xxxxxxxx1 (2020-09-20 21:40) def gen_successors(node): successors = [] a1=[0]*len(node) a2=[0]*len(node) a3=[0]*len(node) a4=[0]*len(node) for i in range (len(node)): a1[i]=node[i] a2[i]=node[i] a3[i]=node[i] a4[i]=node[i] a= int((len(node)-1)**0.5) #n*n =table if 0 in node: i=node.index(0) if i%a-1 >= 0: a1[i],a1[i-1]=a1[i-1],a1[i] a1[-1]+='L' successors+=a1 if i%a+1 < a: a2[i],a2[i+1]=a2[i+1],a2[i] a2[-1]+='R' successors+=a2 if i-a > 0: a3[i],a3[i-a]=a3[i-a],a3[i] a3[-1]+='U' successors+=a3 if i+a < a**2: a4[i],a4[i+a]=a4[i+a],a4[i] a4[-1]+='D' successors+=a4 return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:58) def gen_successors(node): successors = [] a=[0]*len(node) b=[0]*len(node) c=[0]*len(node) d=[0]*len(node) for i in range (len(node)): a[i]=node[i] b[i]=node[i] c[i]=node[i] d[i]=node[i] n= int((len(node)-1)**0.5) if 0 in node: i=node.index(0) if i%n-1 >= 0: a[i],a[i-1]=a[i-1],a[i] a[-1]+='L' successors+=a if i%n+1 < n: b[i],b[i+1]=b[i+1],b[i] b[-1]+='R' successors+=b if i-n > 0: c[i],c[i-n]=c[i-n],c[i] c[-1]+='U' successors+=c if i+n < n**2: d[i],d[i+n]=d[i+n],d[i] d[-1]+='D' successors+=d return successors #------------------------------------------

gen_successors: cluster #8 (7)

# 6xxxxxxxx1 (2020-09-17 04:04) def gen_successors(node): successors = [] m = ['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] b = node.index(0) c = m[b] for i in c : a = node.copy() if i == 'D' : a.remove(0) a.insert(b+2,0) a.insert(b,a[b+3]) a.pop(b+4) a[-1] += 'D' elif i == 'L' : a.remove(0) a.insert(b-1,0) a[-1] += 'L' elif i == 'R' : a.remove(0) a.insert(b+1,0) a[-1] += 'R' elif i == 'U' : a.remove(0) a.insert(b-3,0) a.insert(b+1,a[b-2]) a.pop(b-2) a[-1] += 'U' successors += a return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 13:52) def gen_successors(node): successors = [] M = ['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] b = node.index(0) a = M[b] for i in a : z = node.copy() if i == 'D' : z.remove(0) z.insert(b+2,0) z.insert(b,z[b+3]) z.pop(b+4) z[-1] += 'D' elif i == 'L' : z.remove(0) z.insert(b-1,0) z[-1] += 'L' elif i == 'R' : z.remove(0) z.insert(b+1,0) z[-1] += 'R' elif i == 'U': z.remove(0) z.insert(b-3,0) z.insert(b+1,z[b-2]) z.pop(b-2) z[-1] += 'U' successors += z return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 16:40) def gen_successors(node): successors = [] M = ['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] b = node.index(0) a = M[b] for i in a : c = node.copy() if i == 'D' : c.remove(0) c.insert(b+2,0) c.insert(b,c[b+3]) c.pop(b+4) c[-1] += 'D' elif i == 'L' : c.remove(0) c.insert(b-1,0) c[-1] += 'L' elif i == 'R' : c.remove(0) c.insert(b+1,0) c[-1] += 'R' elif i == 'U': c.remove(0) c.insert(b-3,0) c.insert(b+1,c[b-2]) c.pop(b-2) c[-1] += 'U' successors += c return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:52) def gen_successors(node): successors = [] m = ['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] n = node.index(0) p = m[n] for i in p : c = node.copy() if i == 'D' : c.remove(0) c.insert(n+2,0) c.insert(n,c[n+3]) c.pop(n+4) c[-1] += 'D' elif i == 'L' : c.remove(0) c.insert(n-1,0) c[-1] += 'L' elif i == 'R' : c.remove(0) c.insert(n+1,0) c[-1] += 'R' elif i == 'U' : c.remove(0) c.insert(n-3,0) c.insert(n+1,c[n-2]) c.pop(n-2) c[-1] += 'U' successors += c return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:09) def gen_successors(node): successors = [] x=['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] y=node.index(0) z=x[y] for i in z: b=node.copy() if i=='D': b.remove(0) b.insert(y+2,0) b.insert(y,b[y+3]) b.pop(y+4) b[-1]+='D' elif i=='R': b.remove(0) b.insert(y+1,0) b[-1]+='R' elif i=='L': b.remove(0) b.insert(y-1,0) b[-1]+='L' elif i=='U': b.remove(0) b.insert(y-3,0) b.insert(y+1,b[y-2]) b.pop(y-2) b[-1]+='U' successors+=b return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:49) def gen_successors(node): successors = [] m=['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] j=node.index(0) k=m[j] for i in k: h=node.copy() if i=='D': h.remove(0) h.insert(j+2,0) h.insert(j,h[j+3]) h.pop(j+4) h[-1]+='D' elif i=='L': h.remove(0) h.insert(j-1,0) h[-1]+='L' elif i=='R': h.remove(0) h.insert(j+1,0) h[-1]+='R' elif i=='U': h.remove(0) h.insert(j-3,0) h.insert(j+1,h[j-2]) h.pop(j-2) h[-1]+='U' successors+=h return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:27) def gen_successors(node): successors = [] m = ['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] b = node. index(0) c = m[b] for i in c : a = node.copy() if i == 'D' : a.remove(0) a.insert(b+2,0) a.insert(b,a[b+3]) a.pop(b+4) a[-1] += 'D' elif i == 'L' : a.remove(0) a.insert(b-1,0) a[-1] += 'L' elif i == 'R' : a.remove (0) a.insert(b+1,0) a[-1] += 'R' elif i == 'U' : a.remove(0) a.insert(b-3,0) a.insert(b+1,a[b-2]) a.pop(b-2) a[-1] += 'U' successors += a return successors #------------------------------------------

gen_successors: cluster #9 (9)

# 6xxxxxxxx1 (2020-09-19 14:47) def gen_successors(node): successors = [] #print("node : ",node,"\n") empty = node.index(0); if (empty == 0): #copy node ndd = node.copy() ndr = node.copy() #down ndd[0], ndd[3] = ndd[3], ndd[0] #add path ndd[9] += "D" successors += ndd #right ndr[0], ndr[1] = ndr[1], ndr[0] #add path ndr[9] += "R" successors += ndr elif (empty == 1): #copy node ndd = node.copy() ndl = node.copy() ndr = node.copy() #down ndd[1], ndd[4] = ndd[4], ndd[1] #add path ndd[9] += "D" successors += ndd #left ndl[0], ndl[1] = ndl[1], ndl[0] #add path ndl[9] += "L" successors += ndl #right ndr[1], ndr[2] = ndr[2], ndr[1] #add path ndr[9] += "R" successors += ndr elif (empty == 2): #copy node ndd = node.copy() ndl = node.copy() #down ndd[2], ndd[5] = ndd[5], ndd[2] #add path ndd[9] += "D" successors += ndd #left ndl[1], ndl[2] = ndl[2], ndl[1] #add path ndl[9] += "L" successors += ndl elif (empty == 3): #copy node ndu = node.copy() ndd = node.copy() ndr = node.copy() #up ndu[0], ndu[3] = ndu[3], ndu[0] #add path ndu[9] += "U" successors += ndu #down ndd[3], ndd[6] = ndd[6], ndd[3] #add path ndd[9] += "D" successors += ndd #right ndr[3], ndr[4] = ndr[4], ndr[3] #add path ndr[9] += "R" successors += ndr elif (empty == 4): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[1], ndu[4] = ndu[4], ndu[1] #add path ndu[9] += "U" successors += ndu #down ndd[4], ndd[7] = ndd[7], ndd[4] #add path ndd[9] += "D" successors += ndd #left ndl[3], ndl[4] = ndl[4], ndl[3] #add path ndl[9] += "L" successors += ndl #right ndr[4], ndr[5] = ndr[5], ndr[4] #add path ndr[9] += "R" successors += ndr elif (empty == 5): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() #up ndu[2], ndu[5] = ndu[5], ndu[2] #add path ndu[9] += "U" successors += ndu #down ndd[5], ndd[8] = ndd[8], ndd[5] #add path ndd[9] += "D" successors += ndd #left ndl[4], ndl[5] = ndl[5], ndl[4] #add path ndl[9] += "L" successors += ndl elif (empty == 6): #copy node ndu = node.copy() ndr = node.copy() #up ndu[3], ndu[6] = ndu[6], ndu[3] #add path ndu[9] += "U" successors += ndu #right ndr[6], ndr[7] = ndr[7], ndr[6] #add path ndr[9] += "R" successors += ndr elif (empty == 7): #copy node ndu = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[4], ndu[7] = ndu[7], ndu[4] #add path ndu[9] += "U" successors += ndu #left ndl[6], ndl[7] = ndl[7], ndl[6] #add path ndl[9] += "L" successors += ndl #right ndr[7], ndr[8] = ndr[8], ndr[7] #add path ndr[9] += "R" successors += ndr elif (empty == 8): #copy node ndu = node.copy() ndl = node.copy() #up ndu[5], ndu[8] = ndu[8], ndu[5] #add path ndu[9] += "U" successors += ndu #left ndl[7], ndl[8] = ndl[8], ndl[7] #add path ndl[9] += "L" successors += ndl return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-19 15:00) def gen_successors(node): successors = [] #print("node : ",node,"\n") a = node.index(0); if (a == 0): #copy node ndd = node.copy() ndr = node.copy() #down ndd[0], ndd[3] = ndd[3], ndd[0] #add path ndd[9] += "D" successors += ndd #right ndr[0], ndr[1] = ndr[1], ndr[0] #add path ndr[9] += "R" successors += ndr elif (a == 1): #copy node ndd = node.copy() ndl = node.copy() ndr = node.copy() #down ndd[1], ndd[4] = ndd[4], ndd[1] #add path ndd[9] += "D" successors += ndd #left ndl[0], ndl[1] = ndl[1], ndl[0] #add path ndl[9] += "L" successors += ndl #right ndr[1], ndr[2] = ndr[2], ndr[1] #add path ndr[9] += "R" successors += ndr elif (a == 2): #copy node ndd = node.copy() ndl = node.copy() #down ndd[2], ndd[5] = ndd[5], ndd[2] #add path ndd[9] += "D" successors += ndd #left ndl[1], ndl[2] = ndl[2], ndl[1] #add path ndl[9] += "L" successors += ndl elif (a == 3): #copy node ndu = node.copy() ndd = node.copy() ndr = node.copy() #up ndu[0], ndu[3] = ndu[3], ndu[0] #add path ndu[9] += "U" successors += ndu #down ndd[3], ndd[6] = ndd[6], ndd[3] #add path ndd[9] += "D" successors += ndd #right ndr[3], ndr[4] = ndr[4], ndr[3] #add path ndr[9] += "R" successors += ndr elif (a == 4): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[1], ndu[4] = ndu[4], ndu[1] #add path ndu[9] += "U" successors += ndu #down ndd[4], ndd[7] = ndd[7], ndd[4] #add path ndd[9] += "D" successors += ndd #left ndl[3], ndl[4] = ndl[4], ndl[3] #add path ndl[9] += "L" successors += ndl #right ndr[4], ndr[5] = ndr[5], ndr[4] #add path ndr[9] += "R" successors += ndr elif (a == 5): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() #up ndu[2], ndu[5] = ndu[5], ndu[2] #add path ndu[9] += "U" successors += ndu #down ndd[5], ndd[8] = ndd[8], ndd[5] #add path ndd[9] += "D" successors += ndd #left ndl[4], ndl[5] = ndl[5], ndl[4] #add path ndl[9] += "L" successors += ndl elif (a == 6): #copy node ndu = node.copy() ndr = node.copy() #up ndu[3], ndu[6] = ndu[6], ndu[3] #add path ndu[9] += "U" successors += ndu #right ndr[6], ndr[7] = ndr[7], ndr[6] #add path ndr[9] += "R" successors += ndr elif (a == 7): #copy node ndu = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[4], ndu[7] = ndu[7], ndu[4] #add path ndu[9] += "U" successors += ndu #left ndl[6], ndl[7] = ndl[7], ndl[6] #add path ndl[9] += "L" successors += ndl #right ndr[7], ndr[8] = ndr[8], ndr[7] #add path ndr[9] += "R" successors += ndr elif (a == 8): #copy node ndu = node.copy() ndl = node.copy() #up ndu[5], ndu[8] = ndu[8], ndu[5] #add path ndu[9] += "U" successors += ndu #left ndl[7], ndl[8] = ndl[8], ndl[7] #add path ndl[9] += "L" successors += ndl return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-19 20:20) def gen_successors(node): successors = [] #print("node : ",node,"\n") m = node.index(0); if (m == 0): #copy node ndd = node.copy() ndr = node.copy() #down ndd[0], ndd[3] = ndd[3], ndd[0] #add path ndd[9] += "D" successors += ndd #right ndr[0], ndr[1] = ndr[1], ndr[0] #add path ndr[9] += "R" successors += ndr elif (m == 1): #copy node ndd = node.copy() ndl = node.copy() ndr = node.copy() #down ndd[1], ndd[4] = ndd[4], ndd[1] #add path ndd[9] += "D" successors += ndd #left ndl[0], ndl[1] = ndl[1], ndl[0] #add path ndl[9] += "L" successors += ndl #right ndr[1], ndr[2] = ndr[2], ndr[1] #add path ndr[9] += "R" successors += ndr elif (m == 2): #copy node ndd = node.copy() ndl = node.copy() #down ndd[2], ndd[5] = ndd[5], ndd[2] #add path ndd[9] += "D" successors += ndd #left ndl[1], ndl[2] = ndl[2], ndl[1] #add path ndl[9] += "L" successors += ndl elif (m == 3): #copy node ndu = node.copy() ndd = node.copy() ndr = node.copy() #up ndu[0], ndu[3] = ndu[3], ndu[0] #add path ndu[9] += "U" successors += ndu #down ndd[3], ndd[6] = ndd[6], ndd[3] #add path ndd[9] += "D" successors += ndd #right ndr[3], ndr[4] = ndr[4], ndr[3] #add path ndr[9] += "R" successors += ndr elif (m == 4): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[1], ndu[4] = ndu[4], ndu[1] #add path ndu[9] += "U" successors += ndu #down ndd[4], ndd[7] = ndd[7], ndd[4] #add path ndd[9] += "D" successors += ndd #left ndl[3], ndl[4] = ndl[4], ndl[3] #add path ndl[9] += "L" successors += ndl #right ndr[4], ndr[5] = ndr[5], ndr[4] #add path ndr[9] += "R" successors += ndr elif (m == 5): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() #up ndu[2], ndu[5] = ndu[5], ndu[2] #add path ndu[9] += "U" successors += ndu #down ndd[5], ndd[8] = ndd[8], ndd[5] #add path ndd[9] += "D" successors += ndd #left ndl[4], ndl[5] = ndl[5], ndl[4] #add path ndl[9] += "L" successors += ndl elif (m == 6): #copy node ndu = node.copy() ndr = node.copy() #up ndu[3], ndu[6] = ndu[6], ndu[3] #add path ndu[9] += "U" successors += ndu #right ndr[6], ndr[7] = ndr[7], ndr[6] #add path ndr[9] += "R" successors += ndr elif (m == 7): #copy node ndu = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[4], ndu[7] = ndu[7], ndu[4] #add path ndu[9] += "U" successors += ndu #left ndl[6], ndl[7] = ndl[7], ndl[6] #add path ndl[9] += "L" successors += ndl #right ndr[7], ndr[8] = ndr[8], ndr[7] #add path ndr[9] += "R" successors += ndr elif (m == 8): #copy node ndu = node.copy() ndl = node.copy() #up ndu[5], ndu[8] = ndu[8], ndu[5] #add path ndu[9] += "U" successors += ndu #left ndl[7], ndl[8] = ndl[8], ndl[7] #add path ndl[9] += "L" successors += ndl return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 13:08) def gen_successors(node): successors = [] #print("node : ",node,"\n") x = node.index(0); if (x == 0): #copy node ndd = node.copy() ndr = node.copy() #down ndd[0], ndd[3] = ndd[3], ndd[0] #add path ndd[9] += "D" successors += ndd #right ndr[0], ndr[1] = ndr[1], ndr[0] #add path ndr[9] += "R" successors += ndr elif (x == 1): #copy node ndd = node.copy() ndl = node.copy() ndr = node.copy() #down ndd[1], ndd[4] = ndd[4], ndd[1] #add path ndd[9] += "D" successors += ndd #left ndl[0], ndl[1] = ndl[1], ndl[0] #add path ndl[9] += "L" successors += ndl #right ndr[1], ndr[2] = ndr[2], ndr[1] #add path ndr[9] += "R" successors += ndr elif (x == 2): #copy node ndd = node.copy() ndl = node.copy() #down ndd[2], ndd[5] = ndd[5], ndd[2] #add path ndd[9] += "D" successors += ndd #left ndl[1], ndl[2] = ndl[2], ndl[1] #add path ndl[9] += "L" successors += ndl elif (x == 3): #copy node ndu = node.copy() ndd = node.copy() ndr = node.copy() #up ndu[0], ndu[3] = ndu[3], ndu[0] #add path ndu[9] += "U" successors += ndu #down ndd[3], ndd[6] = ndd[6], ndd[3] #add path ndd[9] += "D" successors += ndd #right ndr[3], ndr[4] = ndr[4], ndr[3] #add path ndr[9] += "R" successors += ndr elif (x == 4): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[1], ndu[4] = ndu[4], ndu[1] #add path ndu[9] += "U" successors += ndu #down ndd[4], ndd[7] = ndd[7], ndd[4] #add path ndd[9] += "D" successors += ndd #left ndl[3], ndl[4] = ndl[4], ndl[3] #add path ndl[9] += "L" successors += ndl #right ndr[4], ndr[5] = ndr[5], ndr[4] #add path ndr[9] += "R" successors += ndr elif (x == 5): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() #up ndu[2], ndu[5] = ndu[5], ndu[2] #add path ndu[9] += "U" successors += ndu #down ndd[5], ndd[8] = ndd[8], ndd[5] #add path ndd[9] += "D" successors += ndd #left ndl[4], ndl[5] = ndl[5], ndl[4] #add path ndl[9] += "L" successors += ndl elif (x == 6): #copy node ndu = node.copy() ndr = node.copy() #up ndu[3], ndu[6] = ndu[6], ndu[3] #add path ndu[9] += "U" successors += ndu #right ndr[6], ndr[7] = ndr[7], ndr[6] #add path ndr[9] += "R" successors += ndr elif (x == 7): #copy node ndu = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[4], ndu[7] = ndu[7], ndu[4] #add path ndu[9] += "U" successors += ndu #left ndl[6], ndl[7] = ndl[7], ndl[6] #add path ndl[9] += "L" successors += ndl #right ndr[7], ndr[8] = ndr[8], ndr[7] #add path ndr[9] += "R" successors += ndr elif (x == 8): #copy node ndu = node.copy() ndl = node.copy() #up ndu[5], ndu[8] = ndu[8], ndu[5] #add path ndu[9] += "U" successors += ndu #left ndl[7], ndl[8] = ndl[8], ndl[7] #add path ndl[9] += "L" successors += ndl return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 19:26) def gen_successors(node): successors = [] #print("node : ",node,"\n") empty = node.index(0); if (empty == 0): #copy node ndd = node.copy() ndr = node.copy() #down ndd[0], ndd[3] = ndd[3], ndd[0] #add path ndd[9] += "D" successors += ndd #right ndr[0], ndr[1] = ndr[1], ndr[0] #add path ndr[9] += "R" successors += ndr elif (empty == 1): #copy node ndd = node.copy() ndl = node.copy() ndr = node.copy() #down ndd[1], ndd[4] = ndd[4], ndd[1] #add path ndd[9] += "D" successors += ndd #left ndl[0], ndl[1] = ndl[1], ndl[0] #add path ndl[9] += "L" successors += ndl #right ndr[1], ndr[2] = ndr[2], ndr[1] #add path ndr[9] += "R" successors += ndr elif (empty == 2): #copy node ndd = node.copy() ndl = node.copy() #down ndd[2], ndd[5] = ndd[5], ndd[2] #add path ndd[9] += "D" successors += ndd #left ndl[1], ndl[2] = ndl[2], ndl[1] #add path ndl[9] += "L" successors += ndl elif (empty == 3): #copy node ndu = node.copy() ndd = node.copy() ndr = node.copy() #up ndu[0], ndu[3] = ndu[3], ndu[0] #add path ndu[9] += "U" successors += ndu #down ndd[3], ndd[6] = ndd[6], ndd[3] #add path ndd[9] += "D" successors += ndd #right ndr[3], ndr[4] = ndr[4], ndr[3] #add path ndr[9] += "R" successors += ndr elif (empty == 4): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[1], ndu[4] = ndu[4], ndu[1] #add path ndu[9] += "U" successors += ndu #down ndd[4], ndd[7] = ndd[7], ndd[4] #add path ndd[9] += "D" successors += ndd #left ndl[3], ndl[4] = ndl[4], ndl[3] #add path ndl[9] += "L" successors += ndl #right ndr[4], ndr[5] = ndr[5], ndr[4] #add path ndr[9] += "R" successors += ndr elif (empty == 5): #copy node ndu = node.copy() ndd = node.copy() ndl = node.copy() #up ndu[2], ndu[5] = ndu[5], ndu[2] #add path ndu[9] += "U" successors += ndu #down ndd[5], ndd[8] = ndd[8], ndd[5] #add path ndd[9] += "D" successors += ndd #left ndl[4], ndl[5] = ndl[5], ndl[4] #add path ndl[9] += "L" successors += ndl elif (empty == 6): #copy node ndu = node.copy() ndr = node.copy() #up ndu[3], ndu[6] = ndu[6], ndu[3] #add path ndu[9] += "U" successors += ndu #right ndr[6], ndr[7] = ndr[7], ndr[6] #add path ndr[9] += "R" successors += ndr elif (empty == 7): #copy node ndu = node.copy() ndl = node.copy() ndr = node.copy() #up ndu[4], ndu[7] = ndu[7], ndu[4] #add path ndu[9] += "U" successors += ndu #left ndl[6], ndl[7] = ndl[7], ndl[6] #add path ndl[9] += "L" successors += ndl #right ndr[7], ndr[8] = ndr[8], ndr[7] #add path ndr[9] += "R" successors += ndr elif (empty == 8): #copy node ndu = node.copy() ndl = node.copy() #up ndu[5], ndu[8] = ndu[8], ndu[5] #add path ndu[9] += "U" successors += ndu #left ndl[7], ndl[8] = ndl[8], ndl[7] #add path ndl[9] += "L" successors += ndl return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:34) def gen_successors(node): successors = [] empty = node.index(0); if (empty == 0): ndd = node.copy() ndr = node.copy() ndd[0], ndd[3] = ndd[3], ndd[0] ndd[9] += "D" successors += ndd ndr[0], ndr[1] = ndr[1], ndr[0] ndr[9] += "R" successors += ndr elif (empty == 1): ndd = node.copy() ndl = node.copy() ndr = node.copy() ndd[1], ndd[4] = ndd[4], ndd[1] ndd[9] += "D" successors += ndd ndl[0], ndl[1] = ndl[1], ndl[0] ndl[9] += "L" successors += ndl ndr[1], ndr[2] = ndr[2], ndr[1] ndr[9] += "R" successors += ndr elif (empty == 2): ndd = node.copy() ndl = node.copy() ndd[2], ndd[5] = ndd[5], ndd[2] ndd[9] += "D" successors += ndd ndl[1], ndl[2] = ndl[2], ndl[1] ndl[9] += "L" successors += ndl elif (empty == 3): ndu = node.copy() ndd = node.copy() ndr = node.copy() ndu[0], ndu[3] = ndu[3], ndu[0] ndu[9] += "U" successors += ndu ndd[3], ndd[6] = ndd[6], ndd[3] ndd[9] += "D" successors += ndd ndr[3], ndr[4] = ndr[4], ndr[3] ndr[9] += "R" successors += ndr elif (empty == 4): ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() ndu[1], ndu[4] = ndu[4], ndu[1] ndu[9] += "U" successors += ndu ndd[4], ndd[7] = ndd[7], ndd[4] ndd[9] += "D" successors += ndd ndl[3], ndl[4] = ndl[4], ndl[3] ndl[9] += "L" successors += ndl ndr[4], ndr[5] = ndr[5], ndr[4] ndr[9] += "R" successors += ndr elif (empty == 5): ndu = node.copy() ndd = node.copy() ndl = node.copy() ndu[2], ndu[5] = ndu[5], ndu[2] ndu[9] += "U" successors += ndu ndd[5], ndd[8] = ndd[8], ndd[5] ndd[9] += "D" successors += ndd ndl[4], ndl[5] = ndl[5], ndl[4] ndl[9] += "L" successors += ndl elif (empty == 6): ndu = node.copy() ndr = node.copy() ndu[3], ndu[6] = ndu[6], ndu[3] ndu[9] += "U" successors += ndu ndr[6], ndr[7] = ndr[7], ndr[6] ndr[9] += "R" successors += ndr elif (empty == 7): ndu = node.copy() ndl = node.copy() ndr = node.copy() ndu[4], ndu[7] = ndu[7], ndu[4] ndu[9] += "U" successors += ndu ndl[6], ndl[7] = ndl[7], ndl[6] ndl[9] += "L" successors += ndl ndr[7], ndr[8] = ndr[8], ndr[7] ndr[9] += "R" successors += ndr elif (empty == 8): ndu = node.copy() ndl = node.copy() ndu[5], ndu[8] = ndu[8], ndu[5] ndu[9] += "U" successors += ndu ndl[7], ndl[8] = ndl[8], ndl[7] ndl[9] += "L" successors += ndl return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:39) def gen_successors(node): successors = [] empty = node.index(0); if (empty == 0): ndd = node.copy() ndr = node.copy() ndd[0], ndd[3] = ndd[3], ndd[0] ndd[9] += "D" successors += ndd ndr[0], ndr[1] = ndr[1], ndr[0] ndr[9] += "R" successors += ndr elif (empty == 1): ndd = node.copy() ndl = node.copy() ndr = node.copy() ndd[1], ndd[4] = ndd[4], ndd[1] ndd[9] += "D" successors += ndd ndl[0], ndl[1] = ndl[1], ndl[0] ndl[9] += "L" successors += ndl ndr[1], ndr[2] = ndr[2], ndr[1] ndr[9] += "R" successors += ndr elif (empty == 2): ndd = node.copy() ndl = node.copy() ndd[2], ndd[5] = ndd[5], ndd[2] ndd[9] += "D" successors += ndd ndl[1], ndl[2] = ndl[2], ndl[1] ndl[9] += "L" successors += ndl elif (empty == 3): ndu = node.copy() ndd = node.copy() ndr = node.copy() ndu[0], ndu[3] = ndu[3], ndu[0] ndu[9] += "U" successors += ndu ndd[3], ndd[6] = ndd[6], ndd[3] ndd[9] += "D" successors += ndd ndr[3], ndr[4] = ndr[4], ndr[3] ndr[9] += "R" successors += ndr elif (empty == 4): ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() ndu[1], ndu[4] = ndu[4], ndu[1] ndu[9] += "U" successors += ndu ndd[4], ndd[7] = ndd[7], ndd[4] ndd[9] += "D" successors += ndd ndl[3], ndl[4] = ndl[4], ndl[3] ndl[9] += "L" successors += ndl ndr[4], ndr[5] = ndr[5], ndr[4] ndr[9] += "R" successors += ndr elif (empty == 5): ndu = node.copy() ndd = node.copy() ndl = node.copy() ndu[2], ndu[5] = ndu[5], ndu[2] ndu[9] += "U" successors += ndu ndd[5], ndd[8] = ndd[8], ndd[5] ndd[9] += "D" successors += ndd ndl[4], ndl[5] = ndl[5], ndl[4] ndl[9] += "L" successors += ndl elif (empty == 6): ndu = node.copy() ndr = node.copy() ndu[3], ndu[6] = ndu[6], ndu[3] ndu[9] += "U" successors += ndu ndr[6], ndr[7] = ndr[7], ndr[6] ndr[9] += "R" successors += ndr elif (empty == 7): ndu = node.copy() ndl = node.copy() ndr = node.copy() ndu[4], ndu[7] = ndu[7], ndu[4] ndu[9] += "U" successors += ndu ndl[6], ndl[7] = ndl[7], ndl[6] ndl[9] += "L" successors += ndl ndr[7], ndr[8] = ndr[8], ndr[7] ndr[9] += "R" successors += ndr elif (empty == 8): ndu = node.copy() ndl = node.copy() ndu[5], ndu[8] = ndu[8], ndu[5] ndu[9] += "U" successors += ndu ndl[7], ndl[8] = ndl[8], ndl[7] ndl[9] += "L" successors += ndl return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:44) def gen_successors(node): successors = [] #node=[1, 3, 6, 4, 0, 2, 7, 5, 8] block = node.index(0); if (block == 0): ndown = node.copy() nright = node.copy() ndown[0], ndown[3] = ndown[3], ndown[0] ndown[9] += "D" successors += ndown nright[0], nright[1] = nright[1], nright[0] nright[9] += "R" successors += nright elif (block == 1): ndown = node.copy() nleft = node.copy() nright = node.copy() ndown[1], ndown[4] = ndown[4], ndown[1] ndown[9] += "D" successors += ndown nleft[0], nleft[1] = nleft[1], nleft[0] nleft[9] += "L" successors += nleft nright[1], nright[2] = nright[2], nright[1] nright[9] += "R" successors += nright elif (block == 2): ndown = node.copy() nleft = node.copy() ndown[2], ndown[5] = ndown[5], ndown[2] ndown[9] += "D" successors += ndown nleft[1], nleft[2] = nleft[2], nleft[1] nleft[9] += "L" successors += nleft elif (block == 3): nup = node.copy() ndown = node.copy() nright = node.copy() nup[0], nup[3] = nup[3], nup[0] nup[9] += "U" successors += nup ndown[3], ndown[6] = ndown[6], ndown[3] ndown[9] += "D" successors += ndown nright[3], nright[4] = nright[4], nright[3] nright[9] += "R" successors += nright elif (block == 4): nup = node.copy() ndown = node.copy() nleft = node.copy() nright = node.copy() nup[1], nup[4] = nup[4], nup[1] nup[9] += "U" successors += nup ndown[4], ndown[7] = ndown[7], ndown[4] ndown[9] += "D" successors += ndown nleft[3], nleft[4] = nleft[4], nleft[3] nleft[9] += "L" successors += nleft nright[4], nright[5] = nright[5], nright[4] nright[9] += "R" successors += nright elif (block == 5): nup = node.copy() ndown = node.copy() nleft = node.copy() nup[2], nup[5] = nup[5], nup[2] nup[9] += "U" successors += nup ndown[5], ndown[8] = ndown[8], ndown[5] ndown[9] += "D" successors += ndown nleft[4], nleft[5] = nleft[5], nleft[4] nleft[9] += "L" successors += nleft elif (block == 6): nup = node.copy() nright = node.copy() nup[3], nup[6] = nup[6], nup[3] nup[9] += "U" successors += nup nright[6], nright[7] = nright[7], nright[6] nright[9] += "R" successors += nright elif (block == 7): nup = node.copy() nleft = node.copy() nright = node.copy() nup[4], nup[7] = nup[7], nup[4] nup[9] += "U" successors += nup nleft[6], nleft[7] = nleft[7], nleft[6] nleft[9] += "L" successors += nleft nright[7], nright[8] = nright[8], nright[7] nright[9] += "R" successors += nright elif (block == 8): nup = node.copy() nleft = node.copy() nup[5], nup[8] = nup[8], nup[5] nup[9] += "U" successors += nup nleft[7], nleft[8] = nleft[8], nleft[7] nleft[9] += "L" successors += nleft return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:43) def gen_successors(node): successors = [] zero = node.index(0); if (zero == 0): ndd = node.copy() ndr = node.copy() ndd[0], ndd[3] = ndd[3], ndd[0] ndd[9] += "D" successors += ndd ndr[0], ndr[1] = ndr[1], ndr[0] ndr[9] += "R" successors += ndr elif (zero == 1): ndd = node.copy() ndl = node.copy() ndr = node.copy() ndd[1], ndd[4] = ndd[4], ndd[1] ndd[9] += "D" successors += ndd ndl[0], ndl[1] = ndl[1], ndl[0] ndl[9] += "L" successors += ndl ndr[1], ndr[2] = ndr[2], ndr[1] ndr[9] += "R" successors += ndr elif (zero == 2): ndd = node.copy() ndl = node.copy() ndd[2], ndd[5] = ndd[5], ndd[2] ndd[9] += "D" successors += ndd ndl[1], ndl[2] = ndl[2], ndl[1] ndl[9] += "L" successors += ndl elif (zero == 3): ndu = node.copy() ndd = node.copy() ndr = node.copy() ndu[0], ndu[3] = ndu[3], ndu[0] ndu[9] += "U" successors += ndu ndd[3], ndd[6] = ndd[6], ndd[3] ndd[9] += "D" successors += ndd ndr[3], ndr[4] = ndr[4], ndr[3] ndr[9] += "R" successors += ndr elif (zero == 4): ndu = node.copy() ndd = node.copy() ndl = node.copy() ndr = node.copy() ndu[1], ndu[4] = ndu[4], ndu[1] ndu[9] += "U" successors += ndu ndd[4], ndd[7] = ndd[7], ndd[4] ndd[9] += "D" successors += ndd ndl[3], ndl[4] = ndl[4], ndl[3] ndl[9] += "L" successors += ndl ndr[4], ndr[5] = ndr[5], ndr[4] ndr[9] += "R" successors += ndr elif (zero == 5): ndu = node.copy() ndd = node.copy() ndl = node.copy() ndu[2], ndu[5] = ndu[5], ndu[2] ndu[9] += "U" successors += ndu ndd[5], ndd[8] = ndd[8], ndd[5] ndd[9] += "D" successors += ndd ndl[4], ndl[5] = ndl[5], ndl[4] ndl[9] += "L" successors += ndl elif (zero == 6): ndu = node.copy() ndr = node.copy() ndu[3], ndu[6] = ndu[6], ndu[3] ndu[9] += "U" successors += ndu ndr[6], ndr[7] = ndr[7], ndr[6] ndr[9] += "R" successors += ndr elif (zero == 7): ndu = node.copy() ndl = node.copy() ndr = node.copy() ndu[4], ndu[7] = ndu[7], ndu[4] ndu[9] += "U" successors += ndu ndl[6], ndl[7] = ndl[7], ndl[6] ndl[9] += "L" successors += ndl ndr[7], ndr[8] = ndr[8], ndr[7] ndr[9] += "R" successors += ndr elif (zero == 8): ndu = node.copy() ndl = node.copy() ndu[5], ndu[8] = ndu[8], ndu[5] ndu[9] += "U" successors += ndu ndl[7], ndl[8] = ndl[8], ndl[7] ndl[9] += "L" successors += ndl return successors #------------------------------------------

gen_successors: cluster #10 (5)

# 6xxxxxxxx1 (2020-09-19 10:24) def gen_successors(node): successors = [] if 0 in node: a = node.index(0) if a == 0: for i in range(len(node)): #R successors.append(node[i]) successors[0],successors[1] = successors[1],successors[0] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[10],successors[13] = successors[13],successors[10] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 1: for i in range(len(node)): #R successors.append(node[i]) successors[1],successors[2] = successors[2],successors[1] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[11],successors[14] = successors[14],successors[11] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #L successors.append(node[i]) successors[21],successors[20] = successors[20],successors[21] b = successors.pop(-1) successors.append(b+'L') if a == 2: for i in range(len(node)): #L successors.append(node[i]) successors[2],successors[1] = successors[1],successors[2] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[12],successors[15] = successors[15],successors[12] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 3: for i in range(len(node)): #R successors.append(node[i]) successors[3],successors[4] = successors[4],successors[3] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[13],successors[16] = successors[16],successors[13] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[23],successors[20] = successors[20],successors[23] b = successors.pop(-1) successors.append(b+'U') if a == 4: for i in range(len(node)): #R successors.append(node[i]) successors[4],successors[5] = successors[5],successors[4] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[14],successors[17] = successors[17],successors[14] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[24],successors[21] = successors[21],successors[24] b = successors.pop(-1) successors.append(b+'U') for i in range(len(node)): #L successors.append(node[i]) successors[34],successors[33] = successors[33],successors[34] b = successors.pop(-1) successors.append(b+'L') if a == 5: for i in range(len(node)): #L successors.append(node[i]) successors[5],successors[4] = successors[4],successors[5] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[15],successors[18] = successors[18],successors[15] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[25],successors[22] = successors[22],successors[25] b = successors.pop(-1) successors.append(b+'U') if a == 6: for i in range(len(node)): #R successors.append(node[i]) successors[6],successors[7] = successors[7],successors[6] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[16],successors[13] = successors[13],successors[16] b = successors.pop(-1) successors.append(b+'U') if a == 7: for i in range(len(node)): #L successors.append(node[i]) successors[7],successors[6] = successors[6],successors[7] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #R successors.append(node[i]) successors[17],successors[18] = successors[18],successors[17] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[27],successors[24] = successors[24],successors[27] b = successors.pop(-1) successors.append(b+'U') if a == 8: for i in range(len(node)): #L successors.append(node[i]) successors[8],successors[7] = successors[7],successors[8] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #U successors.append(node[i]) successors[18],successors[15] = successors[15],successors[18] b = successors.pop(-1) successors.append(b +'U') return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 12:19) def gen_successors(node): successors = [] if 0 in node: a = node.index(0) if a == 0: for i in range(len(node)): #R successors.append(node[i]) successors[0],successors[1] = successors[1],successors[0] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[10],successors[13] = successors[13],successors[10] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 1: for i in range(len(node)): #R successors.append(node[i]) successors[1],successors[2] = successors[2],successors[1] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[11],successors[14] = successors[14],successors[11] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #L successors.append(node[i]) successors[21],successors[20] = successors[20],successors[21] b = successors.pop(-1) successors.append(b+'L') if a == 2: for i in range(len(node)): #L successors.append(node[i]) successors[2],successors[1] = successors[1],successors[2] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[12],successors[15] = successors[15],successors[12] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 3: for i in range(len(node)): #R successors.append(node[i]) successors[3],successors[4] = successors[4],successors[3] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[13],successors[16] = successors[16],successors[13] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[23],successors[20] = successors[20],successors[23] b = successors.pop(-1) successors.append(b+'U') if a == 4: for i in range(len(node)): #R successors.append(node[i]) successors[4],successors[5] = successors[5],successors[4] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[14],successors[17] = successors[17],successors[14] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[24],successors[21] = successors[21],successors[24] b = successors.pop(-1) successors.append(b+'U') for i in range(len(node)): #L successors.append(node[i]) successors[34],successors[33] = successors[33],successors[34] b = successors.pop(-1) successors.append(b+'L') if a == 5: for i in range(len(node)): #L successors.append(node[i]) successors[5],successors[4] = successors[4],successors[5] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[15],successors[18] = successors[18],successors[15] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[25],successors[22] = successors[22],successors[25] b = successors.pop(-1) successors.append(b+'U') if a == 6: for i in range(len(node)): #R successors.append(node[i]) successors[6],successors[7] = successors[7],successors[6] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[16],successors[13] = successors[13],successors[16] b = successors.pop(-1) successors.append(node[-1]+'U') if a == 7: for i in range(len(node)): #L successors.append(node[i]) successors[7],successors[6] = successors[6],successors[7] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #R successors.append(node[i]) successors[17],successors[18] = successors[18],successors[17] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[27],successors[24] = successors[24],successors[27] b = successors.pop(-1) successors.append(b+'U') if a == 8: for i in range(len(node)): #L successors.append(node[i]) successors[8],successors[7] = successors[7],successors[8] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): successors.append(node[i]) successors[18],successors[15] = successors[15],successors[18] b = successors.pop(-1) successors.append(node[-1]+'U') return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:01) def gen_successors(node): successors = [] if 0 in node: a = node.index(0) if a == 0: for i in range(len(node)): #R successors.append(node[i]) successors[0],successors[1] = successors[1],successors[0] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[10],successors[13] = successors[13],successors[10] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 1: for i in range(len(node)): #R successors.append(node[i]) successors[1],successors[2] = successors[2],successors[1] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[11],successors[14] = successors[14],successors[11] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #L successors.append(node[i]) successors[21],successors[20] = successors[20],successors[21] b = successors.pop(-1) successors.append(b+'L') if a == 2: for i in range(len(node)): #L successors.append(node[i]) successors[2],successors[1] = successors[1],successors[2] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[12],successors[15] = successors[15],successors[12] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 3: for i in range(len(node)): #R successors.append(node[i]) successors[3],successors[4] = successors[4],successors[3] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[13],successors[16] = successors[16],successors[13] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[23],successors[20] = successors[20],successors[23] b = successors.pop(-1) successors.append(b+'U') if a == 4: for i in range(len(node)): #R successors.append(node[i]) successors[4],successors[5] = successors[5],successors[4] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[14],successors[17] = successors[17],successors[14] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[24],successors[21] = successors[21],successors[24] b = successors.pop(-1) successors.append(b+'U') for i in range(len(node)): #L successors.append(node[i]) successors[34],successors[33] = successors[33],successors[34] b = successors.pop(-1) successors.append(b+'L') if a == 5: for i in range(len(node)): #L successors.append(node[i]) successors[5],successors[4] = successors[4],successors[5] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[15],successors[18] = successors[18],successors[15] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[25],successors[22] = successors[22],successors[25] b = successors.pop(-1) successors.append(b+'U') if a == 6: for i in range(len(node)): #R successors.append(node[i]) successors[6],successors[7] = successors[7],successors[6] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[16],successors[13] = successors[13],successors[16] b = successors.pop(-1) successors.append(node[-1]+'U') if a == 7: for i in range(len(node)): #L successors.append(node[i]) successors[7],successors[6] = successors[6],successors[7] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #R successors.append(node[i]) successors[17],successors[18] = successors[18],successors[17] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[27],successors[24] = successors[24],successors[27] b = successors.pop(-1) successors.append(b+'U') if a == 8: for i in range(len(node)): #L successors.append(node[i]) successors[8],successors[7] = successors[7],successors[8] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #U successors.append(node[i]) successors[18],successors[15] = successors[15],successors[18] b = successors.pop(-1) successors.append(node[-1]+'U') return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:46) def gen_successors(node): successors = [] if 0 in node: a = node.index(0) if a == 0: for i in range(len(node)): #R successors.append(node[i]) successors[0],successors[1] = successors[1],successors[0] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[10],successors[13] = successors[13],successors[10] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 1: for i in range(len(node)): #R successors.append(node[i]) successors[1],successors[2] = successors[2],successors[1] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[11],successors[14] = successors[14],successors[11] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #L successors.append(node[i]) successors[21],successors[20] = successors[20],successors[21] b = successors.pop(-1) successors.append(b+'L') if a == 2: for i in range(len(node)): #L successors.append(node[i]) successors[2],successors[1] = successors[1],successors[2] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[12],successors[15] = successors[15],successors[12] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 3: for i in range(len(node)): #R successors.append(node[i]) successors[3],successors[4] = successors[4],successors[3] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[13],successors[16] = successors[16],successors[13] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[23],successors[20] = successors[20],successors[23] b = successors.pop(-1) successors.append(b+'U') if a == 4: for i in range(len(node)): #R successors.append(node[i]) successors[4],successors[5] = successors[5],successors[4] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[14],successors[17] = successors[17],successors[14] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[24],successors[21] = successors[21],successors[24] b = successors.pop(-1) successors.append(b+'U') for i in range(len(node)): #L successors.append(node[i]) successors[34],successors[33] = successors[33],successors[34] b = successors.pop(-1) successors.append(b+'L') if a == 5: for i in range(len(node)): #L successors.append(node[i]) successors[5],successors[4] = successors[4],successors[5] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[15],successors[18] = successors[18],successors[15] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[25],successors[22] = successors[22],successors[25] b = successors.pop(-1) successors.append(b+'U') if a == 6: for i in range(len(node)): #R successors.append(node[i]) successors[6],successors[7] = successors[7],successors[6] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[16],successors[13] = successors[13],successors[16] b = successors.pop(-1) successors.append(node[-1]+'U') if a == 7: for i in range(len(node)): #L successors.append(node[i]) successors[7],successors[6] = successors[6],successors[7] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #R successors.append(node[i]) successors[17],successors[18] = successors[18],successors[17] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[27],successors[24] = successors[24],successors[27] b = successors.pop(-1) successors.append(b+'U') if a == 8: for i in range(len(node)): #L successors.append(node[i]) successors[8],successors[7] = successors[7],successors[8] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #U successors.append(node[i]) successors[18],successors[15] = successors[15],successors[18] b = successors.pop(-1) successors.append(node[-1]+'U') return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:23) def gen_successors(node): successors = [] if 0 in node: a = node.index(0) if a == 0: for i in range(len(node)): #R successors.append(node[i]) successors[0],successors[1] = successors[1],successors[0] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[10],successors[13] = successors[13],successors[10] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 1: for i in range(len(node)): #R successors.append(node[i]) successors[1],successors[2] = successors[2],successors[1] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[11],successors[14] = successors[14],successors[11] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #L successors.append(node[i]) successors[21],successors[20] = successors[20],successors[21] b = successors.pop(-1) successors.append(b+'L') if a == 2: for i in range(len(node)): #L successors.append(node[i]) successors[2],successors[1] = successors[1],successors[2] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[12],successors[15] = successors[15],successors[12] b = successors.pop(-1) successors.append(node[-1]+'D') if a == 3: for i in range(len(node)): #R successors.append(node[i]) successors[3],successors[4] = successors[4],successors[3] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[13],successors[16] = successors[16],successors[13] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[23],successors[20] = successors[20],successors[23] b = successors.pop(-1) successors.append(b+'U') if a == 4: for i in range(len(node)): #R successors.append(node[i]) successors[4],successors[5] = successors[5],successors[4] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #D successors.append(node[i]) successors[14],successors[17] = successors[17],successors[14] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[24],successors[21] = successors[21],successors[24] b = successors.pop(-1) successors.append(b+'U') for i in range(len(node)): #L successors.append(node[i]) successors[34],successors[31] = successors[31],successors[34] b = successors.pop(-1) successors.append(b+'L') if a == 5: for i in range(len(node)): #L successors.append(node[i]) successors[5],successors[6] = successors[6],successors[5] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #D successors.append(node[i]) successors[15],successors[18] = successors[18],successors[15] b = successors.pop(-1) successors.append(b+'D') for i in range(len(node)): #U successors.append(node[i]) successors[25],successors[22] = successors[22],successors[25] b = successors.pop(-1) successors.append(b+'U') if a == 6: for i in range(len(node)): #R successors.append(node[i]) successors[6],successors[7] = successors[7],successors[6] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[16],successors[13] = successors[13],successors[16] b = successors.pop(-1) successors.append(node[-1]+'U') if a == 7: for i in range(len(node)): #L successors.append(node[i]) successors[7],successors[8] = successors[8],successors[7] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #R successors.append(node[i]) successors[17],successors[18] = successors[18],successors[17] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): #U successors.append(node[i]) successors[27],successors[24] = successors[24],successors[27] b = successors.pop(-1) successors.append(b+'U') if a == 8: for i in range(len(node)): #L successors.append(node[i]) successors[8],successors[7] = successors[7],successors[8] b = successors.pop(-1) successors.append(b+'L') for i in range(len(node)): #U successors.append(node[i]) successors[18],successors[15] = successors[15],successors[18] b = successors.pop(-1) successors.append(node[-1]+'U') return successors #------------------------------------------

gen_successors: cluster #11 (3)

# 6xxxxxxxx1 (2020-09-19 16:25) def gen_successors(node): # นีคือจุดที่ต้องทำ (สีเขียว) successors = [] k = 0 for i in range(len(node)-1): if node[i] == 0: if i == 0 or i == 1 or i == 2 or i == 3 or i == 4 or i == 5: a = list(node) aa = a[-1] successors += a successors[successors.index(aa)] += 'D' successors[a.index(0)],successors[a.index(0)+3] = successors[a.index(0)+3],successors[a.index(0)] k += 10 if i == 1 or i == 2 or i == 4 or i == 5 or i == 7 or i == 8: b = list(node) bb = b[-1] successors += b successors[successors.index(bb)] += 'L' successors[b.index(0)+k],successors[b.index(0)+k-1] = successors[b.index(0)+k-1],successors[b.index(0)+k] k += 10 if i == 0 or i == 1 or i == 3 or i == 4 or i == 6 or i == 7: c = list(node) cc = c[-1] successors += c successors[successors.index(cc)] += 'R' successors[c.index(0)+k],successors[c.index(0)+k+1] = successors[c.index(0)+k+1],successors[c.index(0)+k] k += 10 if i-3 >= 0: d = list(node) dd = d[-1] successors += d successors[successors.index(dd)] += 'U' successors[d.index(0)+k],successors[d.index(0)+k-3] = successors[d.index(0)+k-3],successors[d.index(0)+k] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:08) def gen_successors(node): successors = [] x = 0 for i in range(len(node)-1): if node[i] == 0: if i == 0 or i == 1 or i == 2 or i == 3 or i == 4 or i == 5: x1 = list(node) m = x1[-1] successors += x1 successors[successors.index(m)] += 'D' successors[x1.index(0)],successors[x1.index(0)+3] = successors[x1.index(0)+3],successors[x1.index(0)] x += 10 if i == 1 or i == 2 or i == 4 or i == 5 or i == 7 or i == 8: x2 = list(node) n = x2[-1] successors += x2 successors[successors.index(n)] += 'L' successors[x2.index(0)+x],successors[x2.index(0)+x-1] = successors[x2.index(0)+x-1],successors[x2.index(0)+x] x += 10 if i == 0 or i == 1 or i == 3 or i == 4 or i == 6 or i == 7: x3 = list(node) o = x3[-1] successors += x3 successors[successors.index(o)] += 'R' successors[x3.index(0)+x],successors[x3.index(0)+x+1] = successors[x3.index(0)+x+1],successors[x3.index(0)+x] x += 10 if i-3 >= 0: x4 = list(node) p = x4[-1] successors += x4 successors[successors.index(p)] += 'U' successors[x4.index(0)+x],successors[x4.index(0)+x-3] = successors[x4.index(0)+x-3],successors[x4.index(0)+x] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:53) def gen_successors(node): successors = [] k = 0 for i in range(len(node)-1): if node[i] == 0: if i == 0 or i == 1 or i == 2 or i == 3 or i == 4 or i == 5: a = list(node) aa = a[-1] successors += a successors[successors.index(aa)] += 'D' successors[a.index(0)],successors[a.index(0)+3] = successors[a.index(0)+3],successors[a.index(0)] k += 10 if i == 1 or i == 2 or i == 4 or i == 5 or i == 7 or i == 8: b = list(node) bb = b[-1] successors += b successors[successors.index(bb)] += 'L' successors[b.index(0)+k],successors[b.index(0)+k-1] = successors[b.index(0)+k-1],successors[b.index(0)+k] k += 10 if i == 0 or i == 1 or i == 3 or i == 4 or i == 6 or i == 7: c = list(node) cc = c[-1] successors += c successors[successors.index(cc)] += 'R' successors[c.index(0)+k],successors[c.index(0)+k+1] = successors[c.index(0)+k+1],successors[c.index(0)+k] k += 10 if i-3 >= 0: d = list(node) dd = d[-1] successors += d successors[successors.index(dd)] += 'U' successors[d.index(0)+k],successors[d.index(0)+k-3] = successors[d.index(0)+k-3],successors[d.index(0)+k] return successors #------------------------------------------

gen_successors: cluster #12 (2)

# 6xxxxxxxx1 (2020-09-20 22:54) def gen_successors(node): def swap(board, p1, p2): board[p1], board[p2] = board[p2], board[p1] return board successors = [] board = node[:-1] move = node[-1] N = int(len(board)**0.5) for pos, num in enumerate(board): if num == 0: blank = pos moves = [("U", -N), ("D", N)] for m in moves: if 0 <= blank + m[1] <= N**2-1: successors.extend(swap(board.copy(), blank, blank + m[1]) + [move+m[0]]) if blank not in range(0,N**2, N): successors.extend(swap(board.copy(), blank, blank + -1) + [move+"L"]) if blank not in range(N-1,N**2, N): successors.extend(swap(board.copy(), blank, blank + 1) + [move+"R"]) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:46) def gen_successors(node): def swap(board, p1, p2): board[p1], board[p2] = board[p2], board[p1] return board successors = [] board = node[:-1] move = node[-1] N = int(len(board)**0.5) for pos, num in enumerate(board): if num == 0: blank = pos moves = [("U", -N), ("D", N)] for m in moves: if 0 <= blank + m[1] <= N**2-1: successors.extend(swap(board.copy(), blank, blank + m[1]) + [move+m[0]]) if blank not in range(0,N**2, N): successors.extend(swap(board.copy(), blank, blank + -1) + [move+"L"]) if blank not in range(N-1,N**2, N): successors.extend(swap(board.copy(), blank, blank + 1) + [move+"R"]) return successors #------------------------------------------

gen_successors: cluster #13 (3)

# 6xxxxxxxx1 (2020-09-19 16:38) def gen_successors(node): successors = [] node = [1,2,3,0,8,5,4,7,6,"LR"] successors = \ [1,2,3,4,8,5,0,7,6,"LRD", 1,2,3,4,8,5,7,0,6,"LRR", 1,2,3,4,0,5,7,8,6,"LRU", 1,2,3,4,5,0,7,8,6,"LRR", 1,2,3,4,5,6,7,8,0,"LRD", ] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:23) def gen_successors(node): node = [1,2,3,0,8,5,4,7,6,"LR"] successors = \ [1,2,3,4,8,5,0,7,6,"LRD", 1,2,3,4,8,5,7,0,6,"LRR", 1,2,3,4,0,5,7,8,6,"LRU", 1,2,3,4,5,0,7,8,6,"LRR", 1,2,3,4,5,6,7,8,0,"LRD", ] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:39) def gen_successors(node): successors = [] node = [1,2,3,0,8,5,4,7,6,"LR"] successors = \ [1,2,3,4,8,5,0,7,6,"LRD", 1,2,3,4,8,5,7,0,6,"LRR", 1,2,3,4,0,5,7,8,6,"LRU", 1,2,3,4,5,0,7,8,6,"LRR", 1,2,3,4,5,6,7,8,0,"LRD", ] return successors #------------------------------------------

gen_successors: cluster #14 (2)

# 6xxxxxxxx1 (2020-09-20 15:48) def gen_successors(node): successors = [] num = int((len(board))**0.5) i0 = node.index(0) if i0 in range(num,len(board)+1): successor = node[:] successor[i0],successor[i0-num] = successor[i0-num],successor[i0] successors += successor[:] if successor.index(0) in range(0,len(node)+1-num): successors[-1] = successors[-1]+'U' if i0 in range(0,len(board)-num): successor = node[:] successor[i0],successor[i0+num] = successor[i0+num],successor[i0] successors += successor[:] if successor.index(0) in range(num,len(node)+1): successors[-1] = successors[-1]+'D' for i in range(num-1): if i0 in range(i,len(board),num): successor = node[:] successor[i0],successor[i0+1] = successor[i0+1],successor[i0] successors += successor[:] for i in range(num): if successor.index(0) in range(i+1,len(node),num): successors[-1] = successors[-1]+'R' break for i in range(num-1): if i0 in range(i+1,len(node),num): successor = node[:] successor[i0],successor[i0-1] = successor[i0-1],successor[i0] successors += successor[:] for i in range(num): if successor.index(0) in range(i,len(node),num): successors[-1] = successors[-1]+'L' break return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:39) def gen_successors(node): successors = [] order= int((len(board))**0.5) d0 = node.index(0) if d0 in range(order,len(board)+1): successor = node[:] successor[d0],successor[d0-order] = successor[d0-order],successor[d0] successors += successor[:] if successor.index(0) in range(0,len(node)+1-order): successors[-1] = successors[-1]+'U' if d0 in range(0,len(board)-order): successor = node[:] successor[d0],successor[d0+order] = successor[d0+order],successor[d0] successors += successor[:] if successor.index(0) in range(order,len(node)+1): successors[-1] = successors[-1]+'D' for i in range(order-1): if d0 in range(i,len(board),order): successor = node[:] successor[d0],successor[d0+1] = successor[d0+1],successor[d0] successors += successor[:] for i in range(order): if successor.index(0) in range(i+1,len(node),order): successors[-1] = successors[-1]+'R' break for i in range(order-1): if d0 in range(i+1,len(node),order): successor = node[:] successor[d0],successor[d0-1] = successor[d0-1],successor[d0] successors += successor[:] for i in range(order): if successor.index(0) in range(i,len(node),order): successors[-1] = successors[-1]+'L' break return successors #------------------------------------------

gen_successors: cluster #15 (3)

# 6xxxxxxxx1 (2020-09-20 23:04) def gen_successors(node): successors = [] i = node.index(0) if str(i) in '012345': #down y = node[0:-1:] y.remove(0) y.insert(i+2,0) g = y.pop(i+3) y.insert(i,g) y.append(node[-1]+'D') for e in y : successors.append(e) if str(i) in '345678': #up y = node[0:-1:] y.remove(0) y.insert(i-3,0) g = y.pop(i-2) y.insert(i,g) y.append(node[-1]+'U') for e in y : successors.append(e) if str(i) in '124578': #left y = node[0:-1:] y.remove(0) y.insert(i-1,0) y.append(node[-1]+'L') for e in y : successors.append(e) if str(i) in '013467': #right y = node[0:-1:] y.remove(0) y.insert(i+1,0) y.append(node[-1]+'R') for e in y : successors.append(e) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:50) def gen_successors(node): successors = [] i = node.index(0) if str(i) in '012345': #down a = node[0:-1:] a.remove(0) a.insert(i+2,0) b = a.pop(i+3) a.insert(i,b) a.append(node[-1]+'D') for e in a : successors.append(e) if str(i) in '345678': #up a = node[0:-1:] a.remove(0) a.insert(i-3,0) b = a.pop(i-2) a.insert(i,b) a.append(node[-1]+'U') for e in a : successors.append(e) if str(i) in '124578': #left a = node[0:-1:] a.remove(0) a.insert(i-1,0) a.append(node[-1]+'L') for e in a : successors.append(e) if str(i) in '013467': #right a = node[0:-1:] a.remove(0) a.insert(i+1,0) a.append(node[-1]+'R') for e in a : successors.append(e) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:56) def gen_successors(node): successors = [] i = node.index(0) if str(i) in '012345': #down a = node[0:-1:] a.remove(0) a.insert(i+2,0) b = a.pop(i+3) a.insert(i,b) a.append(node[-1]+'D') for e in a : successors.append(e) if str(i) in '345678': #up a = node[0:-1:] a.remove(0) a.insert(i-3,0) b = a.pop(i-2) a.insert(i,b) a.append(node[-1]+'U') for e in a : successors.append(e) if str(i) in '124578': #left a = node[0:-1:] a.remove(0) a.insert(i-1,0) a.append(node[-1]+'L') for e in a : successors.append(e) if str(i) in '013467': #right a = node[0:-1:] a.remove(0) a.insert(i+1,0) a.append(node[-1]+'R') for e in a : successors.append(e) return successors #------------------------------------------

gen_successors: cluster #16 (2)

# 6xxxxxxxx1 (2020-09-20 22:03) def gen_successors(node): successors = [] zero = node.index(0) if zero == 0: for e in 'RD': if e == 'R': successors += [node[zero+1]] + [0] + node[zero+2:-1] + [node[-1]+e] elif e == 'D': successors += [node[zero+3]] + node[1:3] + [0] + node[4:-1] + [node[-1]+e] elif zero == 1: for e in 'RDL': if e == 'D': successors += [node[0]] + [node[4]] + node[2:4] + [0] + node[5:-1] + [node[-1]+e] elif e == 'L': successors += [0] + [node[0]] + node[2:-1] + [node[-1]+e] elif e == 'R': successors += [node[0]] + [node[2]] + [0] + node[3:-1] + [node[-1]+e] elif zero == 2: for e in 'LD': if e == 'L': successors += [node[0]] + [0] + [node[1]] + node[3:-1] + [node[-1]+e] elif e == 'D': successors += node[0:2] + [node[5]] + node[3:5] + [0] + node[6:-1] + [node[-1]+e] elif zero == 3: for e in 'URD': if e == 'U': successors += [0] + node[1:3] + [node[0]] + node[4:-1] + [node[-1]+e] elif e == 'R': successors += node[0:3] + [node[4]] + [0] + node[5:-1] + [node[-1]+e] elif e == 'D': successors += node[0:3] + [node[6]] + node[4:6] + [0] + node[7:-1] + [node[-1]+e] elif zero == 4: for e in 'URDL': if e == 'U': successors += [node[0]] + [0] + node[2:4] + [node[1]] + node[5:-1] + [node[-1]+e] elif e == 'R': successors += node[0:4] + [node[5]] + [0] + node[6:-1] + [node[-1]+e] elif e == 'L': successors += node[0:3] + [0] + [node[3]] + node[5:-1] + [node[-1]+e] elif e == 'D': successors += node[0:4] + [node[7]] + node[5:7] + [0] + [node[8]] + [node[-1]+e] elif zero == 5: for e in 'ULD': if e == 'U': successors += node[0:2] + [0] + node[3:5] + [node[2]] + node[6:-1] + [node[-1]+e] elif e == 'L': successors += node[0:4] + [0] + [node[4]] + node[6:-1] + [node[-1]+e] elif e == 'D': successors += node[0:5] + [node[8]] + node[6:8] + [0] + [node[-1]+e] elif zero == 6: for e in 'UR': if e == 'U': successors += node[0:3] + [0] + node[4:6] + [node[3]] + node[7:-1] + [node[-1]+e] elif e == 'R': successors += node[0:6] + [node[7]] + [0] + [node[8]] + [node[-1]+e] elif zero == 7: for e in 'URL': if e == 'U': successors += node[0:4] + [0] + node[5:7] + [node[4]] + [node[8]] + [node[-1]+e] elif e == 'L': successors += node[0:6] + [0] + [node[6]] + [node[8]] + [node[-1]+e] elif e == 'R': successors += node[0:7] + [node[8]] + [0] + [node[-1]+e] elif zero == 8: for e in 'UL': if e == 'U': successors += node[0:5] + [0] + node[6:8] + [node[5]] + [node[-1]+e] elif e == 'L': successors += node[0:7] + [0] + [node[7]] + [node[-1]+e] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:26) def gen_successors(node): successors = [] zero = node.index(0) if zero == 0: for e in 'RD': if e == 'R': successors += [node[zero+1]] + [0] + node[zero+2:-1] + [node[-1]+e] elif e == 'D': successors += [node[zero+3]] + node[1:3] + [0] + node[4:-1] + [node[-1]+e] elif zero == 1: for e in 'RDL': if e == 'D': successors += [node[0]] + [node[4]] + node[2:4] + [0] + node[5:-1] + [node[-1]+e] elif e == 'L': successors += [0] + [node[0]] + node[2:-1] + [node[-1]+e] elif e == 'R': successors += [node[0]] + [node[2]] + [0] + node[3:-1] + [node[-1]+e] elif zero == 2: for e in 'LD': if e == 'L': successors += [node[0]] + [0] + [node[1]] + node[3:-1] + [node[-1]+e] elif e == 'D': successors += node[0:2] + [node[5]] + node[3:5] + [0] + node[6:-1] + [node[-1]+e] elif zero == 3: for e in 'URD': if e == 'U': successors += [0] + node[1:3] + [node[0]] + node[4:-1] + [node[-1]+e] elif e == 'R': successors += node[0:3] + [node[4]] + [0] + node[5:-1] + [node[-1]+e] elif e == 'D': successors += node[0:3] + [node[6]] + node[4:6] + [0] + node[7:-1] + [node[-1]+e] elif zero == 4: for e in 'URDL': if e == 'U': successors += [node[0]] + [0] + node[2:4] + [node[1]] + node[5:-1] + [node[-1]+e] elif e == 'R': successors += node[0:4] + [node[5]] + [0] + node[6:-1] + [node[-1]+e] elif e == 'L': successors += node[0:3] + [0] + [node[3]] + node[5:-1] + [node[-1]+e] elif e == 'D': successors += node[0:4] + [node[7]] + node[5:7] + [0] + [node[8]] + [node[-1]+e] elif zero == 5: for e in 'ULD': if e == 'U': successors += node[0:2] + [0] + node[3:5] + [node[2]] + node[6:-1] + [node[-1]+e] elif e == 'L': successors += node[0:4] + [0] + [node[4]] + node[6:-1] + [node[-1]+e] elif e == 'D': successors += node[0:5] + [node[8]] + node[6:8] + [0] + [node[-1]+e] elif zero == 6: for e in 'UR': if e == 'U': successors += node[0:3] + [0] + node[4:6] + [node[3]] + node[7:-1] + [node[-1]+e] elif e == 'R': successors += node[0:6] + [node[7]] + [0] + [node[8]] + [node[-1]+e] elif zero == 7: for e in 'URL': if e == 'U': successors += node[0:4] + [0] + node[5:7] + [node[4]] + [node[8]] + [node[-1]+e] elif e == 'L': successors += node[0:6] + [0] + [node[6]] + [node[8]] + [node[-1]+e] elif e == 'R': successors += node[0:7] + [node[8]] + [0] + [node[-1]+e] elif zero == 8: for e in 'UL': if e == 'U': successors += node[0:5] + [0] + node[6:8] + [node[5]] + [node[-1]+e] elif e == 'L': successors += node[0:7] + [0] + [node[7]] + [node[-1]+e] return successors #------------------------------------------

gen_successors: cluster #17 (2)

# 6xxxxxxxx1 (2020-09-20 20:09) def gen_successors(node): successors = [] if node.index(0)==0: successors+=[node[1],0]+node[2:9] successors.append(node[-1]+"R") x=node[:] x[0],x[3]=x[3],x[0] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==1: successors+=node[0:1]+[node[2],0]+node[3:9] successors.append(node[-1]+"R") successors+=[0,node[0]]+node[2:9] successors.append(node[-1]+"L") x=node[:] x[1],x[4]=x[4],x[1] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==2: successors+=node[0:1]+[0,node[1]]+node[3:9] successors.append(node[-1]+"L") x=node[:] x[2],x[5]=x[5],x[2] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==3: x=node[:] x[0],x[3]=x[3],x[0] successors+=x[:-1] successors.append(node[-1]+"U") successors+=node[0:3]+[node[4],0]+node[5:9] successors.append(node[-1]+"R") x=node[:] x[3],x[6]=x[6],x[3] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==4: successors+=node[0:4]+[node[5],0]+node[6:9] successors.append(node[-1]+"R") successors+=node[0:3]+[0,node[3]]+node[5:9] successors.append(node[-1]+"L") x=node[:] x[1],x[4]=x[4],x[1] successors+=x[:-1] successors.append(node[-1]+"U") x=node[:] x[4],x[7]=x[7],x[4] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==5: successors+=node[0:4]+[0,node[4]]+node[6:9] successors.append(node[-1]+"L") x=node[:] x[2],x[5]=x[5],x[2] successors+=x[:-1] successors.append(node[-1]+"U") x=node[:] x[5],x[8]=x[8],x[5] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==6: successors+=node[0:6]+[node[7],0]+node[8:9] successors.append(node[-1]+"R") x=node[:] x[3],x[6]=x[6],x[3] successors+=x[:-1] successors.append(node[-1]+"U") elif node.index(0)==7: successors+=node[0:7]+[node[8],0] successors.append(node[-1]+"R") successors+=node[0:6]+[0,node[6]]+node[8:9] successors.append(node[-1]+"L") x=node[:] x[4],x[7]=x[7],x[4] successors+=x[:-1] successors.append(node[-1]+"U") elif node.index(0)==8: successors+=node[0:7]+[0,node[7]] successors.append(node[-1]+"L") x=node[:] x[5],x[8]=x[8],x[5] successors+=x[:-1] successors.append(node[-1]+"U") return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:42) def gen_successors(node): successors = [] if node.index(0)==0: successors+=[node[1],0]+node[2:9] successors.append(node[-1]+"R") x=node[:] x[0],x[3]=x[3],x[0] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==1: successors+=node[0:1]+[node[2],0]+node[3:9] successors.append(node[-1]+"R") successors+=[0,node[0]]+node[2:9] successors.append(node[-1]+"L") x=node[:] x[1],x[4]=x[4],x[1] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==2: successors+=node[0:1]+[0,node[1]]+node[3:9] successors.append(node[-1]+"L") x=node[:] x[2],x[5]=x[5],x[2] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==3: x=node[:] x[0],x[3]=x[3],x[0] successors+=x[:-1] successors.append(node[-1]+"U") successors+=node[0:3]+[node[4],0]+node[5:9] successors.append(node[-1]+"R") x=node[:] x[3],x[6]=x[6],x[3] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==4: successors+=node[0:4]+[node[5],0]+node[6:9] successors.append(node[-1]+"R") successors+=node[0:3]+[0,node[3]]+node[5:9] successors.append(node[-1]+"L") x=node[:] x[1],x[4]=x[4],x[1] successors+=x[:-1] successors.append(node[-1]+"U") x=node[:] x[4],x[7]=x[7],x[4] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==5: successors+=node[0:4]+[0,node[4]]+node[6:9] successors.append(node[-1]+"L") x=node[:] x[2],x[5]=x[5],x[2] successors+=x[:-1] successors.append(node[-1]+"U") x=node[:] x[5],x[8]=x[8],x[5] successors+=x[:-1] successors.append(node[-1]+"D") elif node.index(0)==6: successors+=node[0:6]+[node[7],0]+node[8:9] successors.append(node[-1]+"R") x=node[:] x[3],x[6]=x[6],x[3] successors+=x[:-1] successors.append(node[-1]+"U") elif node.index(0)==7: successors+=node[0:7]+[node[8],0] successors.append(node[-1]+"R") successors+=node[0:6]+[0,node[6]]+node[8:9] successors.append(node[-1]+"L") x=node[:] x[4],x[7]=x[7],x[4] successors+=x[:-1] successors.append(node[-1]+"U") elif node.index(0)==8: successors+=node[0:7]+[0,node[7]] successors.append(node[-1]+"L") x=node[:] x[5],x[8]=x[8],x[5] successors+=x[:-1] successors.append(node[-1]+"U") return successors #------------------------------------------

gen_successors: cluster #18 (5)

# 6xxxxxxxx1 (2020-09-20 21:47) def gen_successors(node): successors = [] # print(node) index = node.index(0) movement = ["U","R","L","D"] if index + 1 > 8: movement.remove("R") if index - 1 < 0: movement.remove("L") if index + 3 > 8: movement.remove("D") if index - 3 < 0: movement.remove("U") Unode = node.copy() Dnode = node.copy() Lnode = node.copy() Rnode = node.copy() for i in movement: if i == "U": temp = Unode[index - 3] Unode[index - 3] = Unode[index] Unode[index] = temp Unode[-1] = Unode[-1] + "U" successors = successors + Unode elif i == "D": temp = Dnode[index + 3] Dnode[index + 3] = Dnode[index] Dnode[index] = temp Dnode[-1] = Dnode[-1] + "D" successors = successors + Dnode elif i == "L": temp = Lnode[index - 1] Lnode[index - 1] = Lnode[index] Lnode[index] = temp Lnode[-1] = Lnode[-1] + "L" successors = successors + Lnode elif i == "R": temp = Rnode[index + 1] Rnode[index + 1] = Rnode[index] Rnode[index] = temp Rnode[-1] = Lnode[-1] + "R" successors = successors + Rnode return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:52) def gen_successors(node): successors = [] # print(node) index = node.index(0) movement = ["U","R","L","D"] if index + 1 > 8: movement.remove("R") if index - 1 < 0: movement.remove("L") if index + 3 > 8: movement.remove("D") if index - 3 < 0: movement.remove("U") Unode = node.copy() Dnode = node.copy() Lnode = node.copy() Rnode = node.copy() for i in movement: if i == "U": temp = Unode[index - 3] Unode[index - 3] = Unode[index] Unode[index] = temp Unode[-1] = Unode[-1] + "U" successors = successors + Unode elif i == "D": temp = Dnode[index + 3] Dnode[index + 3] = Dnode[index] Dnode[index] = temp Dnode[-1] = Dnode[-1] + "D" successors = successors + Dnode elif i == "L": temp = Lnode[index - 1] Lnode[index - 1] = Lnode[index] Lnode[index] = temp Lnode[-1] = Lnode[-1] + "L" successors = successors + Lnode elif i == "R": temp = Rnode[index + 1] Rnode[index + 1] = Rnode[index] Rnode[index] = temp Rnode[-1] = Lnode[-1] + "R" successors = successors + Rnode return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:05) def gen_successors(node): successors = [] index = node.index(0) movement = ["U","R","L","D"] if index + 1 > 8: movement.remove("R") if index - 1 < 0: movement.remove("L") if index + 3 > 8: movement.remove("D") if index - 3 < 0: movement.remove("U") Unode = node.copy() Dnode = node.copy() Lnode = node.copy() Rnode = node.copy() for i in movement: if i == "U": temp = Unode[index - 3] Unode[index - 3] = Unode[index] Unode[index] = temp Unode[-1] = Unode[-1] + "U" successors = successors + Unode elif i == "D": temp = Dnode[index + 3] Dnode[index + 3] = Dnode[index] Dnode[index] = temp Dnode[-1] = Dnode[-1] + "D" successors = successors + Dnode elif i == "L": temp = Lnode[index - 1] Lnode[index - 1] = Lnode[index] Lnode[index] = temp Lnode[-1] = Lnode[-1] + "L" successors = successors + Lnode elif i == "R": temp = Rnode[index + 1] Rnode[index + 1] = Rnode[index] Rnode[index] = temp Rnode[-1] = Lnode[-1] + "R" successors = successors + Rnode return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:10) def gen_successors(node): successors = [] index = node.index(0) movement = ["U","R","L","D"] if index + 1 > 8: movement.remove("R") if index - 1 < 0: movement.remove("L") if index + 3 > 8: movement.remove("D") if index - 3 < 0: movement.remove("U") Unode = node.copy() Dnode = node.copy() Lnode = node.copy() Rnode = node.copy() for i in movement: if i == "U": temp = Unode[index - 3] Unode[index - 3] = Unode[index] Unode[index] = temp Unode[-1] = Unode[-1] + "U" successors = successors + Unode elif i == "D": temp = Dnode[index + 3] Dnode[index + 3] = Dnode[index] Dnode[index] = temp Dnode[-1] = Dnode[-1] + "D" successors = successors + Dnode elif i == "L": temp = Lnode[index - 1] Lnode[index - 1] = Lnode[index] Lnode[index] = temp Lnode[-1] = Lnode[-1] + "L" successors = successors + Lnode elif i == "R": temp = Rnode[index + 1] Rnode[index + 1] = Rnode[index] Rnode[index] = temp Rnode[-1] = Lnode[-1] + "R" successors = successors + Rnode return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:15) def gen_successors(node): successors = [ ] # print(node) index = node.index(0) movement = ["U","R","L","D"] if index + 1 > 8: movement.remove("R") if index - 1 < 0: movement.remove("L") if index + 3 > 8: movement.remove("D") if index - 3 < 0: movement.remove("U") Unode = node.copy() Dnode = node.copy() Lnode = node.copy() Rnode = node.copy() for i in movement: if i == "U": temp = Unode[index - 3] Unode[index - 3] = Unode[index] Unode[index] = temp Unode[-1] = Unode[-1] + "U" successors = successors + Unode elif i == "D": temp = Dnode[index + 3] Dnode[index + 3] = Dnode[index] Dnode[index] = temp Dnode[-1] = Dnode[-1] + "D" successors = successors + Dnode elif i == "L": temp = Lnode[index - 1] Lnode[index - 1] = Lnode[index] Lnode[index] = temp Lnode[-1] = Lnode[-1] + "L" successors = successors + Lnode elif i == "R": temp = Rnode[index + 1] Rnode[index + 1] = Rnode[index] Rnode[index] = temp Rnode[-1] = Lnode[-1] + "R" successors = successors + Rnode return successors #------------------------------------------

gen_successors: cluster #19 (2)

# 6xxxxxxxx1 (2020-09-20 23:32) def gen_successors(node): successors = [] a = 0 k = '' M = 0 while k != 0 : k = node[a] a = a+1 if a == 1 : M = 2 x1 = 'R' x2 = [] y1 = [] y2 = 'D' R = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] #0 1 L = [] U = [] D = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'D'] #0 3 elif a == 2 : M = 3 x1 = 'R' x2 = 'L' y1 = '' y2 = 'D' R = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] #1 2 L = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] #1 0 U = [] D = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'D'] #1 4 elif a == 3 : M = 3 x1 = '' x2 = 'L' y1 = '' y2 = 'D' R = [] L = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] #2 1 U = [] D = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'D'] #2 5 elif a == 4 : M = 3 x1 = 'R' x2 = '' y1 = 'U' y2 = 'D' R = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'R'] #3 4 L = [] U = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'U'] #3 0 D = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'D'] #3 6 elif a == 5 : M = 3 x1 = 'R' x2 = 'L' y1 = 'U' y2 = 'D' R = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'R'] #4 5 L = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'L'] #4 3 U = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'U'] #4 1 D = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'D'] #4 7 elif a == 6 : M = 3 x1 = '' x2 = 'L' y1 = 'U' y2 = 'D' R = [] L = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'L'] #5 4 U = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'U'] #5 2 D = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'D'] #5 8 elif a == 7 : M = 2 x1 = 'R' x2 = '' y1 = 'U' y2 = '' R = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'R'] #6 7 L = [] U = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'U'] #6 3 D = [] elif a == 8 : M = 3 x1 = 'R' x2 = 'L' y1 = 'U' y2 = '' R = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'R'] #7 8 L = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'L'] #7 6 U = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'U'] #7 4 D = [] elif a == 9 : M = 2 x1 = '' x2 = 'L' y1 = 'U' y2 = '' R = [] L = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'L'] #8 7 U = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'U'] #8 5 D = [] else : pass successors = U+D+L+R return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:53) def gen_successors(node): successors = [] a = 0 k = '' M = 0 while k != 0 : k = node[a] a = a+1 if a == 1 : M = 2 x1 = 'R' x2 = [] y1 = [] y2 = 'D' R = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] #0 1 L = [] U = [] D = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'D'] #0 3 elif a == 2 : M = 3 x1 = 'R' x2 = 'L' y1 = '' y2 = 'D' R = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] #1 2 L = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] #1 0 U = [] D = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'D'] #1 4 elif a == 3 : M = 3 x1 = '' x2 = 'L' y1 = '' y2 = 'D' R = [] L = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] #2 1 U = [] D = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'D'] #2 5 elif a == 4 : M = 3 x1 = 'R' x2 = '' y1 = 'U' y2 = 'D' R = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'R'] #3 4 L = [] U = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'U'] #3 0 D = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'D'] #3 6 elif a == 5 : M = 3 x1 = 'R' x2 = 'L' y1 = 'U' y2 = 'D' R = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'R'] #4 5 L = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'L'] #4 3 U = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'U'] #4 1 D = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'D'] #4 7 elif a == 6 : M = 3 x1 = '' x2 = 'L' y1 = 'U' y2 = 'D' R = [] L = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'L'] #5 4 U = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'U'] #5 2 D = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'D'] #5 8 elif a == 7 : M = 2 x1 = 'R' x2 = '' y1 = 'U' y2 = '' R = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'R'] #6 7 L = [] U = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'U'] #6 3 D = [] elif a == 8 : M = 3 x1 = 'R' x2 = 'L' y1 = 'U' y2 = '' R = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'R'] #7 8 L = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'L'] #7 6 U = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'U'] #7 4 D = [] elif a == 9 : M = 2 x1 = '' x2 = 'L' y1 = 'U' y2 = '' R = [] L = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'L'] #8 7 U = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'U'] #8 5 D = [] else : pass successors = R+L+U+D return successors #------------------------------------------

gen_successors: cluster #20 (2)

# 6xxxxxxxx1 (2020-09-19 11:51) def gen_successors(node): successors = [] # find N (math.sqrt(node)) N = 1 while N*N != len(node)-1: N += 1 empty = node.index(0); status = {"top":False, "bottom":False, "left":False, "right":False} # check side # top if 0 <= empty <= N-1: status["top"] = True # bottom if N*(N-1) <= empty <= (N*N)-1: status["bottom"] = True # left if empty%N == 0: status["left"] = True # right if (empty+1)%N == 0: status["right"] = True # create permutation # up if not status["top"]: nu = node.copy() nu[empty], nu[empty-N] = nu[empty-N], nu[empty] nu[len(nu)-1] += "U" successors += nu # down if not status["bottom"]: nd = node.copy() nd[empty], nd[empty+N] = nd[empty+N], nd[empty] nd[len(nd)-1] += "D" successors += nd # left if not status["left"]: nl = node.copy() nl[empty], nl[empty-1] = nl[empty-1], nl[empty] nl[len(nl)-1] += "L" successors += nl # right if not status["right"]: nr = node.copy() nr[empty], nr[empty+1] = nr[empty+1], nr[empty] nr[len(nr)-1] += "R" successors += nr return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 14:26) def gen_successors(node): successors = [] N = 1 while N*N != len(node)-1: N += 1 collect = node.index(0) status = {"top":False, "bottom":False, "left":False, "right":False} if 0 <= collect <= N-1: #top status["top"] = True if N*(N-1) <= collect <= (N*N)-1: #bottom status["bottom"] = True if collect % N == 0: #left status["left"] = True if (collect+1)%N == 0: #right status["right"] = True # up if not status["top"]: nu = node.copy() nu[collect], nu[collect-N] = nu[collect-N], nu[collect] nu[len(nu)-1] += "U" successors += nu # down if not status["bottom"]: nd = node.copy() nd[collect], nd[collect+N] = nd[collect+N], nd[collect] nd[len(nd)-1] += "D" successors += nd # left if not status["left"]: nl = node.copy() nl[collect], nl[collect-1] = nl[collect-1], nl[collect] nl[len(nl)-1] += "L" successors += nl # right if not status["right"]: nr = node.copy() nr[collect], nr[collect+1] = nr[collect+1], nr[collect] nr[len(nr)-1] += "R" successors += nr return successors #------------------------------------------

gen_successors: cluster #21 (2)

# 6xxxxxxxx1 (2020-09-19 23:31) def gen_successors(node): successors = [] coco = node[0:-1] nut = node[-1] size = int(len(coco)**(1/2)) check = [] if coco.index(0) == 0 : check.append("r") check.append("d") elif coco.index(0) == size-1 : check.append("l") check.append("d") elif coco.index(0) == (size**2)-size : check.append("u") check.append("r") elif coco.index(0) == (size**2)-1 : check.append("u") check.append("l") elif 0 < coco.index(0) < size-1 : check.append("d") check.append("l") check.append("r") elif coco.index(0)%size == 0 : check.append("r") check.append("u") check.append("d") elif coco.index(0)%size == size-1 : check.append("l") check.append("d") check.append("u") elif (size**2)-size < coco.index(0) < (size**2)-1 : check.append("l") check.append("r") check.append("u") else : check.append("l") check.append("r") check.append("u") check.append("d") for e in check : temp=list(coco) if e == "r" : temp[coco.index(0)],temp[coco.index(0)+1]=temp[coco.index(0)+1],temp[coco.index(0)] temp.append(nut+"R") elif e == "l" : temp[coco.index(0)-1],temp[coco.index(0)]=temp[coco.index(0)],temp[coco.index(0)-1] temp.append(nut+"L") elif e == "u" : temp[coco.index(0)-size],temp[coco.index(0)]=temp[coco.index(0)],temp[coco.index(0)-size] temp.append(nut+"U") elif e == "d" : temp[coco.index(0)],temp[coco.index(0)+size]=temp[coco.index(0)+size],temp[coco.index(0)] temp.append(nut+"D") for x in temp : successors.append(x) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 13:55) def gen_successors(node): successors = [] coco = node[0:-1] nut = node[-1] size = int(len(coco)**(1/2)) check = [] if coco.index(0) == 1 : check.append("r") check.append("d") elif coco.index(0) == size-2 : check.append("l") check.append("d") elif coco.index(0) == (size**2)-size : check.append("u") check.append("r") elif coco.index(0) == (size**2)-1 : check.append("u") check.append("l") elif 0 < coco.index(0) < size-2 : check.append("d") check.append("l") check.append("r") elif coco.index(0)%size == 0 : check.append("r") check.append("u") check.append("d") elif coco.index(0)%size == size-3 : check.append("l") check.append("d") check.append("u") elif (size**2)-size < coco.index(0) < (size**2)-1 : check.append("l") check.append("r") check.append("u") else : check.append("l") check.append("r") check.append("u") check.append("d") for e in check : temp=list(coco) if e == "r" : temp[coco.index(0)],temp[coco.index(0)+1]=temp[coco.index(0)+1],temp[coco.index(0)] temp.append(nut+"R") elif e == "l" : temp[coco.index(0)-1],temp[coco.index(0)]=temp[coco.index(0)],temp[coco.index(0)-1] temp.append(nut+"L") elif e == "u" : temp[coco.index(0)-size],temp[coco.index(0)]=temp[coco.index(0)],temp[coco.index(0)-size] temp.append(nut+"U") elif e == "d" : temp[coco.index(0)],temp[coco.index(0)+size]=temp[coco.index(0)+size],temp[coco.index(0)] temp.append(nut+"D") for x in temp : successors.append(x) return successors #------------------------------------------

gen_successors: cluster #22 (2)

# 6xxxxxxxx1 (2020-09-20 22:56) def gen_successors(node): successors = [] d = [] a = node[-1] node = node[0:-1] if node.index(0) == 0: d.append("R") d.append("D") elif node.index(0) == 1: d.append("L") d.append("D") d.append("R") elif node.index(0) == 2: d.append("L") d.append("D") elif node.index(0) == 3: d.append("R") d.append("U") d.append("D") elif node.index(0) == 4: d.append("R") d.append("D") d.append("U") d.append("L") elif node.index(0) == 5: d.append("L") d.append("D") d.append("U") elif node.index(0) == 6: d.append("R") d.append("U") elif node.index(0) == 7: d.append("R") d.append("U") d.append("L") elif node.index(0) == 8: d.append("L") d.append("U") for e in d : b=list(node) if e == "L": b[node.index(0)-1],b[node.index(0)]=b[node.index(0)],b[node.index(0)-1] b.append(a+"L") elif e == "R": b[node.index(0)+1],b[node.index(0)]=b[node.index(0)],b[node.index(0)+1] b.append(a+"R") elif e == "U": b[node.index(0)-3],b[node.index(0)]=b[node.index(0)],b[node.index(0)-3] b.append(a+"U") elif e == "D": b[node.index(0)+3],b[node.index(0)]=b[node.index(0)],b[node.index(0)+3] b.append(a+"D") for r in b : successors.append(r) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:04) def gen_successors(node): successors = [] d = [] a = node[-1] node = node[0:-1] if node.index(0) == 0: d.append("D") d.append("R") elif node.index(0) == 1: d.append("L") d.append("D") d.append("R") elif node.index(0) == 2: d.append("L") d.append("D") elif node.index(0) == 3: d.append("R") d.append("D") d.append("U") elif node.index(0) == 4: d.append("R") d.append("D") d.append("U") d.append("L") elif node.index(0) == 5: d.append("L") d.append("D") d.append("U") elif node.index(0) == 6: d.append("R") d.append("U") elif node.index(0) == 7: d.append("R") d.append("U") d.append("L") elif node.index(0) == 8: d.append("L") d.append("U") for e in d : b=list(node) if e == "L": b[node.index(0)-1],b[node.index(0)]=b[node.index(0)],b[node.index(0)-1] b.append(a+"L") elif e == "R": b[node.index(0)+1],b[node.index(0)]=b[node.index(0)],b[node.index(0)+1] b.append(a+"R") elif e == "U": b[node.index(0)-3],b[node.index(0)]=b[node.index(0)],b[node.index(0)-3] b.append(a+"U") elif e == "D": b[node.index(0)+3],b[node.index(0)]=b[node.index(0)],b[node.index(0)+3] b.append(a+"D") for r in b : successors.append(r) return successors #------------------------------------------

gen_successors: cluster #23 (5)

# 6xxxxxxxx1 (2020-09-20 12:04) def gen_successors(node): successors = [] A = len(board) a = int(A**(1/2)) p = node.index(0) n = node[:-1] b1 = list(n) b2 = list(n) b3 = list(n) b4 = list(n) if p < a : if p == 0: b1[p],b1[p+1] = b1[p+1],b1[p] successors += b1+[node[-1]+'R'] b2[p],b2[p+a] = b2[p+a],b2[p] successors += b2+[node[-1]+'D'] elif p == a-1: b1[p],b1[p-1] = b1[p-1],b1[p] successors += b1+[node[-1]+'L'] b2[p],b2[p+a] = b2[p+a],b2[p] successors += b2+[node[-1]+'D'] else : b1[p],b1[p+1] = b1[p+1],b1[p] successors += b1+[node[-1]+'R'] b2[p],b2[p-1] = b2[p-1],b2[p] successors += b2+[node[-1]+'L'] b3[p],b3[p+a] = b3[p+a],b3[p] successors += b3+[node[-1]+'D'] elif p > A-a-1 : if p%a == 0: b1[p],b1[p+1] = b1[p+1],b1[p] successors += b1+[node[-1]+'R'] b2[p],b2[p-a] = b2[p-a],b2[p] successors += b2+[node[-1]+'U'] elif p == A-1 : b1[p],b1[p-1] = b1[p-1],b1[p] successors += b1+[node[-1]+'L'] b2[p],b2[p-a] = b2[p-a],b2[p] successors += b2+[node[-1]+'U'] else : b1[p],b1[p+1] = b1[p+1],b1[p] successors += b1+[node[-1]+'R'] b2[p],b2[p-1] = b2[p-1],b2[p] successors += b2+[node[-1]+'L'] b3[p],b3[p-a] = b3[p-a],b3[p] successors += b3+[node[-1]+'U'] elif p%a == 0: b1[p],b1[p+1] = b1[p+1],b1[p] successors += b1+[node[-1]+'R'] b2[p],b2[p-a] = b2[p-a],b2[p] successors += b2+[node[-1]+'U'] b3[p],b3[p+a] = b3[p+a],b3[p] successors += b3+[node[-1]+'D'] elif (p+1)%a == 0: b1[p],b1[p-1] = b1[p-1],b1[p] successors += b1+[node[-1]+'L'] b2[p],b2[p-a] = b2[p-a],b2[p] successors += b2+[node[-1]+'U'] b3[p],b3[p+a] = b3[p+a],b3[p] successors += b3+[node[-1]+'D'] else : b1[p],b1[p-1] = b1[p-1],b1[p] successors += b1+[node[-1]+'L'] b2[p],b2[p-a] = b2[p-a],b2[p] successors += b2+[node[-1]+'U'] b3[p],b3[p+a] = b3[p+a],b3[p] successors += b3+[node[-1]+'D'] b4[p],b4[p+1] = b4[p+1],b4[p] successors += b4+[node[-1]+'R'] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:05) def gen_successors(node): successors = [] A = len(board) a = int(sqrt(A)) B = node.index(0) n = node[:-1] c1 = list(n) c2 = list(n) c3 = list(n) c4 = list(n) if B < a : if B == 0 : c1[B],c1[B+1] = c1[B+1],c1[B] successors += c1 + [node[-1]+'R'] c2[B],c2[B+a] = c2[B+a],c2[B] successors += c2 + [node[-1]+'D'] elif B == a-1 : c1[B],c1[B-1] = c1[B-1],c1[B] successors += c1 + [node[-1]+'L'] c2[B],c2[B+a] = c2[B+a],c2[B] successors += c2 + [node[-1]+'D'] else : c1[B],c1[B+1] = c1[B+1],c1[B] successors += c1 + [node[-1]+'R'] c2[B],c2[B-1] = c2[B-1],c2[B] successors += c2 + [node[-1]+'L'] c3[B],c3[B+a] = c3[B+a],c3[B] successors += c3 + [node[-1]+'D'] elif B > A-a-1 : if B%a == 0 : c1[B],c1[B+1] = c1[B+1],c1[B] successors += c1 + [node[-1]+'R'] c2[B],c2[B-a] = c2[B-a],c2[B] successors += c2 + [node[-1]+'U'] elif B == A-1 : c1[B],c1[B-1] = c1[B-1],c1[B] successors += c1 + [node[-1]+'L'] c2[B],c2[B-a] = c2[B-a],c2[B] successors += c2 + [node[-1]+'U'] else : c1[B],c1[B+1] = c1[B+1],c1[B] successors += c1 + [node[-1]+'R'] c2[B],c2[B-1] = c2[B-1],c2[B] successors += c2 + [node[-1]+'L'] c3[B],c3[B-a] = c3[B-a],c3[B] successors += c3 + [node[-1]+'U'] elif B%a == 0 : c1[B],c1[B+1] = c1[B+1],c1[B] successors += c1 + [node[-1]+'R'] c2[B],c2[B-a] = c2[B-a],c2[B] successors += c2 + [node[-1]+'U'] c3[B],c3[B+a] = c3[B+a],c3[B] successors += c3 + [node[-1]+'D'] elif (B+1)%a == 0 : c1[B],c1[B-1] = c1[B-1],c1[B] successors += c1 + [node[-1]+'L'] c2[B],c2[B-a] = c2[B-a],c2[B] successors += c2 + [node[-1]+'U'] c3[B],c3[B+a] = c3[B+a],c3[B] successors += c3 + [node[-1]+'D'] else : c1[B],c1[B+1] = c1[B+1],c1[B] successors += c1 + [node[-1]+'R'] c2[B],c2[B-1] = c2[B-1],c2[B] successors += c2 + [node[-1]+'L'] c3[B],c3[B-a] = c3[B-a],c3[B] successors += c3 + [node[-1]+'U'] c4[B],c4[B+a] = c4[B+a],c4[B] successors += c4 + [node[-1]+'D'] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:13) def gen_successors(node): successors = [] L = len(board) n = int(L**0.5) ps = node.index(0) node1 = node[:-1] a1 = list(node1) a2 = list(node1) a3 = list(node1) a4 = list(node1) if ps < n : if ps == 0: a1[ps],a1[ps+1] = a1[ps+1],a1[ps] successors +=a1+[node[-1]+'R'] a2[ps],a2[ps+n] = a2[ps+n],a2[ps] successors += a2+[node[-1]+'D'] elif ps == n-1: a1[ps],a1[ps-1] = a1[ps-1],a1[ps] successors += a1+[node[-1]+'L'] a2[ps],a2[ps+n] =a2[ps+n],a2[ps] successors += a2+[node[-1]+'D'] else : a1[ps],a1[ps+1] =a1[ps+1],a1[ps] successors +=a1+[node[-1]+'R'] a2[ps],a2[ps-1] = a2[ps-1],a2[ps] successors += a2+[node[-1]+'L'] a3[ps],a3[ps+n] =a3[ps+n],a3[ps] successors +=a3+[node[-1]+'D'] elif ps > L-n-1 : if ps%n == 0: a1[ps],a1[ps+1] =a1[ps+1],a1[ps] successors += a1+[node[-1]+'R'] a2[ps],a2[ps-n] =a2[ps-n],a2[ps] successors += a2+[node[-1]+'U'] elif ps == L-1 : a1[ps],a1[ps-1] = a1[ps-1],a1[ps] successors += a1+[node[-1]+'L'] a2[ps],a2[ps-n] = a2[ps-n],a2[ps] successors += a2+[node[-1]+'U'] else : a1[ps],a1[ps+1] = a1[ps+1],a1[ps] successors += a1+[node[-1]+'R'] a2[ps],a2[ps-1] = a2[ps-1],a2[ps] successors += a2+[node[-1]+'L'] a3[ps],a3[ps-n] =a3[ps-n],a3[ps] successors +=a3+[node[-1]+'U'] elif ps%n == 0: a1[ps],a1[ps+1] = a1[ps+1],a1[ps] successors += a1+[node[-1]+'R'] a2[ps],a2[ps-n] = a2[ps-n],a2[ps] successors += a2+[node[-1]+'U'] a3[ps],a3[ps+n] = a3[ps+n],a3[ps] successors += a3+[node[-1]+'D'] elif (ps+1)%n == 0: a1[ps],a1[ps-1] = a1[ps-1],a1[ps] successors += a1+[node[-1]+'L'] a2[ps],a2[ps-n] = a2[ps-n],a2[ps] successors += a2+[node[-1]+'U'] a3[ps],a3[ps+n] = a3[ps+n],a3[ps] successors += a3+[node[-1]+'D'] else : a1[ps],a1[ps-1] = a1[ps-1],a1[ps] successors += a1+[node[-1]+'L'] a2[ps],a2[ps-n] = a2[ps-n],a2[ps] successors += a2+[node[-1]+'U'] a3[ps],a3[ps+n] = a3[ps+n],a3[ps] successors += a3+[node[-1]+'D'] a4[ps],a4[ps+1] = a4[ps+1],a4[ps] successors += a4+[node[-1]+'R'] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:37) def gen_successors(node): successors = [] x = len(board) n = int(x**(1/2)) y = node.index(0) z = node[:-1] a1 = list(z) a2 = list(z) a3 = list(z) a4 = list(z) if y < n : if y == n-1: a1[y],a1[y-1] = a1[y-1],a1[y] successors += a1+[node[-1]+'L'] a2[y],a2[y+n] = a2[y+n],a2[y] successors += a2+[node[-1]+'D'] elif y == 0: a1[y], a1[y+1] = a1[y+1], a1[y] successors += a1+[node[-1]+'R'] a2[y], a2[y+n] = a2[y+n],a2[y] successors += a1+[node[-1]+'D'] else : a1[y],a1[y+1] = a1[y+1],a1[y] successors += a1+[node[-1]+'R'] a2[y],a2[y-1] = a2[y-1],a2[y] successors += a2+[node[-1]+'L'] a3[y],a3[y+n] = a3[y+n],a3[y] successors += a3+[node[-1]+'D'] elif y > x-n-1 : if y == x-1 : a1[y],a1[y-1] = a1[y-1],a1[y] successors += a1+[node[-1]+'L'] a2[y],a2[y-n] = a2[y-n],a2[y] successors += a2+[node[-1]+'U'] elif y%n == 0: a1[y],a1[y+1] = a1[y+1],a1[y] successors += a1+[node[-1]+'R'] a2[y],a2[y-n] = a2[y-n],a2[y] successors += a2+[node[-1]+'U'] else : a1[y],a1[y+1] = a1[y+1],a1[y] successors += a1+[node[-1]+'R'] a2[y],a2[y-1] = a2[y-1],a2[y] successors += a2+[node[-1]+'L'] a3[y],a3[y-n] = a3[y-n],a3[y] successors += a3+[node[-1]+'U'] elif (y+1)%n == 0: a1[y],a1[y-1] = a1[y-1],a1[y] successors += a1+[node[-1]+'L'] a2[y],a2[y-n] = a2[y-n],a2[y] successors += a2+[node[-1]+'U'] a3[y],a3[y+n] = a3[y+n],a3[y] successors += a3+[node[-1]+'D'] elif y%n == 0: a1[y],a1[y+1] = a1[y+1],a1[y] successors += a1+[node[-1]+'R'] a2[y],a2[y-n] = a2[y-n],a2[y] successors += a2+[node[-1]+'U'] a3[y],a3[y+n] = a3[y+n],a3[y] successors += a3+[node[-1]+'D'] else : a1[y],a1[y-1] = a1[y-1],a1[y] successors += a1+[node[-1]+'L'] a2[y],a2[y-n] = a2[y-n],a2[y] successors += a2+[node[-1]+'U'] a3[y],a3[y+n] = a3[y+n],a3[y] successors += a3+[node[-1]+'D'] a4[y],a4[y+1] = a4[y+1],a4[y] successors += a4+[node[-1]+'R'] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:49) def gen_successors(node): successors = [] M = len(board) m = int(sqrt(M)) pl = node.index(0) node1 = node[:-1] bcpy1 = list(node1) bcpy2 = list(node1) bcpy3 = list(node1) bcpy4 = list(node1) if pl < m : if pl == 0: bcpy1[pl],bcpy1[pl+1] = bcpy1[pl+1],bcpy1[pl] successors += bcpy1+[node[-1]+'R'] bcpy2[pl],bcpy2[pl+m] = bcpy2[pl+m],bcpy2[pl] successors += bcpy1+[node[-1]+'D'] elif pl == m-1: bcpy1[pl],bcpy1[pl-1] = bcpy1[pl-1],bcpy1[pl] successors += bcpy1+[node[-1]+'L'] bcpy2[pl],bcpy2[pl+m] = bcpy2[pl+m],bcpy2[pl] successors += bcpy2+[node[-1]+'D'] else : bcpy1[pl],bcpy1[pl+1] = bcpy1[pl+1],bcpy1[pl] successors += bcpy1+[node[-1]+'R'] bcpy2[pl],bcpy2[pl-1] = bcpy2[pl-1],bcpy2[pl] successors += bcpy2+[node[-1]+'L'] bcpy3[pl],bcpy3[pl+m] = bcpy3[pl+m],bcpy3[pl] successors += bcpy3+[node[-1]+'D'] elif pl > M-m-1 : if pl%m == 0: bcpy1[pl],bcpy1[pl+1] = bcpy1[pl+1],bcpy1[pl] successors += bcpy1+[node[-1]+'R'] bcpy2[pl],bcpy2[pl-m] = bcpy2[pl-m],bcpy2[pl] successors += bcpy2+[node[-1]+'U'] elif pl == M-1 : bcpy1[pl],bcpy1[pl-1] = bcpy1[pl-1],bcpy1[pl] successors += bcpy1+[node[-1]+'L'] bcpy2[pl],bcpy2[pl-m] = bcpy2[pl-m],bcpy2[pl] successors += bcpy2+[node[-1]+'U'] else : bcpy1[pl],bcpy1[pl+1] = bcpy1[pl+1],bcpy1[pl] successors += bcpy1+[node[-1]+'R'] bcpy2[pl],bcpy2[pl-1] = bcpy2[pl-1],bcpy2[pl] successors += bcpy2+[node[-1]+'L'] bcpy3[pl],bcpy3[pl-m] = bcpy3[pl-m],bcpy3[pl] successors += bcpy3+[node[-1]+'U'] elif pl%m == 0: bcpy1[pl],bcpy1[pl+1] = bcpy1[pl+1],bcpy1[pl] successors += bcpy1+[node[-1]+'R'] bcpy2[pl],bcpy2[pl-m] = bcpy2[pl-m],bcpy2[pl] successors += bcpy2+[node[-1]+'U'] bcpy3[pl],bcpy3[pl+m] = bcpy3[pl+m],bcpy3[pl] successors += bcpy3+[node[-1]+'D'] elif (pl+1)%m == 0: bcpy1[pl],bcpy1[pl-1] = bcpy1[pl-1],bcpy1[pl] successors += bcpy1+[node[-1]+'L'] bcpy2[pl],bcpy2[pl-m] = bcpy2[pl-m],bcpy2[pl] successors += bcpy2+[node[-1]+'U'] bcpy3[pl],bcpy3[pl+m] = bcpy3[pl+m],bcpy3[pl] successors += bcpy3+[node[-1]+'D'] else : bcpy1[pl],bcpy1[pl-1] = bcpy1[pl-1],bcpy1[pl] successors += bcpy1+[node[-1]+'L'] bcpy2[pl],bcpy2[pl-m] = bcpy2[pl-m],bcpy2[pl] successors += bcpy2+[node[-1]+'U'] bcpy3[pl],bcpy3[pl+m] = bcpy3[pl+m],bcpy3[pl] successors += bcpy3+[node[-1]+'D'] bcpy4[pl],bcpy4[pl+1] = bcpy4[pl+1],bcpy4[pl] successors += bcpy4+[node[-1]+'R'] return successors #------------------------------------------

gen_successors: cluster #24 (2)

# 6xxxxxxxx1 (2020-09-20 19:10) def gen_successors(node): successors = [] N = len(node) - 1 pos = [0] * N edge = int(N ** 0.5) for i in range(len(pos)): pos[i] = node.index(i) if (pos[0] + 1) % edge != 0: # not on right node[pos[0]],node[pos[0] + 1] = node[pos[0] + 1],node[pos[0]] #swap successors += node successors[-1] += 'R' node[pos[0]],node[pos[0] + 1] = node[pos[0] + 1],node[pos[0]] #back if (pos[0] + edge) % edge != 0: # not on left node[pos[0]],node[pos[0] - 1] = node[pos[0] - 1],node[pos[0]] #swap successors += node successors[-1] += 'L' node[pos[0]],node[pos[0] - 1] = node[pos[0] - 1],node[pos[0]] #back if pos[0] >= edge: # not on 1st row node[pos[0]],node[pos[0] - edge] = node[pos[0] - edge],node[pos[0]] #swap successors += node successors[-1] += 'U' node[pos[0]],node[pos[0] - edge] = node[pos[0] - edge],node[pos[0]] #back if edge * (edge - 1) > pos[0]: # not on btm node[pos[0]],node[pos[0] + edge] = node[pos[0] + edge],node[pos[0]] #swap successors += node successors[-1] += 'D' node[pos[0]],node[pos[0] + edge] = node[pos[0] + edge],node[pos[0]] #back return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 19:35) def gen_successors(node): successors = [] n=len(node)-1 p=[0]*n e=int(n**0.5) for i in range(len(p)): p[i]=node.index(i) if (p[0]+1)%e!=0: node[p[0]],node[p[0]+1]=node[p[0]+1],node[p[0]] successors+=node successors[-1]+='R' node[p[0]],node[p[0]+1]=node[p[0]+1],node[p[0]] if (p[0]+e)%e!=0: node[p[0]],node[p[0]-1]=node[p[0]-1],node[p[0]] successors+=node successors[-1]+='L' node[p[0]],node[p[0]-1]=node[p[0]-1],node[p[0]] if p[0]>=e: node[p[0]],node[p[0]-e]=node[p[0]-e],node[p[0]] successors+=node successors[-1]+='U' node[p[0]],node[p[0]-e]=node[p[0]-e],node[p[0]] if e*(e-1)>p[0]: node[p[0]],node[p[0]+e]=node[p[0]+e],node[p[0]] successors+=node successors[-1]+='D' node[p[0]],node[p[0]+e]=node[p[0]+e],node[p[0]] return successors #------------------------------------------

gen_successors: cluster #25 (2)

# 6xxxxxxxx1 (2020-09-20 22:36) def gen_successors(node): successors=[] N=int((len(node[:-1]))**(1/2)) successors=node # list[0] == choice 1+= possible move corner=[0] upper_rim=[] lower_rim=[] left_rim=[] right_rim=[] centre=[] # do corner possile move corner.append(N-1) # up right corner.append(N*(N-1)) # down left corner.append((N-1)+(N*(N-1))) # down right if N>2: for i in range(N-2): # do rim possible move upper_rim.append(i+1) # upper rim lower_rim.append((N*(N-1))+1+i) # lower rim left_rim.append(N+N*i) # left rim right_rim.append(2*N-1+N*i) # right rim # do centre possible move for i in range(N-2): # i for x move for j in range(N-2): # j for y move centre.append(N+1+i+N*j) # find 0 location on board for i in range(N*N): if node[i]==0: location=i # do move if 0 on corner if location in corner: successors*=2 if location==corner[0]: # UL move R D successors[0], successors[1]=successors[1], successors[0] successors[N*N]+='R' successors[N*N+1], successors[N*N+1+N]=successors[N*N+1+N], successors[N*N+1] successors[N*N*2+1]+='D' elif location==corner[1]: # UR move L D successors[N-1], successors[N-2]=successors[N-2], successors[N-1] successors[N*N]+='L' successors[N*N+N], successors[N*N+2*N]=successors[N*N+2*N], successors[N*N+N] successors[N*N*2+1]+='D' elif location==corner[2]: # DL move R U successors[N*(N-1)], successors[N*(N-1)+1]=successors[N*(N-1)+1], successors[N*(N-1)] successors[N*N]+='R' successors[N*(N-1)*2+N+1], successors[N*(N-1)*2+1]=successors[N*(N-1)*2+1], \ successors[N*(N-1)*2+N+1] successors[N*N*2+1]+='U' elif location==corner[3]: # DR move L U successors[(N-1)+(N*(N-1))], successors[(N-1)+(N*(N-1))-1]= \ successors[(N-1)+(N*(N-1))-1], successors[(N-1)+(N*(N-1))] successors[N*N]+='L' successors[(N+(N*(N-1)))*2], successors[(N+(N*(N-1)))*2-N]= \ successors[(N+(N*(N-1)))*2-N], successors[(N+(N*(N-1)))*2] successors[N*N*2+1]+='U' # do move if 0 on rim elif location in upper_rim: # Urim move L R D successors*=3 for i in range(len(upper_rim)): # search possition of location in Urim length N-2 ex N5[#,0,1,2,#] if location==upper_rim[i]: i+=1 successors[i], successors[i-1]=successors[i-1], successors[i] # move L successors[N*N]+='L' successors[i+N*N+1], successors[i+N*N+2]=successors[i+N*N+2], \ successors[i+N*N+1] # move R successors[N*N*2+1]+='R' successors[i+2*(N*N+1)], successors[i+2*(N*N+1)+N]= \ successors[i+2*(N*N+1)+N], successors[i+2*(N*N+1)] # move D successors[N*N*3+2]+='D' elif location in lower_rim: # Lwrim movve L R U successors*=3 for i in range(len(lower_rim)): if location==lower_rim[i]: successors[N*(N-1)+i+1], successors[N*(N-1)+i]= \ successors[N*(N-1)+i], successors[N*(N-1)+i+1] # move L successors[N*N]+='L' successors[N*(N-1)+i+N*N+3], successors[N*(N-1)+i+N*N+2]= \ successors[N*(N-1)+i+N*N+2], successors[N*(N-1)+i+N*N+3] # move R successors[N*N*2+1]+='R' successors[N*(N-1)+i+2*(N*N+1)+1], successors[N*(N-1)+i+2*(N*N+1)+1-N]= \ successors[N*(N-1)+i+2*(N*N+1)+1-N], successors[N*(N-1)+i+2*(N*N+1)+1] # move U successors[N*N*3+2]+='U' elif location in left_rim: # Lrim move R U D successors*=3 for j in range(len(left_rim)): if location==left_rim[j]: successors[N+N*j], successors[N+N*j+1]=successors[N+N*j+1], successors[N+N*j] # move R successors[N*N]+='R' successors[N+N*j+N*N+1], successors[N*j+1+N*N]=successors[N*j+1+N*N], successors[N+N*j+N*N+1] #move U successors[N*N*2+1]+='U' successors[N+N*j+2*(N*N+1)], successors[N*j+2*(1+N*N)+2*N]= \ successors[N*j+2*(1+N*N)+2*N], successors[N+N*j+2*(N*N+1)] # move D successors[N*N*3+2]+='D' elif location in right_rim: # Rrim move L U D successors*=3 for j in range(len(right_rim)): if location==right_rim[j]: successors[N+N*j+N-1], successors[N+N*j+N-2]=successors[N+N*j+N-2], successors[N+N*j+N-1] # move L successors[N*N]+='L' successors[N+N*j+N*N+N], successors[N*j+N+N*N]=successors[N*j+N+N*N], successors[N+N*j+N*N+N] # move U successors[N*N*2+1]+='U' successors[N+N*j+2*(N*N+1)+N-1], successors[N*j+2*(1+N*N)+2*N+N-1]= \ successors[N*j+2*(1+N*N)+2*N+N-1], successors[N+N*j+2*(N*N+1)+N-1] # move D successors[N*N*3+2]+='D' elif location in centre: # do move if 0 in centre successors*=4 for j in range(N-2): # y for i in range(N-2): # x if successors[j*(N+1+i)+(N+1+i)]==0: successors[j*(N+1+i)+(N+1+i)-1], successors[j*(N+1+i)+(N+1+i)]= \ successors[j*(N+1+i)+(N+1+i)], successors[j*(N+1+i)+(N+1+i)-1] # move L successors[N*N]+='L' successors[j*(N+1+i)+(N+1+i)+N*N+1], successors[j*(N+1+i)+(N+1+i)+N*N+2]= \ successors[j*(N+1+i)+(N+1+i)+N*N+2], successors[j*(N+1+i)+(N+1+i)+N*N+1] # move R successors[N*N*2+1]+='R' successors[j*(N+1+i)+(N+1+i)+2*(N*N+1)], successors[j*(N+1+i)+(N+1+i)+2*(N*N+1)-N] \ =successors[j*(N+1+i)+(N+1+i)+2*(N*N+1)-N], successors[j*(N+1+i)+(N+1+i)+2*(N*N+1)] # move U successors[N*N*3+2]+='U' successors[j*(N+1+i)+(N+1+i)+3*(N*N+1)], successors[j*(N+1+i)+(N+1+i)+3*(N*N+1)+N] \ =successors[j*(N+1+i)+(N+1+i)+3*(N*N+1)+N], successors[j*(N+1+i)+(N+1+i)+3*(N*N+1)] # move D successors[N*N*4+3]+='D' return successors # ------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:06) def gen_successors(node): successors=[] a=int((len(node[:-1]))**(1/2)) successors=node corner=[0] upper=[] lower=[] left=[] right=[] centre=[] corner.append(a-1) corner.append(a*(a-1)) corner.append((a-1)+(a*(a-1))) if a>2: for x in range(a-2): upper.append(x+1) lower.append((a*(a-1))+1+x) left.append(a+a*x) right.append(2*a-1+a*x) for x in range(a-2): for j in range(a-2): centre.append(a+1+x+a*j) for x in range(a*a): if node[x]==0: location=x if location in corner: successors*=2 if location==corner[0]: successors[0], successors[1]=successors[1], successors[0] successors[a*a]+='R' successors[a*a+1], successors[a*a+1+a]=successors[a*a+1+a], successors[a*a+1] successors[a*a*2+1]+='D' elif location==corner[1]: successors[a-1], successors[a-2]=successors[a-2], successors[a-1] successors[a*a]+='L' successors[a*a+a], successors[a*a+2*a]=successors[a*a+2*a], successors[a*a+a] successors[a*a*2+1]+='D' elif location==corner[2]: successors[a*(a-1)], successors[a*(a-1)+1]=successors[a*(a-1)+1], successors[a*(a-1)] successors[a*a]+='R' successors[a*(a-1)*2+a+1], successors[a*(a-1)*2+1]=successors[a*(a-1)*2+1], \ successors[a*(a-1)*2+a+1] successors[a*a*2+1]+='U' elif location==corner[3]: successors[(a-1)+(a*(a-1))], successors[(a-1)+(a*(a-1))-1]= \ successors[(a-1)+(a*(a-1))-1], successors[(a-1)+(a*(a-1))] successors[a*a]+='L' successors[(a+(a*(a-1)))*2], successors[(a+(a*(a-1)))*2-a]= \ successors[(a+(a*(a-1)))*2-a], successors[(a+(a*(a-1)))*2] successors[a*a*2+1]+='U' elif location in upper: successors*=3 for x in range(len(upper)): if location==upper[x]: x+=1 successors[x], successors[x-1]=successors[x-1], successors[x] successors[a*a]+='L' successors[x+a*a+1], successors[x+a*a+2]=successors[x+a*a+2], \ successors[x+a*a+1] successors[a*a*2+1]+='R' successors[x+2*(a*a+1)], successors[x+2*(a*a+1)+a]= \ successors[x+2*(a*a+1)+a], successors[x+2*(a*a+1)] successors[a*a*3+2]+='D' elif location in lower: successors*=3 for x in range(len(lower)): if location==lower[x]: successors[a*(a-1)+x+1], successors[a*(a-1)+x]= \ successors[a*(a-1)+x], successors[a*(a-1)+x+1] successors[a*a]+='L' successors[a*(a-1)+x+a*a+3], successors[a*(a-1)+x+a*a+2]= \ successors[a*(a-1)+x+a*a+2], successors[a*(a-1)+x+a*a+3] successors[a*a*2+1]+='R' successors[a*(a-1)+x+2*(a*a+1)+1], successors[a*(a-1)+x+2*(a*a+1)+1-a]= \ successors[a*(a-1)+x+2*(a*a+1)+1-a], successors[a*(a-1)+x+2*(a*a+1)+1] successors[a*a*3+2]+='U' elif location in left: successors*=3 for j in range(len(left)): if location==left[j]: successors[a+a*j], successors[a+a*j+1]=successors[a+a*j+1], successors[a+a*j] successors[a*a]+='R' successors[a+a*j+a*a+1], successors[a*j+1+a*a]=successors[a*j+1+a*a], successors[a+a*j+a*a+1] successors[a*a*2+1]+='U' successors[a+a*j+2*(a*a+1)], successors[a*j+2*(1+a*a)+2*a]= \ successors[a*j+2*(1+a*a)+2*a], successors[a+a*j+2*(a*a+1)] successors[a*a*3+2]+='D' elif location in right: successors*=3 for j in range(len(right)): if location==right[j]: successors[a+a*j+a-1], successors[a+a*j+a-2]=successors[a+a*j+a-2], successors[a+a*j+a-1] successors[a*a]+='L' successors[a+a*j+a*a+a], successors[a*j+a+a*a]=successors[a*j+a+a*a], successors[a+a*j+a*a+a] successors[a*a*2+1]+='U' successors[a+a*j+2*(a*a+1)+a-1], successors[a*j+2*(1+a*a)+2*a+a-1]= \ successors[a*j+2*(1+a*a)+2*a+a-1], successors[a+a*j+2*(a*a+1)+a-1] successors[a*a*3+2]+='D' elif location in centre: successors*=4 for j in range(a-2): for x in range(a-2): if successors[j*(a+1+x)+(a+1+x)]==0: successors[j*(a+1+x)+(a+1+x)-1], successors[j*(a+1+x)+(a+1+x)]= \ successors[j*(a+1+x)+(a+1+x)], successors[j*(a+1+x)+(a+1+x)-1] successors[a*a]+='L' successors[j*(a+1+x)+(a+1+x)+a*a+1], successors[j*(a+1+x)+(a+1+x)+a*a+2]= \ successors[j*(a+1+x)+(a+1+x)+a*a+2], successors[j*(a+1+x)+(a+1+x)+a*a+1] successors[a*a*2+1]+='R' successors[j*(a+1+x)+(a+1+x)+2*(a*a+1)], successors[j*(a+1+x)+(a+1+x)+2*(a*a+1)-a] \ =successors[j*(a+1+x)+(a+1+x)+2*(a*a+1)-a], successors[j*(a+1+x)+(a+1+x)+2*(a*a+1)] successors[a*a*3+2]+='U' successors[j*(a+1+x)+(a+1+x)+3*(a*a+1)], successors[j*(a+1+x)+(a+1+x)+3*(a*a+1)+a] \ =successors[j*(a+1+x)+(a+1+x)+3*(a*a+1)+a], successors[j*(a+1+x)+(a+1+x)+3*(a*a+1)] successors[a*a*4+3]+='D' return successors # ------------------------------------------

gen_successors: cluster #26 (2)

# 6xxxxxxxx1 (2020-09-20 02:55) def gen_successors(node): successors = [] l=[] j = node.index(0) s = 0 if str(j) in '0268' : M = 2 elif str(j) in '1357' : M = 3 else : M = 4 for i in range(M): for ch in node: l.append(ch) if str(j) in '012345' and s == 0: x = l.pop(j) l.insert(j+3,0) d = l.pop(j+2) l.insert(j,d) l[9] = l[9]+ "D" s = 1 elif str(j) in '013467' and s == 1 : x = l.pop(j) l.insert(j+1,0) l[9] = l[9]+ "R" s = 2 elif str(j) in '124578' and s == 2 or s == 1: x = l.pop(j) l.insert(j-1,0) l[9] = l[9]+ "L" s = 3 elif str(j) in '345678' and s == 3 or s == 2 or s == 0: x = l.pop(j) l.insert(j-3,0) d = l.pop(j-2) l.insert(j,d) l[9] = l[9]+ "U" s = 1 successors += l l=[] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 17:46) def gen_successors(node): successors = [] a=[] b = node.index(0) c = 0 if str(b) in '0268' : n = 2 elif str(b) in '1357' : n = 3 else : n = 4 for i in range(n): for ch in node: a.append(ch) if str(b) in '012345' and c == 0: x = a.pop(b) a.insert(3+b,0) d = a.pop(2+b) a.insert(b,d) a[9] = a[9]+ "D" c = 1 elif str(b) in '013467' and c == 1 : x = a.pop(b) a.insert(1+b,0) a[9] = a[9]+ "R" c = 2 elif str(b) in '124578' and c == 2 or c == 1: x = a.pop(b) a.insert(b-1,0) a[9] = a[9]+ "L" c = 3 elif str(b) in '345678' and c == 3 or c == 2 or c == 0: x = a.pop(b) a.insert(b-3,0) d = a.pop(b-2) a.insert(b,d) a[9] = a[9]+ "U" c = 1 successors += a a=[] return successors #------------------------------------------

gen_successors: cluster #27 (3)

# 6xxxxxxxx1 (2020-09-20 15:01) def gen_successors(node): x = board.index(0) if x == 0: successors = [board[1],0,board[2],board[3],board[4],board[5],board[6],board[7],board[8],'UDRR'\ ,board[3],board[1],board[2],0,board[4],board[5],board[6],board[7],board[8],'UDRD'] elif x==1: successors = [0,board[0],board[2],board[3],board[4],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[2],0,board[3],board[4],board[5],board[6],board[7],board[8],'UDRR'\ ,board[0],board[4],board[2],board[3],0,board[5],board[6],board[7],board[8],'UDRD'] elif x==2: successors = [board[0],0,board[1],board[3],board[4],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[5],board[3],board[4],0,board[6],board[7],board[8],'UDRD'] elif x==3: successors = [0,board[1],board[2],board[0],board[4],board[5],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[4],0,board[5],board[6],board[7],board[8],'UDRR'\ ,board[0],board[1],board[2],board[6],board[4],board[5],0,board[7],board[8],'UDRD'] elif x==4: successors = [board[0],0,board[2],board[3],board[1],board[5],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],0,board[3],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[2],board[3],board[5],0,board[6],board[7],board[8],'UDRR'\ ,board[0],board[1],board[2],board[3],board[7],board[5],board[6],0,board[8],'UDRD'] elif x==5: successors = [board[0],board[1],0,board[3],board[4],board[2],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],0,board[4],board[6],board[7],board[8],'UDRL' ,board[0],board[1],board[2],board[3],board[4],board[8],board[6],board[7],0,'UDRD'] elif x==6: successors = [board[0],board[1],board[2],0,board[4],board[5],board[3],board[7],board[8],'UDRU' ,board[0],board[1],board[2],board[3],board[4],board[5],board[7],0,board[8],'UDRR'] elif x==7: successors = [board[0],board[1],board[2],board[3],0,board[5],board[6],board[4],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],board[4],board[5],0,board[6],board[8],'UDRL' ,board[0],board[1],board[2],board[3],board[4],board[5],board[6],board[8],0,'UDRR'] elif x==8: successors = [board[0],board[1],board[2],board[3],board[4],board[5],board[6],0,board[7],'UDRL'\ ,board[0],board[1],board[2],board[3],board[4],0,board[6],board[7],board[5],'UDRU'] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:57) def gen_successors(node): x = board.index(0) if x==0: successors = [board[1],0,board[2],board[3],board[4],board[5],board[6],board[7],board[8],'UDRR'\ ,board[3],board[1],board[2],0,board[4],board[5],board[6],board[7],board[8],'UDRD'] elif x==1: successors = [0,board[0],board[2],board[3],board[4],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[2],0,board[3],board[4],board[5],board[6],board[7],board[8],'UDRR'\ ,board[0],board[4],board[2],board[3],0,board[5],board[6],board[7],board[8],'UDRD'] elif x==2: successors = [board[0],0,board[1],board[3],board[4],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[5],board[3],board[4],0,board[6],board[7],board[8],'UDRD'] elif x==3: successors = [0,board[1],board[2],board[0],board[4],board[5],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[4],0,board[5],board[6],board[7],board[8],'UDRR'\ ,board[0],board[1],board[2],board[6],board[4],board[5],0,board[7],board[8],'UDRD'] elif x==4: successors = [board[0],0,board[2],board[3],board[1],board[5],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],board[5],0,board[6],board[7],board[8],'UDRR'\ ,board[0],board[1],board[2],0,board[3],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[2],board[3],board[7],board[5],board[6],0,board[8],'UDRD'] elif x==5: successors = [board[0],board[1],0,board[3],board[4],board[2],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],0,board[4],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[2],board[3],board[4],board[8],board[6],board[7],0,'UDRD'] elif x==6: successors = [board[0],board[1],board[2],0,board[4],board[5],board[3],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],board[4],board[5],board[7],0,board[8],'UDRR'] elif x==7: successors = [board[0],board[1],board[2],board[3],0,board[5],board[6],board[4],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],board[4],board[5],0,board[6],board[8],'UDRL'\ ,board[0],board[1],board[2],board[3],board[4],board[5],board[6],board[8],0,'UDRR'] elif x==8: successors = [board[0],board[1],board[2],board[3],board[4],0,board[6],board[7],board[5],'UDRU'\ ,board[0],board[1],board[2],board[3],board[4],board[5],board[6],0,board[7],'UDRL'] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:25) def gen_successors(node): successors = [] x = board.index(0) if x == 0: successors = [board[1],0,board[2],board[3],board[4],board[5],board[6],board[7],board[8],'UDRR'\ ,board[3],board[1],board[2],0,board[4],board[5],board[6],board[7],board[8],'UDRD'] elif x == 1: successors = [0,board[0],board[2],board[3],board[4],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[2],0,board[3],board[4],board[5],board[6],board[7],board[8],'UDRR'\ ,board[0],board[4],board[2],board[3],0,board[5],board[6],board[7],board[8],'UDRD'] elif x == 2: successors = [board[0],0,board[1],board[3],board[4],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[5],board[3],board[4],0,board[6],board[7],board[8],'UDRD'] elif x == 3: successors = [0,board[1],board[2],board[0],board[4],board[5],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[4],0,board[5],board[6],board[7],board[8],'UDRR'\ ,board[0],board[1],board[2],board[6],board[4],board[5],0,board[7],board[8],'UDRD'] elif x == 4: successors = [board[0],0,board[2],board[3],board[1],board[5],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],0,board[3],board[5],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[2],board[3],board[5],0,board[6],board[7],board[8],'UDRR'\ ,board[0],board[1],board[2],board[3],board[7],board[5],board[6],0,board[8],'UDRD'] elif x == 5 : successors = [board[0],board[1],0,board[3],board[4],board[2],board[6],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],0,board[4],board[6],board[7],board[8],'UDRL'\ ,board[0],board[1],board[2],board[3],board[4],board[8],board[6],board[4],0,'UDRD'] elif x == 6: successors = [board[0],board[1],board[2],0,board[4],board[5],board[3],board[7],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],board[4],board[5],board[7],0,board[8],'UDRR'] elif x == 7: successors = [board[0],board[1],board[2],board[3],board[4],board[5],0,board[6],board[8],'UDRL'\ ,board[0],board[1],board[2],board[3],0,board[5],board[6],board[4],board[8],'UDRU'\ ,board[0],board[1],board[2],board[3],board[4],board[5],board[6],board[8],0,'UDRR'] elif x == 8: successors = [board[0],board[1],board[2],board[3],board[4],board[5],board[6],0,board[7],'UDRL'\ ,board[0],board[1],board[2],board[3],board[4],0,board[6],board[7],board[8],board[5],'UDRU'] return successors #------------------------------------------

gen_successors: cluster #28 (2)

# 6xxxxxxxx1 (2020-09-20 14:47) def gen_successors (node): successors = [] sizzer = int((len(node)-1)**(0.5)) s1 = [] ; s2= [] ; s3 = []; s4 =[] syai = [s1,s2,s3,s4] pos = node.index(0) if pos+1 == 1 : # 0 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s1[-1] = s1[-1]+"R" s2[-1] = s2[-1]+"D" elif 1 < pos+1 < sizzer : # 1 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s3.append(node[sst]) s1[-1] = s1[-1]+"R" s2[-1] = s2[-1]+"D" s3[-1] = s3[-1]+"L" elif pos+1 == sizzer : # 2 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s1[-1] = s1[-1]+"L" s2[-1] = s2[-1]+"D" elif (pos+1)%sizzer == 1 and pos+1 != 1 and \ pos+1 != (sizzer**2)-(sizzer-1) : # 3 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s3.append(node[sst]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"R" s3[-1] = s3[-1]+"D" elif (pos+1)%sizzer == 0 and pos+1 != sizzer and \ pos+1 != (sizzer**2) : # 5 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s3.append(node[sst]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"L" s3[-1] = s3[-1]+"D" elif pos+1 == (sizzer**2)-(sizzer-1) : # 6 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"R" elif (sizzer**2)-(sizzer-1) < pos+1 < (sizzer**2) :# 7 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s3.append(node[sst]) s1[-1] = s1[-1]+"R" s2[-1] = s2[-1]+"U" s3[-1] = s3[-1]+"L" elif pos+1 == (sizzer**2) :# 8 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"L" else : # 4 in 3*3 for sst in range(len(node)): s1.append(node[sst]) s2.append(node[sst]) s3.append(node[sst]) s4.append(node[sst]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"R" s3[-1] = s3[-1]+"D" s4[-1] = s4[-1]+"L" for pp in range(4) : if syai[pp] != []: if syai[pp][-1][-1] == "R": syai[pp][pos+1],syai[pp][pos] = syai[pp][pos],syai[pp][pos+1] elif syai[pp][-1][-1] == "L": syai[pp][pos-1],syai[pp][pos] = syai[pp][pos],syai[pp][pos-1] elif syai[pp][-1][-1] == "U": syai[pp][pos-sizzer],syai[pp][pos] = syai[pp][pos],syai[pp][pos-sizzer] elif syai[pp][-1][-1] == "D": syai[pp][pos+sizzer],syai[pp][pos] = syai[pp][pos],syai[pp][pos+sizzer] for sss in range(4): if syai[sss] != [] : for ssr in range(len(syai[sss])): successors.append(syai[sss][ssr]) return successors # ------------------------------------------# 6xxxxxxxx1 (2020-09-20 18:34) def gen_successors (node): successors = [] sizzer = int((len(node)-1)**(0.5)) s1 = [] ; s2= [] ; s3 = []; s4 =[] s = [s1,s2,s3,s4] pos = node.index(0) if pos+1 == 1 : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s1[-1] = s1[-1]+"R" s2[-1] = s2[-1]+"D" elif 1 < pos+1 < sizzer : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s3.append(node[i]) s1[-1] = s1[-1]+"R" s2[-1] = s2[-1]+"D" s3[-1] = s3[-1]+"L" elif pos+1 == sizzer : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s1[-1] = s1[-1]+"L" s2[-1] = s2[-1]+"D" elif (pos+1)%sizzer == 1 and pos+1 != 1 and \ pos+1 != (sizzer**2)-(sizzer-1) : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s3.append(node[i]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"R" s3[-1] = s3[-1]+"D" elif (pos+1)%sizzer == 0 and pos+1 != sizzer and \ pos+1 != (sizzer**2) : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s3.append(node[i]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"L" s3[-1] = s3[-1]+"D" elif pos+1 == (sizzer**2)-(sizzer-1) : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"R" elif (sizzer**2)-(sizzer-1) < pos+1 < (sizzer**2) : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s3.append(node[i]) s1[-1] = s1[-1]+"R" s2[-1] = s2[-1]+"U" s3[-1] = s3[-1]+"L" elif pos+1 == (sizzer**2): for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"L" else : for i in range(len(node)): s1.append(node[i]) s2.append(node[i]) s3.append(node[i]) s4.append(node[i]) s1[-1] = s1[-1]+"U" s2[-1] = s2[-1]+"R" s3[-1] = s3[-1]+"D" s4[-1] = s4[-1]+"L" for i in range(4) : if s[i] != []: if s[i][-1][-1] == "R": s[i][pos+1],s[i][pos] = s[i][pos],s[i][pos+1] elif s[i][-1][-1] == "L": s[i][pos-1],s[i][pos] = s[i][pos],s[i][pos-1] elif s[i][-1][-1] == "U": s[i][pos-sizzer],s[i][pos] = s[i][pos],s[i][pos-sizzer] elif s[i][-1][-1] == "D": s[i][pos+sizzer],s[i][pos] = s[i][pos],s[i][pos+sizzer] for i in range(4): if s[i] != [] : for j in range(len(s[i])): successors.append(s[i][j]) return successors # ------------------------------------------

gen_successors: cluster #29 (2)

# 6xxxxxxxx1 (2020-09-19 20:11) def gen_successors(node): successors = [] i = node.index(0) if i == 0: nodeEdit = list(node) nodeEdit[0], nodeEdit[1] = nodeEdit[1], nodeEdit[0] nodeEdit[9] = node[9] + "R" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[0], nodeEdit[3] = nodeEdit[3], nodeEdit[0] nodeEdit[9] = node[9] + "D" for j in range(10): successors.append(nodeEdit[j]) elif i == 1: nodeEdit = list(node) nodeEdit[1], nodeEdit[0] = nodeEdit[0], nodeEdit[1] nodeEdit[9] = node[9] + "L" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[1], nodeEdit[4] = nodeEdit[4], nodeEdit[1] nodeEdit[9] = node[9] + "D" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[1], nodeEdit[2] = nodeEdit[2], nodeEdit[1] nodeEdit[9] = node[9] + "R" for j in range(10): successors.append(nodeEdit[j]) elif i == 2: nodeEdit = list(node) nodeEdit[2], nodeEdit[1] = nodeEdit[1], nodeEdit[2] nodeEdit[9] = node[9] + "L" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[2], nodeEdit[5] = nodeEdit[5], nodeEdit[2] nodeEdit[9] = node[9] + "D" for j in range(10): successors.append(nodeEdit[j]) elif i == 3: nodeEdit = list(node) nodeEdit[3], nodeEdit[0] = nodeEdit[0], nodeEdit[3] nodeEdit[9] = node[9] + "U" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[3], nodeEdit[4] = nodeEdit[4], nodeEdit[3] nodeEdit[9] = node[9] + "R" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[3], nodeEdit[6] = nodeEdit[6], nodeEdit[3] nodeEdit[9] = node[9] + "D" for j in range(10): successors.append(nodeEdit[j]) elif i == 4: nodeEdit = list(node) nodeEdit[4], nodeEdit[1] = nodeEdit[1], nodeEdit[4] nodeEdit[9] = node[9] + "U" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[4], nodeEdit[3] = nodeEdit[3], nodeEdit[4] nodeEdit[9] = node[9] + "L" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[4], nodeEdit[5] = nodeEdit[5], nodeEdit[4] nodeEdit[9] = node[9] + "R" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[4], nodeEdit[7] = nodeEdit[7], nodeEdit[4] nodeEdit[9] = node[9] + "D" for j in range(10): successors.append(nodeEdit[j]) elif i == 5: nodeEdit = list(node) nodeEdit[5], nodeEdit[2] = nodeEdit[2], nodeEdit[5] nodeEdit[9] = node[9] + "U" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[5], nodeEdit[4] = nodeEdit[4], nodeEdit[5] nodeEdit[9] = node[9] + "L" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[5], nodeEdit[8] = nodeEdit[8], nodeEdit[5] nodeEdit[9] = node[9] + "D" for j in range(10): successors.append(nodeEdit[j]) elif i == 6: nodeEdit = list(node) nodeEdit[6], nodeEdit[3] = nodeEdit[3], nodeEdit[6] nodeEdit[9] = node[9] + "U" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[6], nodeEdit[7] = nodeEdit[7], nodeEdit[6] nodeEdit[9] = node[9] + "R" for j in range(10): successors.append(nodeEdit[j]) elif i == 7: nodeEdit = list(node) nodeEdit[7], nodeEdit[4] = nodeEdit[4], nodeEdit[7] nodeEdit[9] = node[9] + "U" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[7], nodeEdit[6] = nodeEdit[6], nodeEdit[7] nodeEdit[9] = node[9] + "L" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[7], nodeEdit[8] = nodeEdit[8], nodeEdit[7] nodeEdit[9] = node[9] + "R" for j in range(10): successors.append(nodeEdit[j]) elif i == 8: nodeEdit = list(node) nodeEdit[8], nodeEdit[5] = nodeEdit[5], nodeEdit[8] nodeEdit[9] = node[9] + "U" for j in range(10): successors.append(nodeEdit[j]) nodeEdit = list(node) nodeEdit[8], nodeEdit[7] = nodeEdit[7], nodeEdit[8] nodeEdit[9] = node[9] + "L" for j in range(10): successors.append(nodeEdit[j]) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-19 20:34) def gen_successors(node): successors=[] x=node.index(0) if x==0: nodeedit=list(node) nodeedit[0],nodeedit[3]=nodeedit[3],nodeedit[0] nodeedit[9]=node[9]+"D" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[0],nodeedit[1]=nodeedit[1],nodeedit[0] nodeedit[9]=node[9]+"R" for y in range(10): successors.append(nodeedit[y]) elif x==1: nodeedit=list(node) nodeedit[1],nodeedit[4]=nodeedit[4],nodeedit[1] nodeedit[9]=node[9]+"D" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[1],nodeedit[2]=nodeedit[2],nodeedit[1] nodeedit[9]=node[9]+"R" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[1],nodeedit[0]=nodeedit[0],nodeedit[1] nodeedit[9]=node[9]+"L" for y in range(10): successors.append(nodeedit[y]) elif x==2: nodeedit=list(node) nodeedit[2],nodeedit[5]=nodeedit[5],nodeedit[2] nodeedit[9]=node[9]+"D" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[2],nodeedit[1]=nodeedit[1],nodeedit[2] nodeedit[9]=node[9]+"L" for y in range(10): successors.append(nodeedit[y]) elif x==3: nodeedit=list(node) nodeedit[3],nodeedit[6]=nodeedit[6],nodeedit[3] nodeedit[9]=node[9]+"D" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[3],nodeedit[4]=nodeedit[4],nodeedit[3] nodeedit[9]=node[9]+"R" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[3],nodeedit[0]=nodeedit[0],nodeedit[3] nodeedit[9]=node[9]+"U" for y in range(10): successors.append(nodeedit[y]) elif x==4: nodeedit=list(node) nodeedit[4],nodeedit[7]=nodeedit[7],nodeedit[4] nodeedit[9]=node[9]+"D" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[4],nodeedit[5]=nodeedit[5],nodeedit[4] nodeedit[9]=node[9]+"R" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[4],nodeedit[1]=nodeedit[1],nodeedit[4] nodeedit[9]=node[9]+"U" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[4],nodeedit[3]=nodeedit[3],nodeedit[4] nodeedit[9]=node[9]+"L" for y in range(10): successors.append(nodeedit[y]) elif x==5: nodeedit=list(node) nodeedit[5],nodeedit[8]=nodeedit[8],nodeedit[5] nodeedit[9]=node[9]+"D" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[5],nodeedit[2]=nodeedit[2],nodeedit[5] nodeedit[9]=node[9]+"U" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[5],nodeedit[4]=nodeedit[4],nodeedit[5] nodeedit[9]=node[9]+"L" for y in range(10): successors.append(nodeedit[y]) elif x==6: nodeedit=list(node) nodeedit[6],nodeedit[7]=nodeedit[7],nodeedit[6] nodeedit[9]=node[9]+"R" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[6],nodeedit[3]=nodeedit[3],nodeedit[6] nodeedit[9]=node[9]+"U" for y in range(10): successors.append(nodeedit[y]) elif x==7: nodeedit=list(node) nodeedit[7],nodeedit[8]=nodeedit[8],nodeedit[7] nodeedit[9]=node[9]+"R" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[7],nodeedit[4]=nodeedit[4],nodeedit[7] nodeedit[9]=node[9]+"U" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[7],nodeedit[6]=nodeedit[6],nodeedit[7] nodeedit[9]=node[9]+"L" for y in range(10): successors.append(nodeedit[y]) elif x==8: nodeedit=list(node) nodeedit[8],nodeedit[5]=nodeedit[5],nodeedit[8] nodeedit[9]=node[9]+"U" for y in range(10): successors.append(nodeedit[y]) nodeedit=list(node) nodeedit[8],nodeedit[7]=nodeedit[7],nodeedit[8] nodeedit[9]=node[9]+"L" for y in range(10): successors.append(nodeedit[y]) return successors #------------------------------------------

gen_successors: cluster #30 (2)

# 6xxxxxxxx1 (2020-09-20 01:11) def gen_successors(node): successors = [] N=int((len(node)-1)**0.5) M="" location=node.index(0,0,len(node)) if location%N!= N-1: M+="R" if location%N!= 0 : M+="L" if location//N!=N-1 : M+="D" if location//N!=0 : M+="U" a = [] for i in range(len(M)): a = list(node) if M[i]=="U": a[location],a[location-N]=a[location-N],a[location] a[-1] += "U" elif M[i]=="D": a[location],a[location+N]=a[location+N],a[location] a[-1] += "D" elif M[i]=="L": a[location],a[location-1]=a[location-1],a[location] a[-1] += "L" elif M[i]=="R": a[location],a[location+1]=a[location+1],a[location] a[-1] += "R" successors += a return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:41) def gen_successors(node): successors = [] N=int((len(node)-1)**(1/2)) M="" m=node.index(0,0,len(node)) if m%N!= 0 : M+="L" if m%N!= N-1: M+="R" if m//N!=N-1 : M+="D" if m//N!=0 : M+="U" x = [] for i in range(len(M)): x = list(node) if M[i]=="U": x[m],x[m-N]=x[m-N],x[m] x[-1] += "U" elif M[i]=="D": x[m],x[m+N]=x[m+N],x[m] x[-1] += "D" elif M[i]=="L": x[m],x[m-1]=x[m-1],x[m] x[-1] += "L" elif M[i]=="R": x[m],x[m+1]=x[m+1],x[m] x[-1] += "R" successors += x return successors #------------------------------------------

gen_successors: cluster #31 (3)

# 6xxxxxxxx1 (2020-09-20 16:28) def gen_successors(node): successors = [] w = ['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] b = node.index(0) c = w[b] for i in c : x = node.copy() if i== 'U' : x.remove(0) x.insert(b-3,0) x.insert(b+1,x[b-2]) x.pop(b-2) x[-1]+= 'U' elif i== "D": x.remove(0) x.insert(b+2,0) x.insert(b,x[b+3]) x.pop(b+4) x[-1] += "D" elif i == 'L': x.remove(0) x.insert(b-1,0) x[-1] += 'L' elif i == "R": x.remove(0) x.insert(b+1,0) x[-1] += "R" successors += x return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:52) def gen_successors(node): successors = [] switch = ['DR','DLR','DL','UDR','UDLR','UDL','UR','ULR','UL'] y = node.index(0) z = switch[y] for i in z: t = node.copy() if i == 'U': t.remove(0) t.insert(y-3,0) t.insert(y+1,t[y-2]) t.pop(y-2) t[-1] += 'U' elif i == 'D' : t.remove(0) t.insert(y+2,0) t.insert(y,t[y+3]) t.pop(y+4) t[-1] += 'D' elif i == 'R': t.remove(0) t.insert(y+1,0) t[-1] += 'R' elif i == 'L': t.remove(0) t.insert(y-1,0) t[-1] += 'L' successors += t return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:22) def gen_successors(node): successors = [] x = ['UL','UR','DL','DR','ULD','DLU','URD','DRU','URDL'] y = node.index(0) z = x[y] for i in z : w = node.copy() if i == 'U' : w.remove(0) w.insert(y-3,0) w.insert(y+1,w[y-2]) w.pop(y-2) w[-1] += 'U' elif i == 'D' : w.remove(0) w.insert(y+2,0) w.insert(y,w[y+3]) w.pop(y+4) w[-1] += 'D' elif i == 'L' : w.remove(0) w.insert(y-1,0) w[-1] += 'L' elif i == 'R' : w.remove(0) w.insert(y+1,0) w[-1] += 'R' successors += w return successors #------------------------------------------

gen_successors: cluster #32 (2)

# 6xxxxxxxx1 (2020-09-18 20:46) def gen_successors(node): ans="" location=node.index(0,0,len(board)) if location//3==0: ans+="D" elif location//3==1: ans+="UD" elif location//3==2: ans+="U" if location%3==0 : ans+="R" elif location%3==1: ans+="LR" elif location%3==2: ans+="L" successors=node*len(ans) for i in range(len(ans)): if ans[i]=="U": successors[location+10*i],successors[location-3+10*i]=successors[location-3+10*i],successors[location+10*i] elif ans[i]=="D": successors[location+10*i],successors[location+3+10*i]=successors[location+3+10*i],successors[location+10*i] elif ans[i]=="L": successors[location+10*i],successors[location-1+10*i]=successors[location-1+10*i],successors[location+10*i] elif ans[i]=="R": successors[location+10*i],successors[location+1+10*i]=successors[location+1+10*i],successors[location+10*i] successors[10*i+9]+=ans[i] return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 12:31) def gen_successors(node): ans="" a=board.index(0,0,len(board)) if a//3==0: ans+="D" elif a//3==1: ans+="UD" elif a//3==2: ans+="U" if a%3==0 : ans+="R" elif a%3==1: ans+="L" ans+="R" elif a%3==2: ans+="L" successors=node*len(ans) for i in range(len(ans)): if ans[i]=="D": successors[a+10*i],successors[a-3+10*i]=successors[a-3+10*i],successors[a+10*i] elif ans[i]=="U": successors[a+10*i],successors[a+3+10*i]=successors[a+3+10*i],successors[a+10*i] elif ans[i]=="L": successors[a+10*i],successors[a-1+10*i]=successors[a-1+10*i],successors[a+10*i] elif ans[i]=="R": successors[a+10*i],successors[a+1+10*i]=successors[a+1+10*i],successors[a+10*i] successors[10*i-1]+=ans[i] return successors #------------------------------------------

gen_successors: cluster #33 (2)

# 6xxxxxxxx1 (2020-09-20 17:29) def gen_successors(node): successors = [] temp = node[:-1] command = node[-1] pos = temp.index(0) canMoveUp = pos >= 3 canMoveDown = pos <= 5 canMoveRight = (pos+1)%3 != 0 canMoveLeft = (pos)%3 != 0 if (canMoveUp) : board = list(temp) board[pos],board[pos-3] = board[pos-3],board[pos] successors += board successors.append(command+"U") if (canMoveDown) : board = list(temp) board[pos],board[pos+3] = board[pos+3],board[pos] successors += board successors.append(command+"D") if (canMoveRight) : board = list(temp) board[pos],board[pos+1] = board[pos+1],board[pos] successors += board successors.append(command+"R") if (canMoveLeft) : board = list(temp) board[pos],board[pos-1] = board[pos-1],board[pos] successors += board successors.append(command+"L") return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:19) def gen_successors(node): successors = [] temp = node[:-1] command = node[-1] pos = temp.index(0) canMoveUp = (pos//3) >= 1 canMoveDown = (pos//3) < 2 canMoveRight = (pos+1)%3 != 0 canMoveLeft = (pos)%3 != 0 if (canMoveUp) : board = list(temp) board[pos],board[pos-3] = board[pos-3],board[pos] successors += board successors.append(command+"U") if (canMoveDown) : board = list(temp) board[pos],board[pos+3] = board[pos+3],board[pos] successors += board successors.append(command+"D") if (canMoveRight) : board = list(temp) board[pos],board[pos+1] = board[pos+1],board[pos] successors += board successors.append(command+"R") if (canMoveLeft) : board = list(temp) board[pos],board[pos-1] = board[pos-1],board[pos] successors += board successors.append(command+"L") return successors #------------------------------------------

gen_successors: cluster #34 (2)

# 6xxxxxxxx1 (2020-09-20 17:58) def gen_successors(node): successors = [] x = ["DR","RDL","DL","UDR","DLUR","UDL","RU","RUL","LU"] y = node.index(0) z = x[y] for i in z: g = node.copy() if i == "D": g.remove(0) g.insert(y+2,0) g.insert(y,g[y+3]) g.pop(y+4) g[-1] += "D" elif i == "U": g.remove(0) g.insert(y-3,0) g.insert(y+1,g[y-2]) g.pop(y-2) g[-1] += "U" elif i == "R": g.remove(0) g.insert(y+1,0) g[-1] += "R" elif i == "L": g.remove(0) g.insert(y-1,0) g[-1] += "L" successors += g return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:46) def gen_successors(node): successors = [] t = ["DR","DLR","DL","UDR","UDLR","UDL","UR","ULR","UL"] e = node.index(0) a = t[e] for i in a : m = node.copy() if i == "D" : m.remove(0) m.insert(e+2,0) m.insert(e,m[e+3]) m.pop(e+4) m[-1] += "D" elif i == "U" : m.remove(0) m.insert(e-3,0) m.insert(e+1,m[e-2]) m.pop(e-2) m[-1] += "U" elif i == "L" : m.remove(0) m.insert(e-1,0) m[-1] += "L" elif i == "R" : m.remove(0) m.insert(e+1,0) m[-1] += "R" successors += m return successors #------------------------------------------

gen_successors: cluster #35 (2)

# 6xxxxxxxx1 (2020-09-18 15:27) def gen_successors(node): successors = [] a = node.index(0) n = int((len(node)-1)**0.5) # move up if a > n-1: b = list(node) b[a], b[a-n] = b[a-n], b[a] successors += b[:n**2] successors.append(b[n**2] + 'U') # move down if a < (n**2)-n-1: b = list(node) b[a], b[a+n] = b[a+n], b[a] successors += b[:n**2] successors.append(b[n**2] + 'D') # move left if a % n != 0: b = list(node) b[a], b[a-1] = b[a-1], b[a] successors += b[:n**2] successors.append(b[n**2] + 'L') # move right if a % n != n-1: b = list(node) b[a], b[a+1] = b[a+1], b[a] successors += b[:n**2] successors.append(b[n**2] + 'R') return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 14:23) def gen_successors(node): successors =[] i=node.index(0) n=int((len(node)-1)**(1/2)) if i>n-1: temp=list(node) temp[i],temp[i-n]=temp[i-n],temp[i] #เลื่อนบนได้ successors+=temp[0:n**2] successors.append(temp[n**2]+"U") if i<(n**2)-n-1: temp=list(node) temp[i],temp[i+n]=temp[i+n],temp[i] #เลื่อนล่างได้ successors+=temp[0:n**2] successors.append(temp[n**2]+"D") if i %n!=0: temp=list(node) temp[i],temp[i-1]=temp[i-1],temp[i] #เลื่อนซ้ายได้ successors+=temp[0:n**2] successors.append(temp[n**2]+"L") if i%n!=n-1: temp=list(node) temp[i],temp[i+1]=temp[i+1],temp[i] #เลื่อนขวาได้ successors+=temp[0:n**2] successors.append(temp[(n**2)]+"R") return successors #------------------------------------------

gen_successors: cluster #36 (2)

# 6xxxxxxxx1 (2020-09-20 20:22) def gen_successors(node): successors = [] p = ["UL", "ULR", "UR", "UDL", "UDLR", "UDR", "DL", "DLR", "DR"] x = node.index(0) y = p[x] for i in y: a = node.copy() if i == "U": a.remove(0) a.insert(x-3,0) a.insert(x+1,a[x-2]) a.pop(x-2) a[-1] += "U" elif i == "R": a.remove(0) a.insert(x+1,0) a[-1] += "R" elif i == "L": a.remove(0) a.insert(x-1,0) a[-1] += "L" elif i == "D": a.remove(0) a.insert(x+2,0) a.insert(x,a[x+3]) a.pop(x+4) a[-1] += "D" successors += a return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 20:55) def gen_successors(node): successors = [] a = ["DR", "DLR", "DL", "UDR", "UDLR" \ , "UDL", "UR", "URL", "UL"] b = node.index(0) c = a[b] for i in c: e = node.copy() if i == "U": e.remove(0) e.insert(b-3, 0) e.insert(b+1, e[b-2]) e.pop(b-2) e[-1] += "U" elif i == "L": e.remove(0) e.insert(b-1, 0) e[-1] += "L" elif i == "R": e.remove(0) e.insert(b+1, 0) e[-1] += "R" elif i == "D": e.remove(0) e.insert(b+2, 0) e.insert(b, e[b+3]) e.pop(b+4) e[-1] += "D" successors += e return successors #------------------------------------------

gen_successors: cluster #37 (2)

# 6xxxxxxxx1 (2020-09-20 22:57) def gen_successors(node): successors = [] blank = node.index(0) for e in node[-1]: if (e == 'U'): if blank not in [0,1,2]: node[blank], node[blank-3] = node[blank-3], node[blank] blank = node.index(0) elif (e == 'D'): if blank not in [6,7,8]: node[blank], node[blank+3] = node[blank+3], node[blank] blank = node.index(0) elif (e == 'R'): if blank not in [2,5,8]: node[blank], node[blank+1] = node[blank+1], node[blank] blank = node.index(0) elif (e == 'L'): if blank not in [0,3,6]: node[blank], node[blank-1] = node[blank-1], node[blank] blank = node.index(0) method = '' if blank == 0: method = 'DR' elif blank == 1: method = 'LDR' elif blank == 2: method = 'LD' elif blank == 3: method = 'URD' elif blank == 4: method = 'URDL' elif blank == 5: method = 'UDL' elif blank == 6: method = 'UR' elif blank == 7: method = 'LUR' elif blank == 8: method = 'LU' successorss = [] for m in method: node_temp = list(node) if m == 'U': node_temp[blank], node_temp[blank-3] = node_temp[blank-3], node_temp[blank] node_temp[-1]+='U' elif m == 'D': node_temp[blank], node_temp[blank+3] = node_temp[blank+3], node_temp[blank] node_temp[-1]+='D' elif m == 'R': node_temp[blank], node_temp[blank+1] = node_temp[blank+1], node_temp[blank] node_temp[-1]+='R' elif m == 'L': node_temp[blank], node_temp[blank-1] = node_temp[blank-1], node_temp[blank] node_temp[-1]+='L' successorss.append(node_temp) for s in successorss: for ss in s: successors.append(ss) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:46) def gen_successors(node): successors = [] blank = node.index(0) for e in node[-1]: if (e == 'U'): if blank in [3,4,5,6,7,8]: node[blank], node[blank-3] = node[blank-3], node[blank] blank = node.index(0) elif (e == 'D'): if blank in [0,1,2,3,4,5]: node[blank], node[blank+3] = node[blank+3], node[blank] blank = node.index(0) elif (e == 'R'): if blank in [0,1,3,4,6,7]: node[blank], node[blank+1] = node[blank+1], node[blank] blank = node.index(0) elif (e == 'L'): if blank in [1,2,4,5,7,8]: node[blank], node[blank-1] = node[blank-1], node[blank] blank = node.index(0) method = '' if blank == 0: method = 'DR' elif blank == 1: method = 'LDR' elif blank == 2: method = 'LD' elif blank == 3: method = 'URD' elif blank == 4: method = 'URDL' elif blank == 5: method = 'UDL' elif blank == 6: method = 'UR' elif blank == 7: method = 'LUR' elif blank == 8: method = 'LU' successorss = [] for m in method: node_temp = list(node) if m == 'U': node_temp[blank], node_temp[blank-3] = node_temp[blank-3], node_temp[blank] node_temp[-1]+='U' elif m == 'D': node_temp[blank], node_temp[blank+3] = node_temp[blank+3], node_temp[blank] node_temp[-1]+='D' elif m == 'R': node_temp[blank], node_temp[blank+1] = node_temp[blank+1], node_temp[blank] node_temp[-1]+='R' elif m == 'L': node_temp[blank], node_temp[blank-1] = node_temp[blank-1], node_temp[blank] node_temp[-1]+='L' successorss.append(node_temp) for s in successorss: for x in s: successors.append(x) return successors #------------------------------------------

gen_successors: cluster #38 (2)

# 6xxxxxxxx1 (2020-09-20 16:03) def gen_successors(node): successors = [] n = len(node) if 0 in node: ch = node.index(0) if ch == 0: #R,D for i in range(n): successors.append(node[i]) successors[0],successors[1] = successors[1],successors[0] a = successors.pop(-1) successors.append(a + 'R') for i in range(n): successors.append(node[i]) successors[10],successors[13] = successors[13],successors[10] a = successors.pop(-1) successors.append(node[-1] + 'D') if ch == 1: #R,L,D for i in range(n): successors.append(node[i]) successors[1],successors[2] = successors[2],successors[1] a = successors.pop(-1) successors.append(a +'R') for i in range(n): successors.append(node[i]) successors[11],successors[10] = successors[10],successors[11] a = successors.pop(-1) successors.append(a + 'L') for i in range(n): successors.append(node[i]) successors[21],successors[24] = successors[24],successors[21] a = successors.pop(-1) successors.append(a + 'D') if ch == 2: #L,D for i in range(n): successors.append(node[i]) successors[2],successors[1] = successors[1],successors[2] a = successors.pop(-1) successors.append(a + 'L') for i in range(n): successors.append(node[i]) successors[12],successors[15] = successors[15],successors[12] a = successors.pop(-1) successors.append(node[-1] + 'D') if ch == 3: #R,U,D for i in range(n): successors.append(node[i]) successors[3],successors[4] = successors[4],successors[3] a = successors.pop(-1) successors.append(a + 'R') for i in range(n): successors.append(node[i]) successors[13],successors[10] = successors[10],successors[13] a = successors.pop(-1) successors.append(a + 'U') for i in range(n): successors.append(node[i]) successors[23],successors[26] = successors[26],successors[23] a = successors.pop(-1) successors.append(a + 'D') if ch == 4: #R,L,U,D for i in range(n): successors.append(node[i]) successors[4],successors[5] = successors[5],successors[4] a = successors.pop(-1) successors.append(a + 'R') for i in range(n): successors.append(node[i]) successors[14],successors[13] = successors[13],successors[14] a = successors.pop(-1) successors.append(a + 'L') for i in range(n): successors.append(node[i]) successors[24],successors[21] = successors[21],successors[24] a = successors.pop(-1) successors.append(a + 'U') for i in range(n): successors.append(node[i]) successors[34],successors[37] = successors[37],successors[34] a = successors.pop(-1) successors.append(a + 'D') if ch == 5: #L,U,D for i in range(n): successors.append(node[i]) successors[5],successors[4] = successors[4],successors[5] a = successors.pop(-1) successors.append(a + 'L') for i in range(n): successors.append(node[i]) successors[15],successors[12] = successors[12],successors[15] a = successors.pop(-1) successors.append(a + 'U') for i in range(n): successors.append(node[i]) successors[25],successors[28] = successors[28],successors[25] a = successors.pop(-1) successors.append(a + 'D') if ch == 6: #R,U for i in range(n): successors.append(node[i]) successors[6],successors[7] = successors[7],successors[6] a = successors.pop(-1) successors.append(a + 'R') for i in range(n): successors.append(node[i]) successors[16],successors[13] = successors[13],successors[16] a = successors.pop(-1) successors.append(node[-1] + 'U') if ch == 7: #R,L,U for i in range(n): successors.append(node[i]) successors[7],successors[8] = successors[8],successors[7] a = successors.pop(-1) successors.append(a + 'R') for i in range(n): successors.append(node[i]) successors[17],successors[16] = successors[16],successors[17] a = successors.pop(-1) successors.append(a + 'L') for i in range(n): successors.append(node[i]) successors[27],successors[24] = successors[24],successors[27] a = successors.pop(-1) successors.append(a + 'U') if ch == 8: #L,U for i in range(n): successors.append(node[i]) successors[8],successors[7] = successors[7],successors[8] a = successors.pop(-1) successors.append(a + 'L') for i in range(n): successors.append(node[i]) successors[18],successors[15] = successors[15],successors[18] a = successors.pop(-1) successors.append(node[-1] + 'U') return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 22:39) def gen_successors(node): successors = [] if 0 in node: a = node.index(0) b = len(node) if a == 0: for i in range(b): successors.append(node[i]) successors[0],successors[1] = successors[1],successors[0] c = successors.pop(-1) successors.append(c+'R') for i in range(b): successors.append(node[i]) successors[10],successors[13] = successors[13],successors[10] c = successors.pop(-1) successors.append(c+'D') if a == 1: for i in range(b): successors.append(node[i]) successors[1],successors[2] = successors[2],successors[1] c = successors.pop(-1) successors.append(c+'R') for i in range(b): successors.append(node[i]) successors[11],successors[14] = successors[14],successors[11] c = successors.pop(-1) successors.append(c+'D') for i in range(b): successors.append(node[i]) successors[21],successors[20] = successors[20],successors[21] c = successors.pop(-1) successors.append(c+'L') if a == 2: for i in range(b): successors.append(node[i]) successors[2],successors[1] = successors[1],successors[2] c = successors.pop(-1) successors.append(c+'L') for i in range(b): successors.append(node[i]) successors[12],successors[15] = successors[15],successors[12] c = successors.pop(-1) successors.append(c+'D') if a == 3: for i in range(b): successors.append(node[i]) successors[3],successors[4] = successors[4],successors[3] c = successors.pop(-1) successors.append(c+'R') for i in range(b): successors.append(node[i]) successors[13],successors[16] = successors[16],successors[13] c = successors.pop(-1) successors.append(c+'D') for i in range(b): successors.append(node[i]) successors[23],successors[20] = successors[20],successors[23] c = successors.pop(-1) successors.append(c+'U') if a == 4: for i in range(b): successors.append(node[i]) successors[4],successors[5] = successors[5],successors[4] c = successors.pop(-1) successors.append(c+'R') for i in range(b): successors.append(node[i]) successors[14],successors[17] = successors[17],successors[14] c = successors.pop(-1) successors.append(c+'D') for i in range(b): successors.append(node[i]) successors[24],successors[21] = successors[21],successors[24] c = successors.pop(-1) successors.append(c+'U') for i in range(b): successors.append(node[i]) successors[34],successors[33] = successors[33],successors[34] c = successors.pop(-1) successors.append(c+'L') if a == 5: for i in range(b): successors.append(node[i]) successors[5],successors[4] = successors[4],successors[5] c = successors.pop(-1) successors.append(c+'L') for i in range(b): successors.append(node[i]) successors[15],successors[18] = successors[18],successors[15] c = successors.pop(-1) successors.append(c+'D') for i in range(b): successors.append(node[i]) successors[25],successors[22] = successors[22],successors[25] c = successors.pop(-1) successors.append(c+'U') if a == 6: for i in range(b): successors.append(node[i]) successors[6],successors[7] = successors[7],successors[6] c = successors.pop(-1) successors.append(c+'R') for i in range(b): successors.append(node[i]) successors[16],successors[13] = successors[13],successors[16] c = successors.pop(-1) successors.append(c+'U') if a == 7: for i in range(b): successors.append(node[i]) successors[7],successors[6] = successors[6],successors[7] c = successors.pop(-1) successors.append(c+'L') for i in range(b): successors.append(node[i]) successors[17],successors[18] = successors[18],successors[17] b = successors.pop(-1) successors.append(b+'R') for i in range(len(node)): successors.append(node[i]) successors[27],successors[24] = successors[24],successors[27] c = successors.pop(-1) successors.append(c+'U') if a == 8: for i in range(b): successors.append(node[i]) successors[8],successors[7] = successors[7],successors[8] c = successors.pop(-1) successors.append(c+'L') for i in range(len(node)): successors.append(node[i]) successors[18],successors[15] = successors[15],successors[18] b = successors.pop(-1) successors.append(c+'U') return successors #------------------------------------------

gen_successors: cluster #39 (2)

# 6xxxxxxxx1 (2020-09-20 23:49) def gen_successors(node): successors = [] i=node.index(0) u=[3,4,5,6,7,8] d=[0,1,2,3,4,5] l=[1,2,4,5,7,8] r=[0,1,3,4,6,7] if i in u : node1=node[::] node1[i],node1[i-3]=node1[i-3],node1[i] node1[9] = node1[9] + "U" successors.extend(node1) if i in d : node1=node[::] node1[i],node1[i+3]=node1[i+3],node1[i] node1[9] = node1[9] + "D" successors.extend(node1) if i in l : node1=node[::] node1[i],node1[i-1]=node1[i-1],node1[i] node1[9] = node1[9] + "L" successors.extend(node1) if i in r : node1=node[::] node1[i],node1[i+1]=node1[i+1],node1[i] node1[9] = node1[9] + "R" successors.extend(node1) return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 23:59) def gen_successors(node): successors = [] i=node.index(0) u=[3,4,5,6,7,8] d=[0,1,2,3,4,5] l=[1,2,4,5,7,8] r=[0,1,3,4,6,7] if i in u : node02=node[::];node02[i],node02[i-3]=node02[i-3],node02[i];node02[9] = node02[9] + "U" successors.extend(node02) if i in d : node02=node[::];node02[i],node02[i+3]=node02[i+3],node02[i];node02[9] = node02[9] + "D" successors.extend(node02) if i in l : node02=node[::];node02[i],node02[i-1]=node02[i-1],node02[i];node02[9] = node02[9] + "L" successors.extend(node02) if i in r : node02=node[::];node02[i],node02[i+1]=node02[i+1],node02[i];node02[9] = node02[9] + "R" successors.extend(node02) return successors #------------------------------------------

gen_successors: cluster #40 (2)

# 6xxxxxxxx1 (2020-09-20 19:06) def gen_successors(node): successors = [] a = node.index(0) if a==0: way=["D","R"] for i in way: tmp = list(node) if i =="D": tmp[3] = node[0] tmp[0] = node[3] elif i=="R": tmp[1] = node[0] tmp[0] = node[1] tmp[-1] += i successors += tmp elif a==1: way=["D","R","L"] for i in way: tmp = list(node) if i=="D": tmp[4] = node[1] tmp[1] = node[4] elif i=="R": tmp[2] = node[1] tmp[1] = node[2] elif i=="L": tmp[0] = node[1] tmp[1] = node[0] tmp[-1] += i successors += tmp elif a==2: way=["D","L"] for i in way: tmp = list(node) if i=="D": tmp[5] = node[2] tmp[2] = node[5] elif i=="L": tmp[1] = node[2] tmp[2] = node[1] tmp[-1] += i successors += tmp elif a==3: way=["D","R","U"] for i in way: tmp = list(node) if i=="D": tmp[6] = node[3] tmp[3] = node[6] elif i=="R": tmp[4] = node[3] tmp[3] = node[4] elif i=="U": tmp[0] = node[3] tmp[3] = node[0] tmp[-1] += i successors += tmp elif a==4: way=["D","R","L","U"] for i in way: tmp = list(node) if i=="D": tmp[4] = node[7] tmp[7] = node[4] elif i=="R": tmp[4] = node[5] tmp[5] = node[4] elif i=="L": tmp[3] = node[4] tmp[4] = node[3] elif i=="U": tmp[4] = node[1] tmp[1] = node[4] tmp[-1] += i successors += tmp elif a==5: way=["D","L","U"] for i in way: tmp = list(node) if i=="D": tmp[5] = node[8] tmp[8] = node[5] elif i=="L": tmp[5] = node[4] tmp[4] = node[5] elif i=="U": tmp[2] = node[5] tmp[5] = node[2] tmp[-1] += i successors += tmp elif a==6: way=["U","R"] for i in way: tmp = list(node) if i=="U": tmp[3] = node[6] tmp[6] = node[3] elif i=="R": tmp[6] = node[7] tmp[7] = node[6] tmp[-1] += i successors += tmp elif a==7: way=["U","L","R"] for i in way: tmp = list(node) if i=="U": tmp[7] = node[4] tmp[4] = node[7] elif i=="L": tmp[7] = node[6] tmp[6] = node[7] elif i=="R": tmp[7] = node[8] tmp[8] = node[7] tmp[-1] += i successors += tmp elif a==8: way=["U","L"] for i in way: tmp = list(node) if i=="U": tmp[8] = node[5] tmp[5] = node[8] elif i=="L": tmp[8] = node[7] tmp[7] = node[8] tmp[-1] += i successors += tmp return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 21:37) def gen_successors(node): successors = [] A = node.index(0) if A == 0: route = ["R", "D"] for e in route: new = list(node) if e == "R": new[1] = node[0] new[0] = node[1] elif e == "D": new[3] = node[0] new[0] = node[3] new[-1] += e successors += new elif A == 1: route = ["R", "L", "D"] for e in route: new = list(node) if e == "R": new[2] = node[1] new[1] = node[2] elif e == "L": new[0] = node[1] new[1] = node[0] elif e == "D": new[4] = node[1] new[1] = node[4] new[-1] += e successors += new elif A == 2: route = ["L", "D"] for e in route: new = list(node) if e == "L": new[1] = node[2] new[2] = node[1] elif e == "D": new[5] = node[2] new[2] = node[5] new[-1] += e successors += new elif A == 3: route = ["U", "R", "D"] for e in route: new = list(node) if e == "U": new[0] = node[3] new[3] = node[0] elif e == "R": new[4] = node[3] new[3] = node[4] elif e == "D": new[6] = node[3] new[3] = node[6] new[-1] += e successors += new elif A == 4: route = ["U", "D", "R", "L"] for e in route: new = list(node) if e == "U": new[1] = node[4] new[4] = node[1] elif e == "D": new[7] = node[4] new[4] = node[7] elif e == "R": new[5] = node[4] new[4] = node[5] elif e == "L": new[3] = node[4] new[4] = node[3] new[-1] += e successors += new elif A == 5: route = ["U", "L", "D"] for e in route: new = list(node) if e == "U": new[2] = node[5] new[5] = node[2] elif e == "L": new[4] = node[5] new[5] = node[4] elif e == "D": new[8] = node[5] new[5] = node[8] new[-1] += e successors += new elif A == 6: route = ["U", "R"] for e in route: new = list(node) if e == "U": new[3] = node[6] new[6] = node[3] elif e == "R": new[7] = node[6] new[6] = node[7] new[-1] += e successors += new elif A == 7: route = ["U", "R", "L"] for e in route: new = list(node) if e == "U": new[4] = node[7] new[7] = node[4] elif e == "R": new[8] = node[7] new[7] = node[8] elif e == "L": new[6] = node[7] new[7] = node[6] new[-1] += e successors += new elif A == 8: route = ["U", "L"] for e in route: new = list(node) if e == "U": new[5] = node[8] new[8] = node[5] elif e == "L": new[7] = node[8] new[8] = node[7] new[-1] += e successors += new return successors #------------------------------------------

gen_successors: cluster #41 (2)

# 6xxxxxxxx1 (2020-09-20 14:33) def gen_successors(node): successors = [] x = 0 y = "" while y != 0 : y = node[x] x += 1 if x == 1 : R = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] L = [] U = [] D = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'D'] elif x== 2 : R = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] L = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] U = [] D = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'D'] elif x ==3 : R = [] L = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] U = [] D = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'D'] elif x == 4 : R = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'R'] L = [] U = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'U'] D = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'D'] elif x == 5 : R = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'R'] L = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'L'] U = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'U'] D = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'D'] elif x == 6 : R = [] L = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'L'] U = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'U'] D = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'D'] elif x == 7 : R = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'R'] L = [] U = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'U'] D = [] elif x == 8 : R = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'R'] L = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'L'] U = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'U'] D = [] elif x == 9 : R = [] L = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'L'] U = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'U'] D = [] else : pass successors = U+D+L+R return successors #------------------------------------------# 6xxxxxxxx1 (2020-09-20 15:36) def gen_successors(node): successors = [] M = 0 a = 0 n = '' while n != 0 : n = node[a] a = a+1 if a == 1 : M=2 R = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] D = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'D'] successors = R+D elif a == 2 : M=3 R = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'R'] L = [node[1],node[0],node[2],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] D = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'D'] successors = R+L+D elif a == 3 : M=2 L = [node[0],node[2],node[1],node[3],node[4],node[5],node[6],node[7],node[8],node[9]+'L'] D = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'D'] successors = L+D elif a == 4 : M=3 R = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'R'] U = [node[3],node[1],node[2],node[0],node[4],node[5],node[6],node[7],node[8],node[9]+'U'] D = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'D'] successors = R+U+D elif a == 5 : M=4 R = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'R'] L = [node[0],node[1],node[2],node[4],node[3],node[5],node[6],node[7],node[8],node[9]+'L'] U = [node[0],node[4],node[2],node[3],node[1],node[5],node[6],node[7],node[8],node[9]+'U'] D = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'D'] successors = R+L+U+D elif a == 6 : M=3 L = [node[0],node[1],node[2],node[3],node[5],node[4],node[6],node[7],node[8],node[9]+'L'] U = [node[0],node[1],node[5],node[3],node[4],node[2],node[6],node[7],node[8],node[9]+'U'] D = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'D'] successors = L+U+D elif a == 7 : M=2 R = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'R'] U = [node[0],node[1],node[2],node[6],node[4],node[5],node[3],node[7],node[8],node[9]+'U'] successors = R+U elif a == 8 : M=3 R = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'R'] L = [node[0],node[1],node[2],node[3],node[4],node[5],node[7],node[6],node[8],node[9]+'L'] U = [node[0],node[1],node[2],node[3],node[7],node[5],node[6],node[4],node[8],node[9]+'U'] successors = R+L+U elif a == 9 : M=2 L = [node[0],node[1],node[2],node[3],node[4],node[5],node[6],node[8],node[7],node[9]+'L'] U = [node[0],node[1],node[2],node[3],node[4],node[8],node[6],node[7],node[5],node[9]+'U'] successors = L+U return successors