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