0

我一直在使用代码

BOARD = [[0 for i in range(GRIDWIDTH)] for j in range(GRIDWIDTH)]

为我的 pygame 项目的一部分创建一个二维“网格”。

我想知道如何用不同的数字填充网格的边缘,所以我在网格的中心全是零,边缘是一。

谢谢!

4

2 回答 2

1
BOARD = [[1] * GRIDWIDTH] + [
     [1] + [0]*(GRIDWIDTH-2) + [1] for j in range(GRIDWIDTH-2)
   ] + [[1] * GRIDWIDTH]
于 2013-02-23T13:20:30.223 回答
1

我建议你在这里使用 numpy

>>> import numpy as np
>>> grid = np.zeros(shape=(10,10))
>>> grid[[0,-1],:] , grid[:,[0,-1]] = 1, 1
>>> grid
array([[ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.],
       [ 1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.]])
>>> 
于 2013-02-23T13:35:42.030 回答