Я создал объект, который с 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