![]() |
|
![]() |
#1 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
рандомно растягивая пути до заданных расстояний в ветвях графа
а можно с вами сфотографироваться? я ж тут вчера полдня потратил на сортировку ассоциативного массива по трем полям.
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#2 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
я ж тут вчера полдня потратил на сортировку ассоциативного массива по трем полям.
енто в каком языке? На новых плюсах с блямбдами это вроде просто делается. причём, это (сортировка) сложнее, чем пути по графу растягивать ![]() изначально я боялся вообще голову сломать, потому что хотел сначала рисовать красивые уровни, как это в оригинале было. Для этого начал делать анализатор (красоты, в том числе), решил учить ИИ, что красиво, а что нет.... А потом чё-то как-то мне в голову пришла эта простая реализация ![]() Там, правда, надо будет ещё сделать равномерность, но это фигня уже... главное - основной алгоритм я увидел. |
![]() |
[Ответить с цитированием] |
![]() |
#3 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
в каком языке?
яваскрипт. Сначала чё то пыжился с перебором, а потом взял стандартный sort и свою функцию в него воткнул. И вот тут моя подпись как нельзя кстати...
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#4 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
яваскрипт.
ууу... когда он мне только попал в руки, я возрадовался. Возможность так гибко динамичить контент в html вызывала прям счастье. потом несколько лет я временами возвращался к нему, когда делал сайты для себя, и тоже всё было ок. а вот потом, неожиданно пришлось столкнуться с ним на работе, но уже не в чистом виде, а в виде фреймворка, который делали какие-то программерские маньяки и извращенцы ![]() PS: сижу рисую алгоритмы генерации графа карандашом на бумажке |
![]() |
[Ответить с цитированием] |
![]() |
#5 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
на бумажке оно всё красиво получается, а начинаешь кодить и оно всё как то не так. Самому себе ТЗ писать штука прям отвратительная. А когда тебе пишут ТЗ - ещё хуже.
![]()
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#6 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
я когда маленький был, код на бумаге писал, потом приходил в компьютерный клуб и вбивал с бумажки
![]() не, а мне всякие концептуальные вещи удобнее на бумаге придумывать. Когда сидишь и рисуешь, в голове как-то всё удачнее складывается... |
![]() |
[Ответить с цитированием] |
![]() |
#7 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
Дык мы все на бумажках сначала писали. Особенно когда на бейсике рисовали картинки дома на листках в клетку, а потом писали программу с координатами. Первое время было прикольно, но когда нужно было чуть чуть поправить какую нить линию, это был гемор ещё тот. Эту линию фиг найдёшь в коде, т.к. этих линий десятки, а то и сотни. А потом я написал редактор, который по рисунку составлял программу на бейсике с координатами линий. За это был признан читером и мне было запрещено юзать эту программу. Я должен был как все тыкаться в рисунок, вычисляя координаты следующей линии
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#8 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
За это был признан читером и мне было запрещено юзать эту программу.
странно это всё, суть программирования - как раз поручить программам делать как можно больше за человека ![]() меня тут подбивают сделать скрипт, который будет за нас работать на работе ![]() девлоги: вчера, таки, сделал минимальный тупой однослойный генератор. Больше времени ухлопал на генерацию самого графа, чем на генерацию "лабиринта" по нему. Вышло забавно, как в анекдоте, "программа делает то, что программист написал, а не то, что хотел, чтобы программа делала" ![]() |
![]() |
[Ответить с цитированием] |
![]() |
#9 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
странно это всё
ну там был расклад типа "нехрен выпендриваться, делай как все по бумажке" скрипт, который будет за нас работать на работе этот скрипт нужно давно было написать, чтобы он работал, а ты создавал видимость бурной деятельности. сделал минимальный тупой однослойный генератор скрины... скрины... ![]() программа делает то, что программист написал во-во, мне тут дали задание прикрутить
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#10 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
скрины... скрины...
да там пока ничем не отличается от тех, что 3 страницы назад, только лабиринт более прямой и уродливый ![]() сейчас делается 4 входа-выхода с карты, алгоритм тупо попарно соединяет их в граф, потом по графу строит карту: соединяет переходами и лестницами вершины графа. Я быстро слепил это, чтобы было от чего отталкиваться. Т.е. наступил тот чудесный момент, когда можно раскурить план более сложного построения карты ![]() какой же я был деревянный три года назад... у меня, когда я смотрю свой старый код, тоже постоянно такие мысли про себя ![]() но ящетаю, это хороший знак, значит идёт развитие ![]() |
![]() |
[Ответить с цитированием] |
![]() |
#11 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
![]()
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#12 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
![]() слева, сверху, справа и снизу на досках двери (в другие карты) и в центре точка спауна. Алгоритм соединяет их переходами и лестницами, тупо по катетам. я выкрутил масштаб, чтобы карта влезла в экран |
![]() |
[Ответить с цитированием] |
![]() |
#13 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
ну теперь то прям всё понятно стало...
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#14 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
теперь буду усложнять алгоритм
это, как молнию рисовать: из точки А в точку Б проводишь отрезок. Потом делишь его пополам, точку деления оттаскиваешь в сторону на рандом. Получается 2 отрезка. Их тоже делишь пополам, точки рандомно оттаскиваешь в стороны, получается 4 отрезка... ну и так далее ![]() |
![]() |
[Ответить с цитированием] |
![]() |
#15 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
ещё пара вариаций, карта та же, входы-выходы там же.
тут все линки просто поделены ровно пополам ![]() тут все линки просто поделены на 4 части с в рандомном процентном соотношении 20..80, плюс новые узловые точки могли быть рандомно сдвинуты по вертикали и горизонтали (на 8 и 5 клеток соответственно) ![]() |
![]() |
[Ответить с цитированием] |
![]() |
#16 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
https://prnt.sc/iph4bw - непроходимый угол?
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#17 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
ага, там и справа обрывающаяся лестница. Там надо ещё работать и работать над алгоритмом.
между тем, я вчера менял зёрна и бегал немного по лабиринту ![]() это на скрине его весь видно, а в "игре" видно небольшой участок. |
![]() |
[Ответить с цитированием] |
![]() |
#18 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
в 3D хоть бегал то?
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#19 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
не, уровень (вертикальный) пока один. Рендер 2D и без анимации, просто спрайты
|
![]() |
[Ответить с цитированием] |
![]() |
#20 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
загнулась идейка?
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#21 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
нет, там не всё так просто, с генерацией лабиринтов
я итерационно развиваю алгоритм построения были моменты, когда он, пытаясь обойти препятствие перед выходом, генерил в сторону до 20-30 слоёв. Но так и не осиливал ![]() я уже начинаю думать, как его упростить, потому что иногда он, когда долго не может выйти с конечной точки, начинает ходить назад по узлам и пробовать идти с них. Вкупе с переходами между уровнями уже даже на двух переходах, с картой, трудно найти правильный путь ![]() ну и пока я не могу 100%гарантировать сходимость. Т.е. теоретически возможна ситуация, когда одна ветка полностью перекроет путь к не своему выходу. |
![]() |
[Ответить с цитированием] |
![]() |
#22 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
Всё бы ему автоматизировать. Нарисуй сотню уровней вручную и хватит пока.
Помнится меня как-то одна работница попросила помочь посчитать по компаниям в экселе восьмиметровый файлик, тыщи на полторы строк. Там было несколько условностей. Вроде задача несложная, но я промудохался с ней целый день. И вот я такой горд собой в конце дня скидываю посчитанный файлик, на что получаю ответ "я тебя не дождалась, на калькуляторе вручную уже посчитала и ещё в обед отчет отправила в главный офис"
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#23 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
Ну, во-первых, рисовать 100 уровней это долго, а во-вторых, если я их нарисую, мне будет их неинтересно исследовать
![]() |
![]() |
[Ответить с цитированием] |
![]() |
#24 |
Модератор
Злыдень немрущий Join Date: сен 2000
Location: Краснодар
Posts: 2,333
|
что за эгоизм? прежде всего нужно думать о избирателях
![]() построил, сам прошёл, проверил что всё работает, поставил галочку, что уровень играбельный. А то комп тебе как насоздаёт уровней, в которых будут затыки. Помнится в героях стоишь автокарту, потом бегаешь бегаешь, вроде всё норм, находишь артифакт крутой, а подхода у нему нет. Абыдна.
__________________
Если у Вас ничего не получается, прочитайте инструкцию - обычно помогает |
![]() |
Дневник [Ответить с цитированием] |
![]() |
#25 |
в поле воин...
Join Date: сен 2001
Location: Новосибирск
Posts: 918
|
так в героях как оно строилось как: сначала навалим кучами тип земли, потом сверху деревьев и гор, потом продырявим дороги до замков, потом натыкаем в пустых местах ресурсы и артефакты. А в самом движке игры не всегда можно было пройти в дыру. С другой стороны, в героях был dimension door.
я хочу сделать устойчивый алгоритм, который генерит в 3D (2D + 1D) лабиринт, в котором всегда из N точек можно попасть в M точек. И у меня пока плохо выходит ![]() кроме всего прочего, проблемы там в отладке. Когда у тебя алгортим на каком-нить 150-м шаге делает что-то странное, приходится затратить время, чтобы выловить и проанализировать ситуацию. |
![]() |
[Ответить с цитированием] |
![]() |
|
|