我编写了以下Python程序:
该程序生成30x30二维列表,并在网格周围随机放置10个标记。我想修改此程序,以便在放置标记时连续生成30x30 2D,并且仅当每个标记之间有一定的间距(例如至少相距5米)时停止。我知道我必须使用毕达哥拉斯定理来实现这一点,但不知道如何在代码中实现它
import random
listSize = 30
marks = 10
grid = []
for i in range(listSize):
grid.append([0] * listSize)
for i in range(marks):
x = random.randint(0, listSize - 1)
y = random.randint(0, listSize - 1)
grid[x][y] = 1
for row in grid:
print(row)
与其在网格中存储标记,不如创建一个加法列表来存储每个标记的x、y位置,然后循环检查每对标记是否满足条件。比如说:
注意
math.dist
仅在Python3.8及更高版本中可用,您必须自己在更低版本中编写距离函数这里有一个有点天真的命中或未命中的方法:
例如:
当然,将这样的点列表加载到网格中很容易:
相关问题 更多 >
编程相关推荐