24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Генерация карты

 Аноним 16/05/24 Чтв 19:56:44 #1 №951456 
Clipboard02.png
Clipboard03.png
Clipboard04.png
Clipboard05.png
Подскажите, как можно сгенерировать карты как в Генерале? (первые три скрина). В примерах карты 50 на 50 для 7 стран. При этом территории одинакового размера.

Мой максимум - это сгенерировать диаграмму Вороного. В примере я сгенерил 50 на 50 поле для 7 стран (скрин 4). При этом разбиение все равно не идеальное, размеры стран слегка отличаются. Ну и выглядит всрато. Границы прямые. И положение стран всегда одинаковое, так как и при рандомном выборе стартовых точек генерации не получится сгенерить территории одинакового размера.

https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0_%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D0%BE%D0%B3%D0%BE
Аноним 16/05/24 Чтв 20:04:21 #2 №951460 
image
image
дрочилися в эту игру вдвоём на компе в 2001 году
Аноним 16/05/24 Чтв 20:22:52 #3 №951469 
>>951460
да, игра великая, но исходники не выкладывают
Аноним 16/05/24 Чтв 21:05:00 #4 №951480 
Figure1.png
import numpy as np
import matplotlib.pyplot as plt
from scipy.spatial import Voronoi, voronoi_plot_2d

# Generate random points
points = np.random.rand(10, 2)

# Calculate Voronoi diagram
vor = Voronoi(points)

# Visualize the Voronoi diagram
fig, ax = plt.subplots()
voronoi_plot_2d(vor, ax=ax)
plt.show()

Ну да, у диаграмы Вороного будут всегда прямые границы.
Может, объединять некоторые ячейки?
Аноним 16/05/24 Чтв 21:20:50 #5 №951485 
>>951480
вот сейчас копаю в этом направлении: генерировать кучу маленьких сегментов диаграммы Вороного и как-то их мерджить, а потом балансировать размеры полученных территорий. ChatGPT полнейший даун в это вопросе, к сожалению.
Аноним 16/05/24 Чтв 21:24:18 #6 №951487 
>>951485
Ещё можно модулировать шумом
https://www.redblobgames.com/maps/noisy-edges/
Аноним 16/05/24 Чтв 21:29:29 #7 №951489 
>>951456 (OP)
https://ru.wikipedia.org/wiki/Клеточный_автомат

Предлагаю такой алгоритм.
1. Изначально поле заполнено нулями.
2. Ставим несколько рандомных точек - зёрна стран.
3. Гоняем клеточный автомат по правилу:
>клетка страны может захватить только нули
4. Когда нулей не осталось, считаем площади.
5. Если площади не равны, гоняем по правилу:
>клетка жирной страны захватывается тощей
6. Когда площади +/- равны, карта готова.

Какие будут результаты - не знаю, пробуй сам.
sage[mailto:sage] Аноним 16/05/24 Чтв 23:23:44 #8 №951521 
>>951489
о, это в markov junior легко делоется.

как и задачка ОПа, там кажись готовое даже есть
Аноним 16/05/24 Чтв 23:30:56 #9 №951523 
>>951521
>markov junior
Игрушка интересная, а как это в игру встраивать?
Аноним 16/05/24 Чтв 23:52:12 #10 №951525 
image.png
>>951521
Крутая штука, но для этой задачи работает примитивно
Аноним 16/05/24 Чтв 23:53:25 #11 №951526 
нашел вот такую штуку, тоже на диаграмме вороного базируется
https://azgaar.github.io/Fantasy-Map-Generator/
Аноним 17/05/24 Птн 16:09:28 #12 №951592 
>>951525
Так надо код немного пописать, чтобы было не примитивно.
Можно начать с вороного, потом наложить шум сверху, и пройтись клеточным автоматом, чтобы разгладить грани и убрать лишний мусор.
comments powered by Disqus

Отзывы и предложения