我正在尝试制作一个迷宫生成器,我正在尝试均匀地展开对象而不让它们重叠。我已经做了一个函数,可以将坐标捕捉到网格上。此时栅格捕捉为50。我遇到的问题是尽量使我的坐标不重叠。如果我已经有一个对象在(100,100),我不想另一个对象去(100,100)。如果你想要整个文件,我可以给你,但堆栈溢出不允许。由于某些原因包含的代码不起作用,但它确实像它应该的那样。你知道吗
objectXLst = []
objectYLst = []
objectXYLst = [(1, 1)]
def check_list(listToCheck, valToCheck):
objectX = valToCheck[0]
objectY = valToCheck[1]
objectXY = valToCheck
for i in range(len(listToCheck)):
while listToCheck[i] == objectXY:
resultForCheck = True
objectX = divisible_random(0, screenWidth, gridSnapVal)
objectY = divisible_random(0, screenHeight, gridSnapVal)
objectXY = (objectX, objectY)
print("{}, {}, checking".format((objectX, objectY), valToCheck), listToCheck[i])
else:
break
return objectX, objectY
for i in range(int((screenWidth*screenHeight)/gridSnapVal**2)):
index = 0
objectX = divisible_random(0, screenWidth, gridSnapVal)
objectY = divisible_random(0, screenHeight, gridSnapVal)
counter = 0
goThru = True
val = check_list(objectXYLst, (objectX, objectY))
objectX, objectY = check_list(objectXYLst, (objectX, objectY))
counter = 0
if remove1st is True:
objectXYLst.remove((1, 1))
remove1st = False
print(objectX, objectY)
objectXLst.append(objectX)
objectYLst.append(objectY)
objectXYLst.append((objectX, objectY))
gameObjectsList.append(gameObjects)
尽管上面Ethan的评论有助于我们给出更好的答案,但通过使用Pythonsets并测试这些代码的成员身份,您的代码的第一部分似乎可以变得更简单。这比手动遍历列表快得多,也容易得多。你知道吗
例如
相关问题 更多 >
编程相关推荐