我在一个项目中使用 Numpy 和 Python,其中 2D 地图由ndarray
:
map = [[1,2,3,4,5],
[2,3,4,2,3],
[2,2,2,1,2],
[3,2,1,2,3],
[4,6,5,7,4]]
MAP_WIDTH = 5, MAP_HEIGHT = 5
一个对象有一个元组位置:
actor.location = (3,3)
和一个视图范围:
actor.range = 2
如何编写函数actor.view_map(map)
,以便地图返回演员位置周围的区域,直至某个范围。例如(使用上面的地图),
range = 1
location = (3, 2)
=>
[[2,3,4],
[3,4,2],
[2,2,1]]
但如果演员的范围延伸得太远,我希望地图充满-1:
range = 1
location = (1,1)
[[-1,-1,-1],
[-1, 1, 2],
[-1, 2, 3]]
最简单的情况是范围为 0,它返回当前正方形:
range = 0
location = (1, 2)
[[2]]
如何将我的地图切片到某个边界?