Подскажите, как можно сгенерировать карты как в Генерале? (первые три скрина). В примерах карты 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
Мой максимум - это сгенерировать диаграмму Вороного. В примере я сгенерил 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
>>460
да, игра великая, но исходники не выкладывают
да, игра великая, но исходники не выкладывают
![Figure1.png](https://2ch.life/gd/thumb/951456/17158827018350s.jpg)
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()
Ну да, у диаграмы Вороного будут всегда прямые границы.
Может, объединять некоторые ячейки?
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()
Ну да, у диаграмы Вороного будут всегда прямые границы.
Может, объединять некоторые ячейки?
>>480
вот сейчас копаю в этом направлении: генерировать кучу маленьких сегментов диаграммы Вороного и как-то их мерджить, а потом балансировать размеры полученных территорий. ChatGPT полнейший даун в это вопросе, к сожалению.
вот сейчас копаю в этом направлении: генерировать кучу маленьких сегментов диаграммы Вороного и как-то их мерджить, а потом балансировать размеры полученных территорий. ChatGPT полнейший даун в это вопросе, к сожалению.
>>456 (OP)
https://ru.wikipedia.org/wiki/Клеточный_автомат
Предлагаю такой алгоритм.
1. Изначально поле заполнено нулями.
2. Ставим несколько рандомных точек - зёрна стран.
3. Гоняем клеточный автомат по правилу:
4. Когда нулей не осталось, считаем площади.
5. Если площади не равны, гоняем по правилу:
6. Когда площади +/- равны, карта готова.
Какие будут результаты - не знаю, пробуй сам.
https://ru.wikipedia.org/wiki/Клеточный_автомат
Предлагаю такой алгоритм.
1. Изначально поле заполнено нулями.
2. Ставим несколько рандомных точек - зёрна стран.
3. Гоняем клеточный автомат по правилу:
>клетка страны может захватить только нули
4. Когда нулей не осталось, считаем площади.
5. Если площади не равны, гоняем по правилу:
>клетка жирной страны захватывается тощей
6. Когда площади +/- равны, карта готова.
Какие будут результаты - не знаю, пробуй сам.
нашел вот такую штуку, тоже на диаграмме вороного базируется
https://azgaar.github.io/Fantasy-Map-Generator/
https://azgaar.github.io/Fantasy-Map-Generator/
>>525
Так надо код немного пописать, чтобы было не примитивно.
Можно начать с вороного, потом наложить шум сверху, и пройтись клеточным автоматом, чтобы разгладить грани и убрать лишний мусор.
Так надо код немного пописать, чтобы было не примитивно.
Можно начать с вороного, потом наложить шум сверху, и пройтись клеточным автоматом, чтобы разгладить грани и убрать лишний мусор.