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

Avevad

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

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

  • Посещение

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

    3

Сообщения, опубликованные пользователем Avevad


  1. 27.09.2018 в 15:44, NEO сказал:
    1.   local _, _, _, _, _, cmd = ev.pull("modem_message")
    2.   local _, _, _, _, _, cmdX = ev.pull("modem_message")
    3.   local _, _, _, _, _, cmdY = ev.pull("modem_message")
    Медленно!

    Перезалил с поправками от ECS

    Скрытый текст

     

    progress.png

    result.png

     

     

    • Нравится 1

  2. 1 час назад, NEO сказал:

    Нет, как бы робот не двигался медленно математика везде работает и время на передачу сегмента за 3 тика никуда не исчезает, на 100 разведанных блоков программа будет тратить 15 секунд на передачу данных с 3 сообщениями за сегмент данных и 5 секунд при 1 сообщении за сегмент из cmd cmdX cmdY

    Не очень вас понял, но ускорю способом от ECS


  3. В 27.09.2018 в 18:26, ECS сказал:

    А можно и не парсить вовсе, модемы позволяют отсылать/принимать сетевые пакеты с множеством аргументов:

    
    -- Отправка
    modem.broadcast(port, cmd, cmdX, cmdY)
    
    -- Прием
    local localAddress, remoteAddress, port, distance, cmd, cmdX, cmdY = event.pull("modem_message")

    Если надо "парсить по пробелам", то уот так уот:

    
    local message = "meow 12 -249"
    for part in message:gmatch("[^%s]+") do
    	print("Кусочек: ", part)
    end
    
    >> Кусочек: meow
    >> Кусочек: 12
    >> Кусочек: -249

     

    Спасибо, понял


  4. В общем, сделал две проги: одна для робота, который будет изучать лабиринт; вторая для компуктера, на который будет передаваться красивая картинка лабиринта.

    Работает предельно просто: запускаешь прогу №2 на компе, ставишь робота в лабиринт и запускаешь на нем прогу №1.

    Прога №1: 

    https://pastebin.com/dpTQbgtK

    pastebin run dpTQbgtK

    Прога №2: 

    https://pastebin.com/qPsZctqh

    pastebin run qPsZctqh

    Требования:

    Связанная карта в роботе и в компе

    Принцип работы:

    Рекурсивный dfs-подобный алгоритм. Робот в каждое обследованной клетке крутится по сторонам и смотрит есть ли блок перед ним. Если нет то переходит вперед и рекурсивно обследует дальше.

    progress.png

    result.png

     

    • Нравится 2
×
×
  • Создать...