lion1 =['L',1,[(0,0),(1,0)]]
lion2 =['L',2,[(0,0),(0,1),(1,1)]]
###########
girafe1 =['G',1,[(0,0),(1,0),(1,1)]]
girafe2 =['G',2,[(0,0),(1,0)]]
zebre1 =['Z',1,[(0,0),(1,0)]]
zebre2 =['Z',2,[(0,0),(0,1)]]
elephant1 =['E',1,[(0,0),(0,1)]]
elephant2 =['E',2,[(0,0),(1,0),(0,1)]]
Hippopotam1 =['H',1,[(0,0),(1,0)]]
Hippopotam2 =['H',2,[(0,0),(1,0),(2,0)]]
grille1=[["o","o","o","o","o","o","o","o","o"],["o","o",".",".",".",".",".","o","o"],["o",".",".",".",".",".",".",".","o"],["o",".",".",".",".",".",".",".","o"],["o","o",".",".",".",".",".","o","o"],["o","o","o","o","o","o","o","o","o"]]
Listes_de_tous_animaux=[lion1,lion2,girafe1,girafe2,zebre1,zebre2,elephant1,elephant2,Hippopotam1,Hippopotam2]
def place_libre(x,y,grille,animal):
if grille[x][y]==".":#libre
i=0
temp=[(0,0),(0,0),(0,0)]
for n in range(len(animal[2])):
temp[i]=(x,y)+animal[2][n]
i+=1
if grille[temp[i][0][temp[i][1]]!=".": #depuis position voir si la forme de l'animal correspond a des places vides
return False
print(temp)
return True
place_libre(3,2,grille1,zebre1)
错误为:SyntaxError:语法无效 我试图删除返回值但没有成功/我试图创建一个函数来检查位置是否空闲(在列表中以“。”表示),然后从位置检查动物形式是否不正确获取完整的地方,如果免费则返回true。
答案 0 :(得分:0)
您没有正确索引grille
。
另外,您可以使用Black之类的格式化程序来使代码更具可读性。
lion1 = ["L", 1, [(0, 0), (1, 0)]]
lion2 = ["L", 2, [(0, 0), (0, 1), (1, 1)]]
###########
girafe1 = ["G", 1, [(0, 0), (1, 0), (1, 1)]]
girafe2 = ["G", 2, [(0, 0), (1, 0)]]
zebre1 = ["Z", 1, [(0, 0), (1, 0)]]
zebre2 = ["Z", 2, [(0, 0), (0, 1)]]
elephant1 = ["E", 1, [(0, 0), (0, 1)]]
elephant2 = ["E", 2, [(0, 0), (1, 0), (0, 1)]]
Hippopotam1 = ["H", 1, [(0, 0), (1, 0)]]
Hippopotam2 = ["H", 2, [(0, 0), (1, 0), (2, 0)]]
grille1 = [
["o", "o", "o", "o", "o", "o", "o", "o", "o"],
["o", "o", ".", ".", ".", ".", ".", "o", "o"],
["o", ".", ".", ".", ".", ".", ".", ".", "o"],
["o", ".", ".", ".", ".", ".", ".", ".", "o"],
["o", "o", ".", ".", ".", ".", ".", "o", "o"],
["o", "o", "o", "o", "o", "o", "o", "o", "o"],
]
Listes_de_tous_animaux = [
lion1,
lion2,
girafe1,
girafe2,
zebre1,
zebre2,
elephant1,
elephant2,
Hippopotam1,
Hippopotam2,
]
def place_libre(x, y, grille, animal):
if grille[x][y] == ".": # libre
i = 0
temp = [(0, 0), (0, 0), (0, 0)]
for n in range(len(animal[2])):
temp[i] = (x, y) + animal[2][n]
i += 1
if grille[temp[i][0]][temp[i][1]] != ".":
return False # depuis position voir si la forme de l'animal correspond a des #places vides
print(temp)
return True
print(place_libre(3, 2, grille1, zebre1))