sda*_*das 2 python grid pygame
这是用Python和Pygame实现的,但它是一个相当普遍的编程问题(意思是独立于实现).
我有一个函数,它接受x和y整数作为输入,并应生成一个3x3网格的相邻点(包括x和y).
注意:0,0原点从左上角开始.向右移动时x增加,y向下移动时增加.
例如.
def nearest_grid(x, y):
return [[(x-1,y-1),(x,y-1),(x+1,y-1)],[(x-1,y)(x,y),(x+1,y)],[(x-1,y+1),(x,y+1),(x+1,y+1)]]
Run Code Online (Sandbox Code Playgroud)
因此,给定一个网格和一个点(标记为p),它将以下列为3个列表的列表:
x x x
x p x
x x x
Run Code Online (Sandbox Code Playgroud)
这是在Python中执行此操作的最有效/易读的方法吗?
编辑:假设我想传递一个半径值(上面的半径值为1).所以,如果我通过半径值为2,那么上述方法很快就会变得很烦人.有更普遍的方式吗?
def nearby_grid_points(x, y, r=1):
res = []
for dy in xrange(-r, r+1):
res.append([(x+dx, y+dy) for dx in xrange(-r, r+1)])
return res
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
642 次 |
| 最近记录: |