Сотовые Автоматы Java (Начинающий)
Я создаю игру по образцу Minicraft. Я разместил вопрос о том, как мне сделать рельеф, похожий на тот, что есть в игре, и пользователь под именем Sinkingpoint разместил ответ, ссылаясь на то, что называется клеточными автоматами.
Я понятия не имел, что это было, не говоря уже о том, как это сделать. Я посмотрел и увидел, что это было. Но мне еще предстоит выяснить, как это сделать. Может кто-нибудь объяснить, как это сделать и как это работает, возможно, ссылку или две или даже некоторые исходные коды / примеры.
2 ответа
Для теории, проверьте http://en.wikipedia.org/wiki/Book:Cellular_Automata. Как только вы поймете, что такое сотовые автоматы в целом, следующим шагом будет поиск источников их применения для генерации ландшафта (довольно нестандартный, но не неслыханный случай использования); Я подозреваю, что первоначальное прочтение теории даст вам хорошее представление о методах реализации.
Формально клеточные автоматы являются подклассом динамической системы, где пространство и время дискретны.
В зависимости от рассматриваемой модели, некоторые свойства могут или не могут применяться:
- Компонент модели связан регулярным графом, инвариантным относительно перемещения, поворота и т. Д.
- Дано
S
пространство состояний, правило обновления является функциейF(S^n) -> S
гдеS^n
дается окрестностью клетки. - Правило обновления одинаково для всех компонентов.
- Правило обновления применяется ко всем ячейкам одновременно, создавая состояния
t+1
из штатовt
,
Как правило, клеточные автоматы являются хорошими моделями для имитации динамического окружения (песок, броуновское движение, лесные пожары), поскольку они допускают большой размер и скорость вычислений благодаря своей предельной простоте.
Если вы хотите войти в мир клеточных автоматов, я рекомендую вам поискать игру "Жизнь от Конвея", найти учебник и реализовать его.