我正在用 Python 开发一个程序生成的游戏世界。世界的结构将类似于 MUD/MUSH 范式,房间和出口排列为有向图(房间是节点,出口是边)。(请注意,这不一定是无环图,尽管我愿意考虑无环解决方案。)
对于世界生成算法,不同类型的房间将通过每个房间的“标签”属性(一组字符串)来区分。一旦它们被实例化,就可以通过标签(单标签、标签交集、标签联合、最佳候选)来查询和选择房间。
我将使用模板对象和工厂方法的美化系统创建特定类型的房间——我认为这里的细节并不重要,因为当前的实现可能会改变以匹配所选的策略。(例如,可以将标签和标签查询添加到房间模板系统。)
例如,我将拥有以下类型的房间:
side_street
,main_street
, 广场, 酒吧, 酒店, 餐厅, 商店, 办公室
最后,问题是:实例化和安排这些房间以创建可能对应于给定规则的图形的好策略是什么?
一些规则可能包括:每 10,000 人拥有一个广场;main_street
连接到plaza
; side_street
连接到main_street
或side_street
;hotel
青睐main_street
或plaza
联系,并相应地接收更多标签;等等
如果建议的策略能够实现数据驱动的实施,则可以加分。