Сергей
где про заливку можно почитать
Domka
Я это делал на 2 курсе универа, когда только сел за ловку. Было куском курсовой )) Но заливка очень много жрёт памяти.
Можно сделать А*, но там вроде проверки муторнее чем в заливке, и получается типа баланс между качеством и колличеством
Domka
И типа в том же лабиринте мне кажется лучше подойдет заливка ибо А* так или иначе ветвится сильно будет, а на открытых пространствах лучше А* ибо смысла сканировать всю местность нету
Domka
А еще я до этого делал програмку поиска пути заливкой но я сделал это через жепу
Domka
Snusmumriken
https://leifnode.com/2013/12/flow-field-pathfinding/ это ж буквально это :)
Ну я это сам придумывал, но мысль так сделать — весьма очевидная
usernameak
Ну я это сам придумывал, но мысль так сделать — весьма очевидная
алгоритм больше годится для всяких игр-стратегий
usernameak
где куча юнитов идут к одной точке :)
Snusmumriken
Ну вообще как бы да, но памяти жрёт много, и чем больше "клеточек" тем больше
Snusmumriken
И да, моя фигня строит на карте такие поля
usernameak
по факту это вообще алгоритм Дейкстры развёрнутый наоборот :)
Snusmumriken
Обычный поиск в ширину так-то, алгоритм Дейкстры и есть.
usernameak
Обычный поиск в ширину так-то, алгоритм Дейкстры и есть.
ну не прямо совсем - поиск в ширину сам по себе не подразумевает, что ты будешь считать дистанции :)
Snusmumriken
Уф
Snusmumriken
Открой форточку
usernameak
Snusmumriken
Я это делал на 2 курсе универа, когда только сел за ловку. Было куском курсовой )) Но заливка очень много жрёт памяти.
Я в этой хрени избавлялся от рекурсии тем, что заливал четырьмя циклами по разным направлениям. Типа красим сверху вниз справа-налево, потом снизу вверх справа налево, и бла-бла. Но чтобы всё закрасить таки надо довольно много раз пробегать. Но избавляемся от рекурсии.
Hello, World! 🎄
Domka
Так и сделаю
UtoECat
роль си весьма неплохо переводится на луашку: если что-то надо - сам пиши. Но написать можно не всё
написать можно всё и на чём угодно. Вопрос только в том как быстро думаю убрать взаимодействие с глобальными переменными без явного указания global и как тогда вызывать print(), table.remove()? 😁 инициализация, присванвание - пофиг, если указано foo = 12 и ее нету в локальных, то получи ошибку Этого, опять-же, можно добиться, установив у _G кастомный __newindex... Опять-же, средствами самой луашки...
UtoECat
метаметодом кароч, __del или что-то вроде того, который будет вызываться в конце тела функции или другой штуки
удачи портировать tobeclosed переменные в luajit 😁 Потомушо там не всё так просто, и они очищаются не только перед return, но и по error() и lua_resetstack() ака раскрутку луашного стека надо будет допиливать
Михаил
перфекционизм - очень плохая штука. Ничего не может быть идеально
по крайней мере у меня есть возможность приблизиться к идеалу. все, что не выполнено ближайшим возможным к идеалу очевидным и несложным способом - приближается к понятию "костыль"
Михаил
я скачивал весь луажит, значит я могу патчить весь луажит
Михаил
тем более зачем отказываться, если для использования моего диалекта УЖЕ нужно скачать мою репу и скомпилировать груду сишного кода
UtoECat
по крайней мере у меня есть возможность приблизиться к идеалу. все, что не выполнено ближайшим возможным к идеалу очевидным и несложным способом - приближается к понятию "костыль"
а мне кажется это борьбой с проблемами, которых нет :) я понимаю почему некоторые фичи ты хочешь сделать или переделать, но... Порой стоит остановиться на малом. На том, чего хотелось изначально. А то ты переделаешь луашку до такого уровня, что потеряешь вообще любую возможность юзать готовые либы. И другим понимать код на твоей луашке. А то этот проект сам по себе на два года затянется. И только для того, чтобы майк возможно выпустил новую версию luajit лучше и быстрее чем текущая, и тебя опять дёргал перфекционизм портировать все свои изменения :)
Михаил
вот Снус пусть делает betterlua на чистом луа, у меня может либы на луа тоже будут, но большая часть изменений все равно касается си
UtoECat
git remote add source <ссыль на оригинальныц луажит> git pull -u source --rebase
а ты думаешь трогать саму генерацию байткода, его формат и опкоды, и парсер с лексером никто не будет ближайшие лет десять? 😁 Ну да ладно...
Михаил
а если буду трогать то создам еще одну репу и попрошу залить в оригинальный луажыт, ничего ж кроме перфа не должно измениться
Михаил
хтя может измениться, если по хорошему добавлять операторы += -=
Domka
Domka
Прорешал его в тетради
Domka
Хочу найти какие нибудь зацепки, чтоб без двумерного массива создать условия не вхождения в заполненные клетки
Hello, World! 🎄
Алгоритм поиска пути?
Hello, World! 🎄
Хочу найти какие нибудь зацепки, чтоб без двумерного массива создать условия не вхождения в заполненные клетки
Если карта 2d массив, то что это за условие такое, что без двумерного массива?
Domka
Я использую память карты TIC80 для заполнения значениями занятых клеток
Domka
Если карта 2d массив, то что это за условие такое, что без двумерного массива?
Ну а так массив двумерно одномерный, в котором как бы проще идут "графы" в которых хранится индекс предыдущего графа
Domka
И по нему он ищет путь назад
Domka
А так же хранит в себе значение направления, которое войдет в массив найденного пути чтобы не по координатам идти, а именно чтобы стороны были найдены
Domka
Вот хочу найти способ чтобы вообще не использовать двумерный массив
Domka
И сделать отсечение уже тупиковых графов
Hello, World! 🎄
Сложно
Hello, World! 🎄
У меня проще было
Domka
Можно будет еще веса добавить, и получу А* без двумерного массива
Hello, World! 🎄
Hello, World! 🎄
Вроде это
Domka
А как можно сделать выделение Lua
Hello, World! 🎄
Не понимаю
Domka
Хочу код выделить
Hello, World! 🎄
в tic не знаю
Domka
Да нет тут
Hello, World! 🎄
а так в любом редакторе наверно можно
Domka
Я сюда хочу просто отправить
Domka
У меня короткий
Domka
30 строк
Domka
Вот вся функция, одако массив стороний использует
Domka
Hello, World! 🎄
print("А можно вот так кстати код оформить")
Domka
Вот пусть в виде текстового дока будет
Hello, World! 🎄
Domka
Понял
Domka
--ладно
Domka
Не те ковычки юзал
Hello, World! 🎄
Понял
Михаил
кто-то кроме меня тут еще разбирался в луажите? могу ли я взять выражение типа getsmth().array[5] и вместо традиционного сохранения в 1 регистр сохранить результат сразу 2? насколько я понял это bcemit_store
Михаил
и причем не только сохранить, но и взять в качестве LHS и потом присвоить значение?
Михаил
таким образом чтоб был ровно 1 вызов функции, 1 обращение к члену и 1 индексация... хотя с индексацией вряд ли получится
Hello, World! 🎄
Кому нибудь может будет интересно. Предположение о том, что все комбинации вселенных и всё уже существует и вселенная это число (так как число это представление кода): http://unasanu.xyz Но с этой теорией есть проблема в том, что не понятно где это будет выполняться, число просто существует, но ничего не значит, так как должно где-то на чём то исполняться. Другие при обсуждении объясняют это проблемой контекста.
Сергей
вот кому-то