Totoro
-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Сообщения, опубликованные пользователем Totoro
-
-
Арену бы в новогодней тематике. С мандаринками :3
Ну, тут гарантировать ничего не буду. Это уже как получится.

-
У меня вопрос собственно. Что это за хрень и почему мне надо 400 строчек кода, чтобы послать сообщение по сети? :P
Вооружившить вот это цитатой из первого поста: "операционная система должна упрощать разработку ПО", я реквестирую пример использования этой хрени.
-
1
-
-
Команда monitor как раз и предназначена для того, чтобы переводить выполнение программы на другой монитор полностью.
Тебе надо использовать монитор как периферийное устройство.
Пример:
peripheral.call( "top", "write", "Hello World!" )
Пишем на монитор над компом "Hello World!".
Другой пример:
local monitor = peripheral.wrap( "top" ) monitor.write( "Hello World!" )
Тут мы переопределили переменную monitor. Теперь в ней хранится ссылка на объект монитора который сверху.
И на ней можно вызывать методы для печати, или что-то ещё.
-
Ок, тогда есть второй вариант.
При создании конкурса писать часть кода, показывать всем как она работает и зачем нужна. Перед тем как провести конкурс не нужно будет лесть в код. Роботы будут проверяться на то, что в них должно быть. На этом этапе игроки могут быть дисквалифицированы, если при проверки их робот не отозвался на нужные команды. И при дальнейшей игре, если роботы будут не подчиняться - будут получать жёлтую карточку за первое неподчинение (которое можно засчитать как глюк). Второе неподчинение во время игры - дисквалификация.
Таким образом можно проконтролировать соблюдение правил конкурсов и введение нужных частей кода, всяких искуственно введённых уязвимостей для "игр в хакеров".
Во, это уже лучше. Это близко к тому как оно щас.
Мы сейчас готовим арену и софт. Когда будет готова - карта с рабочим сервером будет выложена, чтобы участники могли тестировать роботов на правильную работу.
И там уже сами участники следят, чтобы всё было правильно.
А на турнире (или демо-матче, как получится) уже пойдут дисквалификации и снятия команд.
-
Если в зимние праздники будет, то можно с вами?

Разумеется! Присоединяйся.
-
1
-
-
Мы шагаем в ногу со временем. Всемирно знаменитый пакет left-pad уже в нашей репе!
-
Как я уже говорил, можно внедрять уязвимые куски кода после того, как код напишут игроки. Чтобы конкурс проводить веселее. В том числе добавлять часть кода, которая будет слушаться организатора конкурса.
Правда могут из-за этого возникать плохие моменты вроде: "какой-то нуб написал прогу, которая после остановки уже не сможет работать как и работала". Хотя не факт, что такие случаи будут.
Это потребует от организаторов влезать в код чужих программ. Это предложение мне не нравится по нескольким пунктам.
Во-первых, это не этично. =)
Во-вторых, придётся читать тонны говнокода, и смущать автора.
Потом, автор может обвинить тебя, что ты "испортил" его код, и из-за этого он проиграл. И докажи потом, что ты не верблюд.
Это всё равно остаётся глючным способом, где многое может пойти не так.
И так далее.
-
1
-
-
А теперь раскрываем карты и показываем, как этим чудом можно пользоваться.
С мордой всё понятно: идёте на сайт, юзаете его, дивитесь эпичности проекта. Вот сам фейс, к слову.
API находится на сервере тут. Там настолько всё скучно, что по ссылке даже нет страницы. Так быть и должно: что этот сервер делает, описано в вики.
Клиент для OpenComputers требует, как ни странно, опенкомпьютер. Просто запускаете эту команду:$ pastebin run vf6upeAN
Hpm бодренько поставится и обновится до последней стабильной версии. Если сломается hpm, перезапустите эту команду. Скорее всего, случился очередной breaking change, такое бывает.
Весь проект зарелизен под лицензией MIT.
2016 © Fingercomp, Totoro-
3
-
-
Для разработчика, который желает, чтобы мир узнал о его программе, Hel тоже имеет несколько приятных плюшек.
Зарегистрировав в два клика аккаунт на сайте, вы получаете удобный интерфейс для создания пакетов. Специально для LeshaInc у нас интерфейс оформлен в Material Design.
Пакет легко версионируется (мы юзаем стандарт SemVer для этого). Вы можете использовать любой другой пакет в hel (например, библиотеку) в качестве зависимости для своей программы.
Описание к пакету поддерживает разметку Markdown (включая подсветку синтаксиса Lua, MoonScript и ещё 20 языков).
Кроме того, описание можно подкрепить несколькими контент-тегами, чтобы облегчить поиск.
Останется только указать лицензию (или не указывать её вообще) и залить парочку скринов. Всё! Пакет будет тут же доступен в репе, его можно будет посмотреть и скачать.
Смысл репозитория — не только хранить, но и искать! Так что поиск у нас тоже есть, который вмиг отыщет из любого уголка репозитория нужный вам пакет, если он, конечно, существует.
В наличии поиск по имени/описанию, поиск по автору и поиск по контент-тегам.
Отдельно заметим, что сами файлы репозиторий не хранит, только метаданные пакета.
Вы можете спокойно разрабатывать свой проект в GitHub, или Pastebin, или на своём собственном хосте. А клиент hpm с помощью метаданных из репозитория будет сам скачивать нужные файлы откуда угодно.
-
3
-
-
В принципе, да. Некий общий интерфейс, который с одной стороны могли бы использовать программы, а с другой стороны реализовывать разные имплементации сетей не помешал бы.
Тут главное его не усложнять и сделать максимально простым и гибким.
-
Никак не возьму в толк, в чем смысл турнира, ведь тут все довольно предсказуемо - монетки забирать будут те, кто к ним ближе, поэтому выигрывает рандомная команда.
А вот с футболом крутая идея - роботы друг-друга пихать не могут, если в качестве мяча будет песок, то можно сделать несколько уровней, чтобы роботы всей командой переносили мяч над ямами, но как сделать ворота - непонятно, ведь блоки можно перемещать только по прямой линии и роботы могут просто заблокировать доступ к воротам. С CTF тоже самое, самый дельный вариант это DM.
Еще, сервер должен иметь команду паузы, чтобы приостанавливать игру в спорных моментах.
Да, возможно ты прав. =)
Но мы пока не ставим сложной алгоритмической задачи (хотя Серёга мне в чат уже писал о "задаче коммивояжера"
).Тут главное это дело организовать, посмотреть какие проблемы всплывут, ну и просто устроить робо-сабантуй коллективный, веселья ради.
Кто-то может просто обкатать алгоритмы движения и ориентирования по арене, которые потом заюзаем в ДМ, в следующем раунде.
Насчёт команды "пауза" и прочих таких штук можно тоже подумать. Но это вещь которая потребует реализации со стороны участника, в софте робота. И она может быть забагована, робот может быть занят другими вычислениями в помент сигнала на паузу и т.п.
Потребуется больше отладки, будет больше условий к софту.
Одно дело - просто стартовать по общему сигналу - и потом свободно распоряжаться ресурсами робота. Другое дело - дополнительные условия к софту и алгоритму.
Но в каком-нибудь раунде можно и такую штуку сделать.
-
Круто =)
Только краска у него не "Бугатти" совсем что-то

Где лак-блеск-хром?
-
Не только для OpenNet.
Для OpenNet и обычной передачи данных через модем. А других протоколов у нас вроде и нету.
-
По сути, ты собираешься воскресить и документировать OpenNet, а потом написать над ним обёртку. =)
-
Моё первое мнение - большие полотна текста, где код идёт вперемешку с пояснениями и ссылками, и всё разделено только запятыми, а-ля "поток сознания" - меня пугают.

А вообще, что ты имеешь ввиду под "разными протоколами"?
Сначала наверное надо стардартизировать способы передачи данных. Тогда и появится возможность объединить их в какой-то библиотеке.
-
можно еще при дисквалификации уничтожать робота коммандным блоком и по приколу эффект взрыва сделать) или даже можно систему предупреждений)
Да, можно подзапариться и такое прикрутить. =)
Но это надо будет сделить за всеми роботами. Так что отложим пока на второй план.
-
А кто там говорил что на чистом openOS всё будет?
Так чистый и будет.
За порядком будет Сервер следить, со своей стороны.
-
надеюсь при помощи переопределения методов invoke и proxy

Хех это как дело пойдёт. Вообще, перед началом матча можно переписать адреса роботов. Типа закрепить их за командами / участниками. Тогда можно будет более красивую инфу показывать на дисплее. Ну и заодно трекать, какая команда там в эфир полезла не там где надо.

-
я думаю стоит выделить 1 порт под общение сервера с роботами учасников, а остальное как кому надо
Сам Сервер будет слать свои сообщения на заранее известном, выделенном порту (например 1 =)).
Можно даже запретить роботам этот канал "засорять".
-
значит сервер будет мониторить все порты??
Ты про вывод сообщений на дисплей? Вот хз. Получается что и не выведешь толком.
Для мониторинга можно условится заранее, какие порты будут транслироваться.
А если ты про лаги - думаю это станет заметно и без мониторинга. =)
-
а не стоит ли заменить беспроводные платы на связанные ? а то зафлудит кто-нибудь линии связи
Нет, думаю не стоит.
Как написали выше - если флуд будет такой ураганной мощи что заддосит все диапазоны - это дисквалификация.
А так, общайся себе на своём порту. Проблем не должно быть.
Вот попытки распускать по сети поддельные пакеты (якобы "от Сервера", или "от другого робота") никак не наказуемы.

Правда есть сложность для хакера: адрес настоящего Сервера будет известен перед началом состязания.
А формат пакета "для другого робота" надо ещё угадать (и это не говоря о порте или адресе).
-
Может ещё устроим футбол роботами? У них есть улучшение "поршень". Пусть булыжник гоняют по полю, отбирают друг у друга.
А то скучная пока задумка. Нет интересных особенностей вроде "дал какой-то сигнал и роботы в радиусе 2 блока замерли на 2 секунды".
Нужна интересная задумка. Может после того как игроки напишут прогу, в них будут вставлены куски уязвимого кода, как я уже описал??? Чтобы был хоть какой-то интерес для соперничества.
Отличная задумка для будущих раундов.

Текущий раунд усложнять не буду. Здесь часть интереса именно в совместной игре и духе состязания.
Если бы ты решал такую задачку в сингле, это было бы скучно. Но когда тут ещё 8 соперников, дело принимает совсем другой оборот. =)
Глянь например на какой-нибудь Quake. Представь сингл. Ты можешь бегать взад-вперёд и прыгать. Ещё есть бонусы и можно пострелять. Прикольно, но надолго тебя не хватит.
Другое дело есть есть соперники, пусть даже боты.
-
1
-
-
меня запишите. попробую поучаствовать. c:
Отлично!
-
Не интересно. Надо жесткий баттл, где можно будет делать все, дабы забрать монетки. А тут просто кто быстрее прибежит до монеток, тот и победит: не ломай, не убий, не ставь, не ври; скучно же.
Что это были за "песочницы" в которых ты в детстве играл? Ужс. :P
-
1
-

Сетевой интерфейс для OpenOS
в Программирование
Опубликовано:
Осталась какая-то мелочь.
Написать абстракцию полноценных потоков над корутинами, потом над ней абстракцию real-life сокетов, и будет готова сетевая библиотека нашей мечты!
Наконец-то мы сможем сократить эту громоздкую конструкцию:
Ура, товарищи!