Выполняет функции модема. Без аддона мискперифералс чанклоадер черепахе не сделать. У меня возникли затруднения со связью через модем: есть сервер и черепаха, черепаха когда готова шлет серверу свои координаты, шлет очень много раз, пока сервер не ответит. Сервер в ответ отвечает ей координатами следующей точки и удаляет эту точку из массива координат. Так задумано. Но происходит следующее: вместо отправки координат одной точки и ее удаления происходит отправка 3-4х точек меньше чем за секунду, они удаляются, но черепаха разумеется идет только к одной из 4х. Вопрос такой: помогите реализовать систему связи исключающую повторную отправку. Хотя бы примерно на словах. Сделал проверку на не повторение ID черепахи, но это плохое решение, одна черепаха не может два раза подряд связаться с сервером. функция связи на сервере:Модем из миксперифералс ? Или даже стандартный ? У меня-то нет этого аддона... Будет ли она чанк лоадится ?
[1.7.10] ComputerCraft [1.74]
#1901
Posted 29.03.2013 - 14:18
#1902
Posted 29.03.2013 - 17:54
#1903
Posted 29.03.2013 - 19:03
#1904
Posted 29.03.2013 - 21:12
Программирование на языке луа
Программа label
И у дисковода картинка умерла.lebel get <сторона>
#1905
Posted 30.03.2013 - 01:42
Все верно, сперва генерируется массив всех возможных координат "столбов" для квадрата заданной ширины, массив сохраняется в файл. Массив универсальный с центром в точке 0,0,0. Этот файл уже загружает сервер и использует поправку заданного реального центра координат карьера. Черепахи присылают свои текущие координаты, делается выборка из массива ближайшей координаты "столба" и посылается черепахе, после чего эта координата из массива удаляется, для исключения повторного копания старого "столба".если я правильно понял, это его карьер, который копает "лошадью"(2 вперед и 1 в сторону) столбы, убирая при этом всю руду вокруг.... и если я правильно помню, этот карьер расширялся под несколько черепашек... значит сервер, нужен для определения куда черепашка должна двигаться для следующей дыры... по этому сервер может работать с одной черепашкой, а в это время запрос координат потребует следующая...
Благодарю за помощь, с выдержками пробовал, раньше толкового ничего не вышло, да повторов становилось меньше, но все равно были, а большие выдержки - не хорошо. С параллельным запуском идея хорошая, тем более у меня уже есть функция регистрации и сохранения в файл данных о всех работающих на этот сервер черепахах, достаточно будет добавить туда запись координат и состояния черепахи свободна/занята. Попробую сегодня это реализовать и протестировать. upd Решение найдено - в посылаемом черепахе массиве указал помимо координат номер выбранной из массива точки координат, которую необходимо удалить. Черепаха принимает массив и отправляет серверу в ответном сообщении только этот номер непосредственно перед началом выполнения команды. Сервер его принимает, сравнивает с отправленным и только тогда удаляет безошибочно нужную строчку из массива координат. Испытал пока с 8ю черепахами - копают бодро, сбоев нет, друг другу не мешают и друг друга не выкапываютпо поводу проблемы(сейчас только идеи предложу, т.к. не дома): 1 - создаем задержку такую, чтобы черепашка перестала запрашивать координаты новой точки... т.е. как только сервер получил сообщение от черепашки, он его обработал, отослал новые координаты, и приостановился на N сек(минус такого способа: инертность системы... чтобы система начала работать с новым запросом, должна пройти задержка) 2 - через функции параллельного запуска функций создаем 2 функции: 1 - регистрирует черепашек которым необходима след точка в списке, 2 - отсылает новые координаты для черепашек зарегистрированных в списке
#1906
Posted 30.03.2013 - 07:51
спасибо!Заметил тут кое-что в статье:
Программирование на языке луа
Программа label
И у дисковода картинка умерла.lebel get <сторона>
#1908
Posted 30.03.2013 - 11:44
#1909
Posted 30.03.2013 - 11:55
ошибки: 1 - могу ошибиться, но вроде у него нету типа переменных integer.... в твоем случае объявление i:Integer - не обязательно... а если хочешь описать переменную, используй или i=0....(ну или i:Number)Скрытый текст
2 - turtle.dropUp - пишется с большой буквы... луа чувствителен к регистру
3 - ты используешь 2 функции которые надо закрывать, а end у тебя стоит 1 раз...
а sleep(0.2) не обязательно описывать в цикле for... лучше уж в самом конце цикла while его поставить, не такая инертная черепашка будет
#1911
Posted 30.03.2013 - 20:55
#1912
Posted 30.03.2013 - 21:03
#1913
Posted 30.03.2013 - 21:43
используйВы вот тут писали про отправку сообщения от туртли на пк, как это реализовать проще ? Есть у меня условие, но что за код для этого нужен на черепахе и на самом компе?
Созрел вопрос. Есть у Луа возможность распознавать день и ночь? То есть, если уровень освещения => a, то черепашка делает один набор операций. Если уровень освещения < а, то черепашка делает другой набор операций. Не скажу зачем мне это надо, но пример могу привести: включение/выключение источников света, в зависимости от освещения.
сами по себе черепашки не умеют работать с освещением, но можно например к компу подключить детектор из RP, а информацию с него считывать через комп... хотя я где-то видел черепашек, которые могли получать уровень освещенности#1915
Posted 30.03.2013 - 22:02
Черепашки могут определять внутриигровое время. os.time() вроде бы возвращает время в секундах (или в тиках, непомню) от начала суток (или от запуска мира, непомню). Освещенность без модов черепашки определять не могут.Созрел вопрос. Есть у Луа возможность распознавать день и ночь?
#1917
Posted 31.03.2013 - 07:51
#1918
Posted 01.04.2013 - 13:00
Для создания черепашек можно использовать рубиновые сапфировые и изумрудные инструменты и мечи (те что добавляют RP2 и GregTech) . Правда это из основного мода или Misc Peripherals я не знаю.Тыакк. А что за чудо-черепашки с зелёно-сапфировыми кирочками? А с сапфировыми?
#1919
Posted 01.04.2013 - 13:04
Omnis Vestri Substructio Es Servus Ad Nobis.
#1920
Posted 01.04.2013 - 18:15
3 user(s) are reading this topic
0 members, 3 guests, 0 anonymous users