我正在使用python中的拼图工作。
我想做的是覆盖要绘制的部分。
例如:
gameMap = np.array([[1 0 0]
[0 1 0]
[0 1 1]])
piece = np.array([[0, 1],
[1, 1]])
如何将地块放在我可以获得结果的地图上
[[1 1 0]
[1 2 0]
[0 1 1]]
或
[[1 0 0]
[0 1 1]
[0 2 2]]
提前致谢。
答案 0 :(得分:3)
添加"的一种方式你在地图上的作品是使用切片。关键是选择一块与游戏形状相同的游戏地图。
gameMap[0:2, 0:2] += piece
输出:
[[1 1 0]
[1 2 0]
[0 1 1]]
OR
gameMap[1:3, 1:3] += piece
输出:
[[1 0 0]
[0 1 1]
[0 2 2]]
答案 1 :(得分:1)
另一种方法是将第二个数组填充到与第一个数组相同的大小。
print gameMap + np.pad(piece, ((0,1), (0,1)), 'constant')
print gameMap + np.pad(piece, ((1,0), (1,0)), 'constant')
虽然切片当然是一种首选(并且性能更高)的方式,但如果你不想在原地使用pad,那么使用pad会更简单。