Kamrad.ru

Kamrad.ru (https://kamrad.ru/index.php)
-   Игры (https://kamrad.ru/forumdisplay.php?f=9)
-   -   Klad (https://kamrad.ru/showthread.php?t=90127)

Mips 27-02-2018 08:10

рандомно растягивая пути до заданных расстояний в ветвях графа
а можно с вами сфотографироваться? я ж тут вчера полдня потратил на сортировку ассоциативного массива по трем полям.

CEMb 27-02-2018 11:48

я ж тут вчера полдня потратил на сортировку ассоциативного массива по трем полям.

енто в каком языке? На новых плюсах с блямбдами это вроде просто делается.
причём, это (сортировка) сложнее, чем пути по графу растягивать ;)

изначально я боялся вообще голову сломать, потому что хотел сначала рисовать красивые уровни, как это в оригинале было. Для этого начал делать анализатор (красоты, в том числе), решил учить ИИ, что красиво, а что нет....
А потом чё-то как-то мне в голову пришла эта простая реализация :beer:
Там, правда, надо будет ещё сделать равномерность, но это фигня уже... главное - основной алгоритм я увидел.

Mips 27-02-2018 17:29

в каком языке?
яваскрипт. Сначала чё то пыжился с перебором, а потом взял стандартный sort и свою функцию в него воткнул. И вот тут моя подпись как нельзя кстати...

CEMb 28-02-2018 07:07

яваскрипт.
ууу... когда он мне только попал в руки, я возрадовался. Возможность так гибко динамичить контент в html вызывала прям счастье.
потом несколько лет я временами возвращался к нему, когда делал сайты для себя, и тоже всё было ок.
а вот потом, неожиданно пришлось столкнуться с ним на работе, но уже не в чистом виде, а в виде фреймворка, который делали какие-то программерские маньяки и извращенцы :D но, может просто я уже старый и негибкий, чтобы это понять, потому что у остальных реакция была спокойнее.

PS: сижу рисую алгоритмы генерации графа карандашом на бумажке

Mips 01-03-2018 17:43

на бумажке оно всё красиво получается, а начинаешь кодить и оно всё как то не так. Самому себе ТЗ писать штука прям отвратительная. А когда тебе пишут ТЗ - ещё хуже.
http://magworks.ru/wp-content/uploads/2016/01/swing.jpg

CEMb 02-03-2018 06:22

я когда маленький был, код на бумаге писал, потом приходил в компьютерный клуб и вбивал с бумажки :D
не, а мне всякие концептуальные вещи удобнее на бумаге придумывать. Когда сидишь и рисуешь, в голове как-то всё удачнее складывается...

Mips 03-03-2018 21:40

Дык мы все на бумажках сначала писали. Особенно когда на бейсике рисовали картинки дома на листках в клетку, а потом писали программу с координатами. Первое время было прикольно, но когда нужно было чуть чуть поправить какую нить линию, это был гемор ещё тот. Эту линию фиг найдёшь в коде, т.к. этих линий десятки, а то и сотни. А потом я написал редактор, который по рисунку составлял программу на бейсике с координатами линий. За это был признан читером и мне было запрещено юзать эту программу. Я должен был как все тыкаться в рисунок, вычисляя координаты следующей линии

CEMb 05-03-2018 05:00

За это был признан читером и мне было запрещено юзать эту программу.
странно это всё, суть программирования - как раз поручить программам делать как можно больше за человека :)

меня тут подбивают сделать скрипт, который будет за нас работать на работе :D

девлоги: вчера, таки, сделал минимальный тупой однослойный генератор. Больше времени ухлопал на генерацию самого графа, чем на генерацию "лабиринта" по нему.

Вышло забавно, как в анекдоте, "программа делает то, что программист написал, а не то, что хотел, чтобы программа делала" :D

Mips 06-03-2018 18:25

странно это всё
ну там был расклад типа "нехрен выпендриваться, делай как все по бумажке"

скрипт, который будет за нас работать на работе
этот скрипт нужно давно было написать, чтобы он работал, а ты создавал видимость бурной деятельности.

сделал минимальный тупой однослойный генератор
скрины... скрины... :protest:

программа делает то, что программист написал
во-во, мне тут дали задание прикрутить диагональные лифты к старой карте погоды историю и слайдшоу... второй месяц переписываю... ну как второй месяц... часов 30 в общей сложности... какой же я был деревянный три года назад...

CEMb 07-03-2018 04:35

скрины... скрины...
да там пока ничем не отличается от тех, что 3 страницы назад, только лабиринт более прямой и уродливый :gigi:

сейчас делается 4 входа-выхода с карты, алгоритм тупо попарно соединяет их в граф, потом по графу строит карту: соединяет переходами и лестницами вершины графа. Я быстро слепил это, чтобы было от чего отталкиваться. Т.е. наступил тот чудесный момент, когда можно раскурить план более сложного построения карты :smoker:

какой же я был деревянный три года назад...
у меня, когда я смотрю свой старый код, тоже постоянно такие мысли про себя :D
но ящетаю, это хороший знак, значит идёт развитие :cool:

Mips 07-03-2018 17:31

http://memesmix.net/media/created/3nk3f5.jpg

CEMb 08-03-2018 20:21

http://cemga.com/games/klad/screenshots/klad0004.png

слева, сверху, справа и снизу на досках двери (в другие карты) и в центре точка спауна. Алгоритм соединяет их переходами и лестницами, тупо по катетам.

я выкрутил масштаб, чтобы карта влезла в экран

Mips 08-03-2018 22:34

ну теперь то прям всё понятно стало...

CEMb 09-03-2018 19:53

теперь буду усложнять алгоритм

это, как молнию рисовать: из точки А в точку Б проводишь отрезок. Потом делишь его пополам, точку деления оттаскиваешь в сторону на рандом. Получается 2 отрезка. Их тоже делишь пополам, точки рандомно оттаскиваешь в стороны, получается 4 отрезка... ну и так далее :D

CEMb 10-03-2018 13:37

ещё пара вариаций, карта та же, входы-выходы там же.

тут все линки просто поделены ровно пополам
http://cemga.com/games/klad/screenshots/klad0004.1.png

тут все линки просто поделены на 4 части с в рандомном процентном соотношении 20..80, плюс новые узловые точки могли быть рандомно сдвинуты по вертикали и горизонтали (на 8 и 5 клеток соответственно)
http://cemga.com/games/klad/screenshots/klad0004.2.png

Mips 11-03-2018 00:12

https://prnt.sc/iph4bw - непроходимый угол?

CEMb 11-03-2018 08:37

ага, там и справа обрывающаяся лестница. Там надо ещё работать и работать над алгоритмом.

между тем, я вчера менял зёрна и бегал немного по лабиринту :D
это на скрине его весь видно, а в "игре" видно небольшой участок.

Mips 11-03-2018 10:04

в 3D хоть бегал то?

CEMb 13-03-2018 16:00

не, уровень (вертикальный) пока один. Рендер 2D и без анимации, просто спрайты

Mips 07-05-2018 09:12

загнулась идейка?

CEMb 08-05-2018 10:15

нет, там не всё так просто, с генерацией лабиринтов

я итерационно развиваю алгоритм построения

были моменты, когда он, пытаясь обойти препятствие перед выходом, генерил в сторону до 20-30 слоёв. Но так и не осиливал :)

я уже начинаю думать, как его упростить, потому что иногда он, когда долго не может выйти с конечной точки, начинает ходить назад по узлам и пробовать идти с них. Вкупе с переходами между уровнями уже даже на двух переходах, с картой, трудно найти правильный путь :rolleyes:

ну и пока я не могу 100%гарантировать сходимость. Т.е. теоретически возможна ситуация, когда одна ветка полностью перекроет путь к не своему выходу.

Mips 08-05-2018 20:32

Всё бы ему автоматизировать. Нарисуй сотню уровней вручную и хватит пока.
Помнится меня как-то одна работница попросила помочь посчитать по компаниям в экселе восьмиметровый файлик, тыщи на полторы строк. Там было несколько условностей. Вроде задача несложная, но я промудохался с ней целый день. И вот я такой горд собой в конце дня скидываю посчитанный файлик, на что получаю ответ "я тебя не дождалась, на калькуляторе вручную уже посчитала и ещё в обед отчет отправила в главный офис"

CEMb 09-05-2018 16:53

Ну, во-первых, рисовать 100 уровней это долго, а во-вторых, если я их нарисую, мне будет их неинтересно исследовать :)

Mips 13-05-2018 10:44

что за эгоизм? прежде всего нужно думать о избирателях :D
построил, сам прошёл, проверил что всё работает, поставил галочку, что уровень играбельный. А то комп тебе как насоздаёт уровней, в которых будут затыки. Помнится в героях стоишь автокарту, потом бегаешь бегаешь, вроде всё норм, находишь артифакт крутой, а подхода у нему нет. Абыдна.

CEMb 14-05-2018 05:44

так в героях как оно строилось как: сначала навалим кучами тип земли, потом сверху деревьев и гор, потом продырявим дороги до замков, потом натыкаем в пустых местах ресурсы и артефакты. А в самом движке игры не всегда можно было пройти в дыру. С другой стороны, в героях был dimension door.

я хочу сделать устойчивый алгоритм, который генерит в 3D (2D + 1D) лабиринт, в котором всегда из N точек можно попасть в M точек. И у меня пока плохо выходит :)

кроме всего прочего, проблемы там в отладке. Когда у тебя алгортим на каком-нить 150-м шаге делает что-то странное, приходится затратить время, чтобы выловить и проанализировать ситуацию.


All times are GMT +3. The time now is 11:59.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Любое использование материалов сайта
возможно только с разрешения его администрации.