Построение сетки в Python с координатами и изображением карты - PullRequest
0 голосов
/ 22 ноября 2018

Я довольно новичок в использовании python и мне нужна помощь в небольшом проекте, над которым я работаю.

Итак, сначала я хочу сделать сетку 10х10 из координат, а затем добавить циклфункция, которая может случайным образом выбрать ячейку и каким-то образом сохранить выбранные координаты ячейки, не выбирая одну и ту же ячейку дважды.

До сих пор я придумал это.

x = 1
y = 1

scale = 10

nn = []

for x in range(1,scale+1):
    mm = []
    for y in range(1,scale+1):
        xy = [x,y]
        mm.append(xy)
        #print(xy)
        y=+1
    nn.append(mm)
    x=+1

Out:[[[1, 1],
  [1, 2],
  [1, 3],
  [1, 4],
  [1, 5],
  [1, 6],
    etc

Следующая частьвот где я борюсь.

import random
r = random.randint(1,10)
x = 1
y = r

xy = [x,y]
print(xy)
while x < 10:

    # direction North=1, East=2, South=3
    if y == 1:
        dir = [random.randint(0,1),random.randint(0,1)]
    elif y == 10:
        dir = [random.randint(0,1),random.randint(-1,0)]
    else:
        dir = [random.randint(0,1),random.randint(-1,1)]

    xy = [(a + b) for (a, b) in zip(xy, dir)]

    x = xy[0]
    y = xy[1]

if xy == [(a + b) for (a, b) in zip(xy, dir)]:
    pass
else:
    print(xy)

В конце концов я хотел бы нанести координаты на сетку, а затем поместить изображение карты над сеткой.

Это мой первый вопрос, поэтому, пожалуйста,извините ошибки и кавычки кода.Заранее спасибо

1 Ответ

0 голосов
/ 22 ноября 2018

Насколько я понимаю, вы пытаетесь получить неповторяющуюся случайную выборку из сетки координат. Это можно сделать гораздо проще, например:

import random
grid = [(x,y) for x in range(10) for y in range(10)] # grid points
randomset = random.sample(grid, 5) # get 5 random element from grid

Результат:

>>> randomset
[(6, 6), (4, 7), (7, 7), (1, 7), (0, 3)] # each coordinate will be unique.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...