Перейти к содержимому

bob558

Пользователи
  • Публикации

    95
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Все публикации пользователя bob558

  1. В далеком 93-м, когда программировал на ассемблере под КР580ВМ80А, была программа "Отладчик", которая показывала значение всех регистров, можно было делать точки останова программе.... Возможно ли такое для LUA? Какие есть инструменты, методы, чтобы выявить ошибки кода?
  2. Была такая штука, когда я находил разряженного и выключенного робота забившегося в угол, куда он не должен был попасть по своей воле. Стоило ему добавить после каждого перемещения os.sleep(0.3) как он стал строго следовать программе.
  3. Дельное замечание. Но со своей стороны я даю некоторое время серверу подумать о лагах после каждого шага робота. Пока ошибок в перемещении не было. robot.forward(); os.sleep(0.3)
  4. Добавил новые картинки. Да, буду добавлять статистику. Спасибо!
  5. Это моя первая программа на этом ресурсе. Буду рад вашей критике, идеям по оптимизации кода. Загрузить можно по ссылке http://pastebin.com/bzBkTvkZ или набрать в терминале: pastebin get bzBkTvkZ cactus Начальные установки: 6 local len,w = 8,8 -- длинна и ширина поля 7 local s = 200 -- время ожидания созревания В 6 строке кода надо указать размеры вашего поля. По умолчанию стоит 8 х 8. В 7 строке время полного созревания урожая. Робота нужно установить на высоте 4 блока от уровня будущего поля. За ним поставить сундук. Робот должен обладать Апгрейтом -солнечная панель для подзарядки. Если поле еще не сформированно, то робот сам может засеять поле кактусами в шахматном порядке. Робот будет информировать вас о количестве высаженных кактусов, заряде батареи. При необходимости подзаряжаться. P.S. Хочу сказать спасибо Alex, за гайд http://computercraft.ru/topic/1520-chto-takoe-for-in-pairs/ Эта статья стала настольной книгой, чтобы разобраться в работе таблиц. Fingercomp за объяснение логики lua. Отдельное спасибо Totoro и qwertyMAN за быстрые ответы на мои порой нубские вопросы. Спасибо вам за терпение. )
  6. Спасибо за дополнения! Про "0" - это я не подумал )))) - хорошая идея! Но символов может быть и больше, если ввести в таблицу двухзначные числа. qwertyMAN, я с таблицами до этого еще не сталкивался. Для данной задачи удалять из таблицы нет необходимости. Но, возможно, это мне пригодится в будущем. Я правильно понял, что перебор таблицы через for i = 1, #t do работает быстрее? Спасибо!
  7. Большое спасибо!! Вставил строчку - заработало! Сначала я подумал, что дело где-то в таблице for k, v in pairs(t) do if v==9 then wY=wY+1; wX=wXst term.setCursor(wX, wY) -- установка новой позиции курсора! else term.write(draw[v]) wX=wX+1 term.setCursor(wX, wY) end end
  8. Это мои первые попытки работы с таблицами. Извините, если это ну очень нубская ошибка. Это продолжение вчерашнего вопроса - вывод на экран символов кодировки Приведенный ниже код должен выводить квадрат из символов "#" со сторонами в 3 символа. Но печатает на экран 4 символа "#"в подряд. Так не должно быть. local term = require("term") local wX, wY, draw, wXst = 5, 5, {" ", "#", "*", "█", "▀", "▄", "▗"}, 0 local t = {2,2,2,9,2,1,2,9,2,2,2} -- 9- перевод строки term.clear() wXst=wX term.setCursor(wX, wY) for k, v in pairs(t) do if v==9 then wY=wY+1; wX=wXst else term.write(draw[v]) wX=wX+1 term.setCursor(wX, wY) end end
  9. Я бы рад напечатать, только как это сделать? Те же знаки псевдографики? Сейчас буду с юникодом разбираться.
  10. Не могу понять как выводить на экран символы, которые есть в кодировке, но не вводятся с клавиатуры. Пример тому знаки псевдографики и тп. Нашел в интернете несколько статей с примерами, но не могу разобраться, как использовать. http://lua-users.org/wiki/HexDump http://stackoverflow.com/questions/9137415/lua-writing-hexadecimal-values-as-a-binary-file
  11. Спасибо, Алекс! Забыл поставить второй знак "=". Увлекся булевыми значениями в другой программе, а этот код только выдержка из нее. Рабочий код, как я думаю, выглядит так. local args = {...} if #args ~= 1 then print("Ничего") else n = tonumber(args[1]) if n == 1 then print (n) end end qwertyMAN, спасибо за дополнения. Этим тестовым кодом хотел разобраться как ввести доп аргументы во время запуска программы.Ты предложил: if n==1 then print(1) Я правильно пронимаю, что print выведет первое значение из таблицы args? И еще, что значит обработать событие #args==1?
  12. Не знал, как назвать тему Код из программы выдает ошибку в 6-й строке. Хотел понять обработку аргументов. local args = {...} if #args ~= 1 then print("Ничего") else n = args[1] if n = 1 then print (n) end end
  13. Огромное спасибо! Я этого нюанса вообще незнал. Да и, вероятно, я мог бы не найти сам в интернете. Буду использовать в своих программах. Хотел переписать для себя эту программу в новых реалиях. То, что функции лучше делать тоже локальными не знал, спасибо!
  14. Очень интересные предложения. Это очень упрощает код. Я только не понял, как осуществляется поворот. А именно вот эту строчку: turn = bot[(side == "right") and "turnRight" or "turnLeft"] Почему в квадратных скобках? И почему нет (side == "left")?
  15. Я правильно понимаю, что запросить переменную можно так? io.write("Введите X: ") x=io.read()
  16. Как программа может спросить у пользователя значение некой переменной, которая будет впоследствии обрабатываться программой в дальнейшем?
  17. Ой как не хватает наглядности. Если есть время добавь картинки рабочего процесса и примеры для экспериментов в фотмате .vox ---------- Не могу изменить файл в спец конверторе. Выбираю файл и больше ничего не происходит
  18. Projectred вместил в себя все, что может Integated Circuits
  19. Идея с пищей интересная, но реализована плохо. Если что- то хоть раз поел, то эта пища больше не будет уталять голод. Надо есть каждый раз что-то новое! Попробуйте некоторое время поиграть в Terra Firma Punk - там потребление пищи очень интересно реализовано: Для хорошего самочувствия нужно употреблять что-то белковое, зерновое и молочное. Если долго что-то не употреблял - идут штрафы. Здесь же все стопятьсот раз умерли от голода!
  20. Вот такой пример программы: s = "privet" a = string.len(s) for l=1, a do m = string.byte(s,l) print (m) end На выходе получим 112, 114, 105, 118, 101, 116 Но если текст будет русским, то на каждый символ будет по два трехзначных числа. А это уже не очень удобно. Читал, что можно как-то разделить с помощью string.gmatch(s, "%w+"), но как это сделать я не понял.
  21. Этот код - это здорово и просто!!!! Спасибо!
  22. Да, теперь вижу - спасибо огромное!!!!!! Вечером поправлю код.
×
×
  • Создать...