Group Butler [beta]
Hi Al!
Snusmumriken
Snusmumriken
Всё, можно делать консольные игры реального времени.
Snusmumriken
Tverd
это все здорово, а как в линухе, минуя curses?
mihacooper [МСК -2]
Есть вот такой вот проектик для консоли в Lua:
https://github.com/hoelzro/lua-term
Сам его правда не пробовал
Snusmumriken
Есть, но мой круче )))
Snusmumriken
Snusmumriken
И форматирование произвольное.
И возвращает текст который можно напечатать много-много раз.
Snusmumriken
У меня прекол в том, что:
а) можно сделать текст (буквы, фигурки) который всегда будет рендериться в одном месте с одними параметрами
б) присобачивать модификаторы (форматирование, смещение) в процессе рендеринга
в) функция draw, которая создана чтобы рендерить что-то на каких-то координатах.
Светомеч
Snusmumriken
Не а, это универсальные ansi-последовательности, их должны поддерживать практически все консоли.
Snusmumriken
https://ru.wikipedia.org/wiki/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D1%8F%D1%8E%D1%89%D0%B8%D0%B5_%D0%BF%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D1%81%D1%82%D0%B8_ANSI
Светомеч
Мне казалось, ты там с винапи для реалтайма что-то мутил
Snusmumriken
Какие-то больше, какие-то меньше.
Например, венда не поддерживает зачёркнутый текст но поддерживает ленуксовые терминалы.
У меня есть флаг "зачёркнутый", который не будет работать на венде но будет на линексе.
Винапи - отдельный разговор, я комбинирую ffi-winapi со своей терминальной фиговиной.
Snusmumriken
Кстати, для очистки консоли эффективнее использовать ansi-последовательность \27[J;.
Отсутствует мерцание и это мгновенно.
Saphire
Saphire
По типу Линуксовых
Snusmumriken
Я просто пишу в консоль всякую ересь через print('bla-bla') (точнее, io.write('bla-bla'), ибо print делает перенос).
Это всё.
У консолей есть последователи символов-модификаторов.
Сам попробуй.
Светомеч
Tverd
Snusmumriken
Snusmumriken
Вот примерно так оно выглядит без "библиотек". Правда, кодировку стоит переключить на юникод.
Линексы работают аналогично, это - стандарт консолей с бог знает какого дремучего 80-го года.
И через \27[LETTER вызываются разные команды.
Если нужны доп-параметры - \27[X;Y;ZLETTER
Snusmumriken
А вот так вот рисуем прямоугольники.
Если до этого переместить курсор на нужную позицию - мы по его позиции нарисуем прямоугольник заданных параметров.
Это офигенно забавно, и раньше так делали игры.
Snusmumriken
То есть, это как в игре "черепашка", в которой мы двигаем фиговину чертя линии, только после каждой печати нормального символа - оно смещается на единицу вправо, и это надо компенсировать.
А так - можно смело рисовать линии, графики, фигуры и прочую фигню. Хоть 3d-рендер. Кроссплатформенный ))
Светомеч
3D в консоли, мм
Snusmumriken
Я ж кидал (в другой чатик, но ты там есть)
Светомеч
mihacooper [МСК -2]
Snusmumriken
Такое можно написать.
Это кажись чья-то частная разработка.
Snusmumriken
А, не, тут щупается:
http://www.humus.name/index.php?page=3D&ID=43
Snusmumriken
А с winapi/posix можно замутить хоть 3d-шутан ))
Snusmumriken
На самом деле, ничто особо не мешает делать консольные игры в love2d: там можно открыть консоль и закрыть окно.
Текстуры рендерить на канвас низкого разрешения, а из канваса - в консоль + сверху гуй.
Group Butler [beta]
Hi Maxim!
Kukuzapa
Добрый день. Возникла необходимость сгенерить xml строку. Кто-нибудь может посоветовать либу?
Revertron
Ручками уже не кошерно?
Kukuzapa
Религия запрещает)
Ilya
Ilya
Kukuzapa
Спасибо, хотя опасаюсь, что там по большему счету парсеры.
Ilya
Да, похоже на то.
Kukuzapa
xml2lua - точно парсер
Ilya
Такое ощущение, что в мире Луа ничего не генерируют - только парсят =))
Ilya
Для CSV искал генератор - та же фигня.
Revertron
Может потому, что генерируют ручками? (опять я о своем)
Ilya
@Kukuzapa навскидку нашел http://stevedonovan.github.io/Penlight/api/topics/06-data.md.html#XML и https://github.com/LuaDist/luaxml - вроде бы есть какая-никакая генерация. Не могу сказать, советую я эти модули или нет - просто они есть %-)
mihacooper [МСК -2]
И еще https://matthewwild.co.uk/projects/luaexpat/ и https://github.com/Phrogz/SLAXML
Kukuzapa
Slaxml и luaexpat по моему тоже парсеры.
Kukuzapa
Но, спасибо, за помощь!
Saphire
Vladimir
собрал с просторов тырнета
deserialize - на SLAXML
serialize - самописный
Vladimir
сам юзаю, проблем не наблюдал
Ilya
Saphire
Ilya
Не факт. Либу можно сделать и выложить на гитхаб.
Ilya
сам юзаю, проблем не наблюдал
Ну а я уже нашел проблему: если в тексте есть символы типа &, " и т.д, & в них будет повторно закодирован.
Ilya
Еще и все функции глобальны.
Vladimir
Ilya
Сериализации. По крайней мере очень похоже на то (см escape())
Vladimir
Еще и все функции глобальны.
я не сварщик, в моем кейсе (автоматизация умного дома на Vera) багов не проявилось
полномасштабного тестирования не проводил
Vladimir
Ilya
По идее уже закодированные сущности надо пропускать
Vladimir
по идее, выполнив сериализацию, а затем десериализацию, ты должен получить тот же объект (сорян, таблицу)
это код так и работает
Ilya
Так я не об этом. Я о том, что если в каком-то тексте у тебя уже амперсанды закодированы в &, они будут повторно закодированы. Т.е. получится &
Ilya
Скажем так - может это и не проблема как таковая, но что называется "наивная реализация"
Ilya
Нет защиты от дурака.
Vsevolod
дураки есть, а защиты нет
halt
Snusmumriken
Ну, у тебя есть список сессий?
halt
Вот, у меня есть скрипт. Ну в Луа я совсем не силен. Как все это скрестить?
freeswitch.consoleLog("WARNING","Before first call\n")
first_session = freeswitch.Session("user/1000")
if (first_session:ready()) then
freeswitch.consoleLog("WARNING","first leg answered\n")
second_session = freeswitch.Session("user/1002")
if (second_session:ready()) then
freeswitch.consoleLog("WARNING","second leg answered\n")
freeswitch.bridge(first_session, second_session)
freeswitch.consoleLog("WARNING","After bridge\n")
else
freeswitch.consoleLog("WARNING","second leg failed\n")
end
else
freeswitch.consoleLog("WARNING","first leg failed\n")
end
Group Butler [beta]
Hi Oleg!
Group Butler [beta]
Hi Егор!
Group Butler [beta]
Hi RandomUser!
Ilya
ShadoWalkeR
@Snusmumriken хочешь интересную задачу на Lua?)
Snusmumriken
НЕТ.
У меня последнюю неделю 10-18-часовой рабочий день, я ничего не хочу!
ShadoWalkeR
Ок, не отвлекаю