每个方格都是一个状态。初始状态是“a”。
给定他想要移动的方块颜色的用户输入,程序需要根据该输入找到所有可能的路线。
例如:如果输入是 W(白色),我们从“a”到“e”。如果输入是 R(红色),我们同时从“a”到“b”和“d”。另一个更复杂的例子:如果输入是 WR,我们从 "a" 到 "e" 对于 W,然后从 "e" 到 "b"、"d"、"f" 和 "h" 对于 R .
我有以下python程序:
def chess (input):
A = []
current_state = "a"
A.append ([current_state])
switch = {"a": a, "b": b, "c": c, "d": d, "e": e, "f": f, "g": g, "h": h, "i": i}
new_state = ""
for k in input:
for j in current_state:
new_state = new_state + switch [j] (k)
A.append ([new_state])
current_state = new_state
new_state = ""
for x in range (len (A)):
print (A [x])
chess (input ())
开关是一个字典,其中包含板的每个状态(正方形)的单独功能。这些函数返回一个状态字符串,您可以根据某些输入移动到这些状态。
例如对于状态 a:
def a (character):
if character == 'R':
return "bd"
elif character == 'W':
return "e"
chess 函数以这种方式打印包含状态的矩阵: 对于输入 WR,它给出以下输出:
['a']
['e']
['bdfh']
到目前为止一切顺利,但我需要将所有路线分开。对于相同的输入,我应该有以下输出:
Route 1 : a, e, b
Route 2 : a, e, d
Route 3 : a, e, f
Route 4 : a, e, h
任何想法如何从矩阵中得到它?