Как я могу добавить несколько значений в массиве numPy? - PullRequest
0 голосов
/ 20 февраля 2019

Я делаю змеиную игру в пигаме, и мне нужно сделать массив пигамовских ректов.Когда я тестировал код, чтобы увидеть, работает ли основная идея, это не так.Когда он должен был печатать

[[0,0],
[10,0],
[20,0],

и так далее, пока не достигнет наибольшего значения x, а затем прибавит десять к значению y, он просто печатает значения x, когда значение y всегда0. Я новичок в Pygame и Python, поэтому любая помощь будет оценена.Мой код:

class Grid:

def __init__(self, gridSize):

    self.gridSize = gridSize
    self.numX = int(screenX / gridSize)
    self.numY = int(screenX / gridSize)
    self.xList = []

    for y in range(0, self.numY * 10, 10):

        for x in range(0, self.numX * 10, 10):

            self.xList.append((x,y))

        if y == 0:

            self.array = np.array(self.xList)

        else:

            np.append(self.array, self.xList)

        self.xList = []

    print(self.array)

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Для начала, вы не выполняете итерацию в диапазоне Y: self.numY = int(screenX / gridSize) должно быть self.numY = int( screenY / gridSize)

0 голосов
/ 20 февраля 2019

Большинство (если не все) numpy команд не изменяют свои массивы на месте.Они возвращают новый массив, но старый массив остается без изменений.

Таким образом, при вашем else вам потребуется

else:
   self.array = np.append(self.array, self.xList)

.обновите self.array, чтобы он содержал новый добавленный массив.

Также объясняется, почему вы видите распечатки только для y = 0, а не для других значений.(Вы можете прийти к такому же выводу, отладив и пройдя по коду. Может быть, в следующий раз? :-))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...