我对使用python还是很陌生,我正在为我正在做的一个小项目寻求帮助。
因此,我首先要在坐标之外制作一个10x10的网格,然后添加一个循环函数,该函数可以随机选择一个单元格,并以某种方式存储它选择的单元格坐标,而无需两次选择相同的单元格。
到目前为止,我已经提出了这个建议。
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)
最终我想将坐标绘制到网格上,然后将地图图像放在网格上。
这是我的第一个问题,因此请原谅错误和代码引号。 预先感谢
答案 0 :(得分:0)
根据我的理解,您正在尝试从坐标网格中获取非重复的随机样本,这可以更容易地做到:
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.