我写了一个程序,告诉你骑士的动作(国际象棋)。例如,如果我想知道所有可能的动作,我会输入:
possibilites("F4")
结果我得到['D3', 'D5', 'E2', 'E6', 'G2', 'G6', 'H3', 'H5']
了,好的,我做到了,接下来,我必须编写一个函数,在其中输入两个字段,如果这些字段是合法的,你会得到 True,如果不是,你会得到假(我不得不使用以前的功能)。例如:
legal("F4","D3")
>>>True
代码:
def legal(field1,field2):
c=possibilities(field1)
if field1 and field2 in a:
return True
return False
我必须编写以下函数时遇到问题:我必须输入骑士的路径,并且我的函数必须告诉我它是否是合法路径,我必须使用前一个函数。
例如:
>>> legal_way(["F3", "E1", "G2", "H4", "F5"])
True
>>> legal_way(["F3", "E1", "G3", "H5"])
False
>>> legal_way(["B4"])
True
我知道我必须遍历列表并将第一个和第二个项目放入其中legal(field1,field2)
,如果它是假的,那么一切都是假的,但如果它是真的我必须继续到最后,如果我只有一个,这也必须工作场地。我卡住了,怎么办?
def legal_way(way):
a=len(way)
for i in range(0,a-2):
if a==1:
return true
else:
if legal(way[i],way[i+1]):
return True
return False
我得到 True 或 index 超出范围