LeshaInc
-
Публикации
777 -
Зарегистрирован
-
Посещение
-
Победитель дней
68
Сообщения, опубликованные пользователем LeshaInc
-
-
Если функция вызывается из одного и того же места, то можно ее не выносить отдельно.if x >= rx and y >= ry and x < (rx + w) and y < (ry + h) and btn == rbtn then ... end -- VS local function buttonClickInBox(x, y, btn, rx, ry, rw, rh, rbtn) return x >= rx and y >= ry and x < (rx + w) and y < (ry + h) and btn == rbtn end if buttonClickInBox(x, y, btn, rx, ry, rw, rh) then ... end
сравни и сделай вывод, какой код понятнее
-
1
-
-
калькулятор
-
?Евентов как таковых нет в самом ОС, они предоставляются ОпенОС, а для этой систему реализация обработки событий на плечах NightFury, я лично решил проблему по своему, так что будем ждать решения NightFury)сам ос предоставляет евенты
-
echo "Hello" > /path/to/file
-
local event = require("event") local computer = require("computer") local keyboard = require("keyboard") local running = false local commands = {} function commands.exit() running = false end commands["run hadron collider"] = function() print("Hadron Collider has been runned!") os.sleep(5) print("Boom! Universe has been destroyed!") while true do computer.beep() computer.pullSignal(2) end end local funcion onKeyDown(_, _, _, code) if keyboard.keys[code] == "q" then running = false end end event.listen("key_down", onKeyDown) while running do local command = io.read() local handler = commands[command] if handler then handler() end end event.ignore("key_down", onKeyDown)это полезнее будет, вселенную уничтожает и даже без рекурсии
-
Индентация из одного места, задача кода не понятна. Что это? Командная оболочка? Программа управления адронным коллайдером? Рекурсия в бесконечном цикле в рекурсии? Что это з зверь?
test запускается, в нем бесконечный цикл, потом очередной test при нажатии. Я нажму 100 раз на клаву и прога вылетит, вероятно. А если ничего не трогать, овердофига раз в секунду будет зачем то сетиться надпись. Каждый раз, черт возьми. Непонятна суть листенеров тут, они только ухудшают все.
Решение (лучшее, имхо): ^A; Del; ^S; переписать.
-
2
-
-
-
можно так
local function wrap(fn, desc) return setmetatable({}, { __call = function (_, ...) return fn(...) end, __tostring = function () return desc end }) end local test = { something = wrap(function () return 42 end, "function (): number -- does cool things") } print(tostring(test.something), test.something())= в оболочке луа просто показывает ключи таблицы и их содержимое при помощи tostring(). такой вариант пойдет.
-
5
-
-
Не хватает только ограничения кол-ва инструкций на игрока.Думаю,стоит сделать.
local coroutines = {} coroutines[coroutine.create(function () -- код игрока end)] = 0 -- количество операций debug.sethook(function () local running = coroutine.running() if running then coroutines[running] = coroutines[running] + 100 coroutine.yield(--[[ ... ]]) end end, 100)что тут сложного?
-
- “*a” – читает из сокета, пока соединение не будет закрыто. Не совсем понял как это. А если я не собираюсь закрывать сокет в ближайшее время?Заблокирует навечно, пока не встретит EOF.
- число – определяет количество байт, которые будут считаны из сокета. Этот вариант нам не очень подходит, поскольку мы не знаем количества принятых байт. Можно, конечно вычитывать по одному символу, но…Во взрослых протоколах пишется в первых байтах размер сообщения. Например так:
<4 байта - размер сообщения как N: 15> <текст сообщения, N байт: something 12345>
Но в таком случае достаточно чтения одной строки, да.
Следует заметить, что обмен реализуется исключительно путем передачи строкСтроки, да, но внутри них мы можем писать бинарные данные, например длину сообщения ту же.
-
Сетевой обменНужно в первую очередь определиться с целью обмена. А некоторых случаях нужно использовать UDP, в некоторых TCP.
Насчет луа-скриптов от игроков: исполнять их в любом случае надо на сервере. Пока неизвестно на чем будет написан сервер нельзя точно сказать как прервать блокирование такого потока, ограничение по ресурсам и прочие хитрости. Конечно можно написать сервер и на самом love2d, но скорость будет хромать. love2d не предназначен для высоконагруженных серверов, это фреймворк для 2д игр.
-
Хм... А зачем кому-то надо было смотреть мою страницу в ВК?

-
4
-
-
вот когда перейду - тогда и будут)
они уже есть
-
К сожалению в луа нет встроенных бинарный операторов, так что извращаемся делением)
есть, & | << >> ~, зачем мозги пудрить людям. берешь и переходишь на луа 5.3, вот тебе и битовые операции
-
1
-
-
Что тебя заставило вообще полезть в программирование? Какие ты цели себе ставишь? Что рассчитываешь получить от программирования и что уже получил?
Если не хочешь отвечать здесь, то хотя бы подумай и ответь самому себе на эти вопросы. Возможно, это просто не твоё.
Что тебя заставило вообще полезть в жизнь? Какие ты цели себе ставишь? Что рассчитываешь получить от жизни и что уже получил?
Если не хочешь отвечать здесь, то хотя бы подумай и ответь самому себе на эти вопросы. Возможно, это просто не твоё.
-
1
-
-
а зачем она тут?
-
это не шифрование, любой символ итак состоит из бит. string.char(io.read("*n") or fail()) достаточно, зачем велосипедить
-
1
-
-
Кстати по запросу "Как реализовать ввод переменных в программу?" можно придумать почти бесконечность решений, начиная от простого клавиатурного ввода, заканчивая танцом, пением и рисованием совмещенным с нейронными сетями и человеческим фактором

-
Мне одному кажется, что Totoro специально создал конкурс здесь, чтобы выбрать лучший результат и поучаствовать в оригинальном конкурсе? (я кстати прочитал, там в качестве подарка ключ в стиме выдать могут
)конкурс создал фингер, тоторе же хватило сил создать тему, фингер побоялся
-
Леша, не + а .. А то ругаться будет
?
-
1
-
-
@@Seryoga, не честно так, тут люди целый день новый язык учили, а ты взял вот так просто и обогнал
-
1
-
-
162 байта. Pyth master (Unsafe mode - вставки на Python). :Р
DlNR$int.from_bytes(N[1:4],'little')$Jw=Zg$open(J,'rb').read()$18=JlZ=ZgZ5=NlZ=ZgZ120FdUNFTUJ=b:Z1 5=+k@"|=#' ."?>@b4 0/h++@b1@b2@b3 154 5=ZgZ5)=+k"\n")j_c<1k"\n"
Передаем путь к файлу в stdin, получаем картинку. Отмечу еще что пока оно отображает пиксели другими символами, проблема была в том что не получилось заставить Pyth работать с UTF-8. (Так что я вряд-ли победю, решать вам).
Установка:
$ git clone https://github.com/isaacg1/pyth.git <path to pyth> $ alias pyth="python3 <path to pyth>/pyth.py"
Запуск:
$ echo <path to image> | pyth bump.pyth
Скрины:



Не забывайте что тут вместо юникод символов которые нужно было использовать используются ASCII символы, так что победы мне не видать.
-
4
-
-
@@qwertyMAN, да в общем надо понимать назначение функций и назначение других типов. Функция может производить важные вычисления исходя из ее аргументов и возвращать результат в таблице:
local function foo(a, b) return { a = a ^ b * 3, b = b ^ a * 6 } endЕсли же функция выдает статический результат:
local function foo() return {answer = 42} end... то смысла так делать нет. Каждый раз при вызове foo будет создана новая таблица, с новым идентификатором, с новыми ключами, с новыми значениями. Это все аллоцируется в памяти заново. Это может быть полезно, но не в этом случае.
Создав простую переменную с таблицей мы сократим количество системных вызовов, и работать оно будет быстрее, ибо сборщику мусора не придется следить за каждой копией таблицы.
local foo = {answer = 42}Это использовать обычному прогеру оправданнее, чем функцию которая возвращает эту же таблицу.
-
1
-
-
libgx 60 кадров ограничивает.
Шах и мат тебе.это вертикальная синхронизация. ничего особенного, можно и в love2d включить

Робот - укладчик
в Программы новичков
Опубликовано:
ты накосячил