Snusmumriken
Написать функцию, которая в строке будет искать сбалансированные шаблоны. Например, вот такое: html = [[ <html> <div> <div> </div> <span/> </div> </html> ]] =string_findBalanced(html, "<div>", "</div>") ><div> <div> </div> <span/> </div>
Nikolai
voyna_i_mir.txt
Snusmumriken
Ну, лично я давно откладывал эту задачку думая, мол "ну щас за пять минут накатаю, хррр.."
Snusmumriken
А тут прям приспичило и я такой: "ухты"
Snusmumriken
В луях прост есть шаблончик сбалансированной фигни, типа %b. Применяется на манер str = "скобки ( фигня (и тут скобок) чутка) бла" =str:match("%b()") >( фигня (и тут скобок) чутка) Но оно работает только с одиночными символами, то есть мы не можем туда загнать что-то полноценное типа тегов или, тем более, регулярок.
fgntfg
Или </br>
fgntfg
И много ночей чтения rfc если хочется сделать правильно
Snusmumriken
Да не, концепция-то тут простая, просто луёвая функция не умеет в сбалансированные регулярки, а мне вот приспичило.
кота
В килограммах
кота
А сколько примерно кода для отображения пони ушло?
Domka
Превед
Domka
Я тут решил опять рейкастом занятся
Domka
И у меня вышло больше профита чем 6 месяцев назад
Domka
Domka
Правда единственная беда с высотой борюсь
fgntfg
Snusmumriken
В луях прост есть шаблончик сбалансированной фигни, типа %b. Применяется на манер str = "скобки ( фигня (и тут скобок) чутка) бла" =str:match("%b()") >( фигня (и тут скобок) чутка) Но оно работает только с одиночными символами, то есть мы не можем туда загнать что-то полноценное типа тегов или, тем более, регулярок.
Ну кароч примерно вот так. local huge, min = math.huge, math.min local function string_bfind(str, head, tail, offset, ex_bounds, plain) local header_start, header_end = str:find(head, offset or 1, plain) if not header_start then return nil end local cursor = header_end local last_tail_start = 0 local counter = 1 while counter > 0 do local ha, hb = str:find(head, cursor + 1, plain) if not ha then ha, hb = huge, huge end local ta, tb = str:find(tail, cursor + 1, plain) if not ta then return nil end counter = counter + (ha < ta and 1 or -1) cursor = min(hb, tb) last_tail_start = ta end if ex_bounds then local a, b = header_end + 1, last_tail_start - 1 return str:sub(a, b), a, b end return str:sub(header_start, cursor), header_start, cursor end local str = "<html><div><div></div><span/></div></html>" print(string_bfind(str, "<div>", "</div>") ) Тупой подсчёт вхождений, но фичеватость присутствует. Можно ещё оптимизировать на пару курсоров, чтобы не переискивало каждый раз начало и конец, но пока впадлу.
Snusmumriken
А вот отсутствие or'ов в луёвых паттернах меня расстраивает (( Так можно было бы в два плевка сделать парсер языка.
Domka
Снус
Domka
Я тут увлекся рейкастом
Domka
И придумал кое какие фичи
Domka
:)))
Domka
Я в эту неделю такой довольный
Domka
Domka
Прям ваще полностью
Snusmumriken
Крутяк ))
Domka
Хошь раскажу
Domka
Если тебе конечно интересно
Domka
Я нигде таких статей не нашел
Domka
Потому пришлось самому думатс
Anonymous
Школьные годы вспомнил
Domka
Ты в школе такое делал?
Anonymous
Ты в школе такое делал?
Кто не делал в школе свой квейк?
Snusmumriken
дум*
Domka
Да
Domka
А еще лучше вульфенштейн*
Domka
Ибо дум использует более продвинутый движок
Domka
Хотя первые версии были как в вульфе
Snusmumriken
У вульфа квадраты, а у дума уже полигоны. И BSP.
Domka
Плюс в думе делают эллюзию высоты
Domka
Более сложную
Anonymous
Да
Делай воксельный лвижок
Domka
На сортировке по z координате остановился
Domka
Для текстурировании* так сказать
Anonymous
Делал уже ._.
Я придумал крутую штуку
Anonymous
Делаешь воксельный движок
Anonymous
Чтоб он мог читать карты к примеру кс 1.6
Anonymous
И превращать всю карту в разрушаемую кучу вокселей
Domka
._.
Snusmumriken
И превращать всю карту в разрушаемую кучу вокселей
А потом превращаешь dedust в dust. Как раз писал, только одной рукой, медленно.
Domka
Блин
Domka
Кто б обьяснил без терминов по слесарному
Domka
А то я тупой для умных слов
Snusmumriken
Где тут вумные слова?
Domka
Да я про то как ты мне объяснил сортировку по z координате
Anonymous
Хочу контру где все разрушается от выстрелов и взрывов и разлетается на куски и воксели (песочек)
Domka
Так сделай
Domka
._.
Anonymous
Мне лень я старый
Domka
Сколь тебе?
Anonymous
Больше 30
Domka
Жестка
Domka
Кто не делал в школе свой квейк?
Ваще у нас никто такого ваще в школе не делал
Domka
Если были программисты то онт складывали конструкторный код
Domka
И я считал их гипер умными
Snusmumriken
Даже басика не давали? Или поскаля?
Domka
А сейчас сижу понимаб на сколько это не удобно
Domka
Даже басика не давали? Или поскаля?
Паскаль черепаха* робот*
Snusmumriken
Поскаль норм.
Domka
Но его знали человека 3 на паралель
Domka
И я один не из этих 3
Domka
Я даже до сих пор не знаю его
Arslan
Поскаль норм.
Фу! Не говори так
Domka
Фу! Не говори так
В плане обучения конечно
Domka
Ито я бы все же давал школьникам скриптовые языки
Domka
Ибо мне кажется они в них как сыр в масле
Domka
Кататся будут