我正在计算曼哈顿的N-Puzzle游戏的距离。我在所有网站上搜索过,但建议的解决方案并不好。
我正在尝试使用此代码:
def calculateManhattanDistance(matrix):
size = len(matrix)
manhattanDistanceSum = 0
for i in range(size):
for j in range(size):
value = matrix[i][j]
if(value != 0):
targetX = (value)/size
targetY = (value)%size
dx = i-targetX
dy = j-targetY
manhattanDistanceSum = manhattanDistanceSum + abs(dx)+ abs(dy)
矩阵'目标是:
0 1 2
3 4 5
6 7 8
如果我尝试计算下一个矩阵中的距离(与目标相同):
0 1 2
3 4 5
6 7 8
建议的解决方案是3:S但它必须是0
我正在使用此页面来计算它:Manhattan distance但解决方案对我不利。
对不起我的普通英国人!