如何从一组随机生成的坐标生成二维网格?

时间:2016-09-06 12:34:56

标签: python random grid 2d

使用它的计划是基于文本的Space RPG游戏。我想生成随机点(x,y坐标) - 我已经完成了 - 然后用2d网格上显示的连接绘制它们。作为一方,我如何标记这些坐标?

随机生成的代码如下:

import time
import random
import math

radius = 200
rangeX = (0, 2500)
rangeY = (0, 2500)
qty = 40 

deltas = set()
for x in range(-radius, radius+1):
    for y in range(-radius, radius+1):
        if x*x + y*y <= radius*radius:
            deltas.add((x,y))

randPoints = []
excluded = set()
i = 0
while i<qty:
    x = random.randrange(*rangeX)
    y = random.randrange(*rangeY)
    if (x,y) in excluded: continue
    randPoints.append((x,y))
    i += 1
    excluded.update((x+dx, y+dy) for (dx,dy) in deltas)
    time.sleep(0.001)

stars = {}
keyName = 1
for item in randPoints:
    stars[str(keyName)] = [item, 0,]
    keyName += 1

1 个答案:

答案 0 :(得分:0)

与其向您提供直接答案,我会指出您的大方向,因为这个问题的范围似乎很大。

考虑使用pygame;它为您提供绘图功能,有一个可用于检测用户输入的事件系统,并且具有许多其他有用的功能,用于创建游戏,顾名思义。

强烈考虑使用课程;您的代码将变得更具可读性和灵活性。为星星添加功能,如标签,表面温度,发射(脉冲?)光的颜色,可用的原材料等等,变得更容易处理。

要生成名称,您可以将现有的星名称放在文本文件中,加载它并随机选择一个。对于额外的奖励积分,请使用马尔可夫链来生成看似随机的名称。

https://www.pygame.org

https://docs.python.org/3/tutorial/classes.html

https://en.wikipedia.org/wiki/Markov_chain