'''
Each room has 4 sides: top, left, bottom, right. False means no door in that side, True means there's a door in that side.
iTop .. iRight are the indices of the sides.
The lists with numbers contain the indices of rooms that could be adjacent to a given room on that particular side.
So e.g rooms [0] can have rooms [0], rooms [3], rooms [5] and rooms [9] on its iTop side.
Note: I just use random indices in the example.
'''
iTop, iLeft, iBottom, iRight = range (4)
rooms = [
[(False, [0, 3, 5, ...]), False, [0, 4, 7, ...], False, [0, 6, 11, ...], False, [0, 2, 7, ...]],
[(True, [2, 7,....
]
一种方法,简单快速,一旦您预先计算了您的表:
如您的图纸所示,您只有有限的一组可能的房间。 每个房间有四个侧面。 在每一边你都可以预先确定哪些房间可以作为邻居,然后把它们放在一张桌子上。 所以每个房间有四张可能的邻居的桌子。你知道吗
从这个集合中随机选择一个。 第一个房间没有任何限制。 这样你就可以让你的“建筑”一间一间地成长。你知道吗
通过在二维网格上按行、按列系统地工作,可以防止“空”(我猜你的意思是不存在的)房间。你知道吗
要在python3.3中实现这一点,您需要一个图形库。 如果希望保持简单,Python附带的turtle模块可以轻松地处理这个问题。你知道吗
首先使用文档或互联网上的示例熟悉海龟模块。你知道吗
然后试着对我刚才画的东西进行编程。你知道吗
请注意,如果您不希望有任何门通向建筑,这只是一个额外的约束。如果你的建筑在每面外墙上都是正方形的,那么只有特定的房间是允许的。每面外墙都要用一张桌子。你知道吗
如果你想要的只是图形,那么如果每个房间只有一个左墙和一个顶墙(这两个墙都可以有一扇门),你就可以过得容易得多。任何房间都可以作为其他房间的邻居。只有最下面和最右边的房间才有(封闭的)右墙和底墙。你知道吗
但是既然你在写一个游戏,你的房间可能需要四面墙,以使游戏逻辑独立。你知道吗
相关问题 更多 >
编程相关推荐