我创建的对象,与random
选择哪种类型的地形是哪里,它有哪些天气。这对一个地方来说很好,但现在我想把它做大并创建一张地图。我创建了一个包含多个地形的numpy
矩阵,但我不希望它是随机的,因为您可以在示例中看到,在海边有一个湖,它没有任何意义。 如何创建此地图使其看起来真实?地图RPG创建模拟
比如我有一个类型的地形这个矩阵:
[['high mountain' 'high mountain' 'high mountain']
['town' 'town' 'forest']
['house' 'lake' 'sea']]
和这样的天气:
[['windy' 'sunny' 'cloudy']
['sunny' 'light' 'cloudy']
['light' 'sunny' 'light']]
可能的地形是:洞穴,废弃的房子,城堡,河流,森林,房子,山,高山,丛林,沙漠,海,湖,镇,城市,农村。
可能的天气是:多雨,晴天,阴天,暴风雨,多风,光。
目前,我创建这样的:
map_1=numpy.eye(3, dtype=object)
for i in range(3):
for j in range(3):
map_1[i,j]=Place()
#Where Place it is the object that randomly generates the terrain and the weather
我想使用此功能,我发现here:
def weighted_choices(choices, weights):
import random as rdm
total = sum(weights)
treshold = rdm.uniform(0, total)
for k, weight in enumerate(weights):
total -= weight
if total < treshold:
return choices[k]
和检查四边后或至少是那些已经创建,根据设定的权重偏好(我可以设置Psea = 0)创建新的地形。
的期望结果应考虑到它们是将要创建的一个和行为的周围地形的类型,其中类型地形的和谐与天气有,使用weighted_choices功能或其他功能。
[['high mountain' 'high mountain' 'high mountain']
['town' 'town' 'forest']
['house' 'countryside' 'sea']]
和这样的天气:
[['windy' 'sunny' 'cloudy']
['sunny' 'light' 'cloudy']
['light' 'sunny' 'light']]
我已经试过是创建随机地图,然后手动检查并替换我不喜欢别人的地形。但我没有找到一种方法来考虑周围环境。
这个问题似乎是脱离主题,因为它属于http://gamedev.stackexchange.com – jonrsharpe
@jonrsharpe我已经在那里检查它,它不适合那里。我问我怎么编程,所以我觉得它适合这里。但是,如果我没有收到答案,我会在那里尝试 – Llopis
为了使这个问题更适合这里,请提供以下内容:准确地说出你想要发生的事情,以及正在发生的事情(如果错误,提供追溯,如果意外产出提供投入,预期产出,实际产出)。 “不是很有效”是不够的信息。如果你的代码有效,但需要改进,你可以尝试http://codereview.stackexchange.com – jonrsharpe