Zer0Galaxy
Гуру-
Публикации
1 220 -
Зарегистрирован
-
Посещение
-
Победитель дней
189
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Zer0Galaxy
-
Когда-то давным-давно, когда в майне были только компьютеркрафтовые компы, а метанума и в помине не было, реализовывал я RSA-подобный алгоритм похожим образом. Тогда помню была проблема не с TLWY, а с банальным переполнением, тем не менее ее как то удалось решить. Если в руинах старого хлама найду тот жесткий диск, выложу.
- 72 ответа
-
- цифровая подпись
- шифрование
- (и ещё 1 )
-
Вот так: function My_func() -- что-то там end Form:addButton(20,5,"Open file", My_func) -- без скобочек Но можно и анонимной функцией Form:addButton(20,5,"Open file", function () -- что-то там -- end)
-
Я как-то порывался сделать игру - симулятор хакера на подобии Uplink. Только многопользовательскую и ориентированную на Луа, разумеется. Хочешь - сделай.
-
if errorCode == 0 then return "Code is valid" elseif errorCode > 0 then return "Error: Opening bracket(s) missing" elseif errorCode < 0 then return "Error: Closing bracket(s) missing" else return "Error: Unknown error" end Вспомнился анекдот:
-
Короутины сами по себе - довольно сложная для понимания тема (по сравнению с фанкшионами, к примеру). А тут так мало букв использовано для описания библиотеки. Попытался вкурить, что значит "проскочить" несколько подпрограмм и зачем это нужно. Не получилось. Видать, старею
-
А можно пояснить для бестолковых, что на виосике происходит? Каким образом бесплотная голограмка ловит ПКМ?
-
Держателем опеннета на облаке С9 был Крутой. Похоже он удалился с облака или его удалили. В любом случае, кому интересна эта тема, рекомендую не ворошить дела давно минувших дней, а написать свою Сеть.
-
Вопрос не совсем понятен. О какой программе и функции идет речь? Можно пример?
- 11 ответов
-
- modem
- OpenComputers
-
(и ещё 2 )
Теги:
-
А можно вот здесь ... ... какое нибудь другое слово написать? Да, да, я старый ворчун.
-
Это я, в общем то, понял из твоей замечательной документации (не сарказм, дока реально отпадная) . Но вопрос мой о другом. Вот нарисовал я на холсте какой-то рисунок и хочу его часть или даже весь стереть. Если весь, то вопросов нет - стираю попиксельно любым цветом (хотя функция brailleCanvas:clear не помешала бы). А если хочу стереть, допустим, только ранее прочерченный отрезок так, что бы он принял цвет фона, но пиксели пересекающегося с ним отрезка не изменили свой цвет? Мне нужно либо каким-то образом извлекать информацию о цвете установленных пикселей из холста, чего виджет не позволяет. Либо хранить эту информацию еще где то. Хотя логика подсказывает, что сбросить пиксель можно вообще ничего не зная о его цвете.
-
У меня вопрос по виджету brailleCanvas, точнее по его функции set( int x, int y, boolean state, int color ) Какую информационную нагрузку несет значение параметра color в случае, когда state=false? Дело в том, что в текущей реализации виджета, для снятия установленного пикселя необходимо помнить цвета соседних пикселей. В противном случае они могут измениться. Если же вызвать функцию set без параметра color, получаем ошибку. И еще: Какой есть способ выхода из container:startEventHandling() ? Неужели Ctrl + Alt + C единственный способ выхода из программы?
-
Попробуй так rs.setOutput (sides[side], 15)
-
А нельзя ли функции перемещения u(), d(), fw(), bw() сделать с параметром на сколько блоков переместиться? И еще, рекурсия в данном случае не самое лучшее решение. function robolib.u() while r.detectUp() do r.swingUp() end if r.up() then if waySw then way = way.."U" end else robolib.u() end z = z + 1 end
-
В самом деле, чего может быть проще? Вот только всякий раз размещать надписи по центру окна нет необходимости. Теперь у надписи есть свойство l_time.centered=true l_date.centered=true которое автоматически отцентрирует строку.
- 3 ответа
-
- 1
-
-
Сначала глянул на новую аву Затем прочитал этот абзац: Потом подумал: "У Квертика что ли новая ава?" Потом глянул, кто автор темы и всё понял. Кверти, ты когда правильно НЕ / НИ писать научишься? А за игрушку спасибо. Всегда любил подобные игры. А эта, похоже, и под Андроид есть, хоть и платная. Надо поискать халяву.
-
Сравнение скорости обращения к элементам обычного трехмерного массива и линейного массива, построенного по предлагаемой схеме Вот результат, если кому интересно Как видим, использование обычного массива в три раза эффективнее с точки зрения процессорного времени. Может быть всё дело в том, что для вычисления индекса линейного массива вызывается функция? Попробуем обойтись без функции. Arr2[i+XX*(j-1)+XX*YY*(k-1)]=m хотя я так бы делать не стал, поскольку читабельность падает на порядок Немного лучше, но выводы делайте сами. PS: Если при вычислении индекса избавиться от лишнего умножения и вычитания единицы (Arr2[i+XX*j+XY*k]=m, где XY=XX*YY, при этом частные индексы изменяются от нуля), получим результат еще лучше - 0.89 секунд. PS PS: Пост написан под впечатлением вот этого заявления:
-
А, тогда понятно. Но, всё же функция printFormatText сделана малость костыльно. Я бы советовал использовать gmatch, а не перебирать строку посимвольно.
-
Коли так, объясни мне великий смысл массива функций: local colorsTable = { ['&0'] = function() color(0x000000) end, ['&1'] = function() color(0x0000AA) end, ['&2'] = function() color(0x00AA00) end, ['&3'] = function() color(0x00AAAA) end, ['&4'] = function() color(0xAA0000) end, ['&5'] = function() color(0xAA00AA) end, ['&6'] = function() color(0xFFAA00) end, ['&7'] = function() color(0xAAAAAA) end, ['&8'] = function() color(0x555555) end, ['&9'] = function() color(0x5555FF) end, ['&a'] = function() color(0x55FF55) end, ['&b'] = function() color(0x55FFFF) end, ['&c'] = function() color(0xFF5555) end, ['&d'] = function() color(0xFF55FF) end, ['&e'] = function() color(0xFFFF55) end, ['&f'] = function() color(0xFFFFFF) end, ['&r'] = function() color(0xFFFFFF) end } Почему в таблице нельзя было сохранить только значения цветов, а по мере надобности вынимать их, для меня осталось загадкой.
-
Несколько замечаний или даже предложений: У тебя координаты и размеры каждой кнопки фактически прописаны в виде констант дважды. Первый раз - для прорисовки (функции drawMenu), второй раз - для обработки события touch. А что это значит? Это значит, что если ты или кто нибудь другой захочет добавить или переместить кнопку, ему это придется сделать в двух местах программы, что существенно увеличивает вероятность ошибки. Я бы на твоем месте все кнопки хранил в одной таблице. Как то так button={ Add ={x=27,y=24,width=15,height=3,col=color.general,txt="Добавить",align=3}, Cansel={x=47,y=24,width=15,height=3,col=color.general,txt="Отменить",align=3}, -- и так далее } тогда вызов функции прорисовки кнопки можно будет оформить так function drawBox(but) color(but.col) g.fill(but.x,but.y,1,but.height,'│') g.fill(but.x+but.width-1,but.y,1,but.height,'│') g.set(but.x,but.y,'┌'..rep('─',but.width-2)..'┐') g.set(but.x,but.y+but.height-1,'└'..rep('─',but.width-2)..'┘') if but.txt then g.set(but.x+but.align,but.y+1,but.txt) end end drawBox(button.Add) drawBow(button.Cansel) А для проверки нажатия кнопки можно сделать еще одну функцию, скажем: function ifTouch(but, proc) где but - кнопка, а proc - функция, выполняемая при нажатии кнопки. Таким образом программа не будет пестреть числовыми константами и будет намного лучше читаться. А вообще, если пишешь приложения с графическим интерфейсом, рассмотри какую либо GUI-библиотеку. Их у нас на форуме есть несколько.
-
Никакого бага. Просто для того, что бы начать писать нужно кликнуть по окошку ввода. А Exit - вообще выход из программы. Что ты там писать собрался?
-
Я участвовал только в качестве подмастерья. Мастером был Крутой.
