"パズル"として関数に渡されるリストは変更されており、関数はそれを同じにしておきたいと思います。関数がリストを変更するのを防ぐには?
"""moveDown() works by swapping the empty space with the block above it."""
def moveDown(xPosition, yPosition, puzzle):
returnPuzzle = list()
returnPuzzle.append(puzzle)
returnPuzzle = returnPuzzle[0]
if(puzzle[yPosition][xPosition]!=0): # is space we are moving the block into not empty?
return -1
if(yPosition-1<0):
return -1
print puzzle
#swap
returnPuzzle[yPosition][xPosition] = returnPuzzle[yPosition-1][xPosition]
returnPuzzle[yPosition-1][xPosition] = 0
print puzzle
return returnPuzzle
最初print
文は、関数に渡された元のpuzzle
を返し、それはreturnPuzzle
代わりにpuzzle
に取り組んでいたかのように第二はそれを修正しました。どんな考え?
ファーストプリント:[[2, 1, 3], [6, 4, 5], [8, 7, 0]]
第二の印刷:だからあなたは、リストを作成し、それに値を追加し、リストからその値を取得[[2, 1, 3], [6, 4, 0], [8, 7, 5]]
入力例を教えてください。 –
moveDown(2、2、[[2,1,3]、[6,4,5]、[8,7,0]])は現在使用されているものです。 – user7479988