2Dマップが次のように表されるプロジェクトでNumpyとPythonを使用しています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]]
特定の境界までマップをスライスするにはどうすればよいですか?