Да, это я знаю.karagy писал(а):У Бискупа в Адоме посаженые травы плодятся по правилам Конвеевского автомата Life.
Немного играл, но не обратил внимания. Тоже хорошая мысль, но всё-таки хочется порисовать красивые стрелочки. Может подойти на первое время, до появления нормальной графики.Oreyn писал(а):В катаклизме звуки, который ты слышишь вне пределов видимости рисуются знаками вопросов по черному фону в приблизительной точке откуда идет звук. Верю что там алгоритмом специально случайно сдвигают знак. Весьма удобно и наглядно.
Сейчас доделываю разделение/объединение. На нём будет основываться боевая система. Также чуть-чуть порефакторил и добавил соответствующие флаги. Немного забил кодом на идею делать несколько существ в одной клетке.
Оно будет сделано специально не очень свободным: у первой собаки вначале будет список существ, которые она может отделять от себя, начиная с последнего (просто создаётся новое существо). Это делается для того, чтобы во время боя можно было не думать об оптимальной конфигурации списка, а просто воспринимать его как данность.
Дочерние существа обычно не будут делиться дальше.
На отделение существ будут тратиться свободные очки деления очки деления, при присоединении существа обратно они будут возвращаться (пропорционально доле hp присоединяемого существа от его max_hp, остальные очки высвобождаются, и медленно регенерируют в дальнейшем). При смерти отделённого существа очки на его создание просто медленно востановятся (как будто оно присоединилось с 0% hp).
Список существ (лучше называть их ботами) можно будет менять (когда ни одно из существ не отделено и количество очков полное). Существа в списке могут быть разными, но их характеристики будут основываться на характеристиках игрока. Управлять ими будет либо простой бот, либо игрок (но более управляемое существо будет стоить дороже, да и вряд ли я будут делать какого-то бота с прямым управлением, кроме разведчика).
Система нанесения урона достаточно простая ((сила атаки от максимальной до минимальной) - сила защиты), с последующим добавлением стрелкового оружия и огня.
У мобов будет всё то же самое, только, конечно, не у всех и в меньшем масштабе.
Думаю, стоит уже делать какое-то наполнение и код для его быстрого написания (к примеру, можно записывать всех существ в коде, а можно вынести их описание в файл). Порталы до сих пор как-то некрасивым образом ставятся. Нужно будет, кстати, сделать ограничения для мобов на проход через порталы.
Сейчас профиль существа автоматически дополняется (можно сделать существо, задав ему только силу атаки, но тогда все остальные параметры будут взяты из базового профиля). Интересно, сколько существ будет тянуть компьютер? И будет ли лучше, если каким-то образом сокращать ненужные флаги и параметры? И сколько времени на это уйдёт? Узнаю.
UPD: про клеточные автоматы. Цитата отсюда:
It is an old and fairly well documented trick to use cellular automata to generate cave-like structures. The basic idea is to fill the first map randomly, then repeatedly create new maps using the 4-5 rule: a tile becomes a wall if it was a wall and 4 or more of its eight neighbors were walls, or if it was not a wall and 5 or more neighbors were. Put more succinctly, a tile is a wall if the 3x3 region centered on it contained at least 5 walls. Each iteration makes each tile more like its neighbors, and the amount of overall "noise" is gradually reduced:
45% случайных стен в начале, 5 шагов:Это старый трюк — использовать клеточные автоматы. Основная идея — заполнить поле случайным образом, и применить к нему клеточный автомат… клетка становится стеной, если в квадрате 3 на 3 с центром в этой клетке не меньше пяти стен.
Код: Выделить всё
############################################################
###....####################################.....############
##......######################..#########.........##########
##......#####################....#######...........####.####
##......###################.........................##...###
##......##################..........................###...##
#........##############.............................###...##
#........#############...............................#....##
##.......##############..................................###
##.......###..############..............................####
##.......##....############.............................####
#..............############...###........................###
#...............###########..#####...............##.......##
#................#################...............##.......##
##.....#####..........###########....#..........###.......##
##....#######...........########....###.........####......##
##....#######............######....####........#####......##
##....#######.............####....#####.......#####......###
#......######..............###....####........####......####
#.......######.............###...####.........###.......####
#........#####.............###..####.....................###
##........####..............#...####.....................###
#####......##...................####.....................###
######...........................##.....................####
######..................................................####
######.........###.....................####.............####
######......#########.................######............####
#######....#############.......##############.....###..#####
##############################################..############
############################################################