Totoro
Гуру-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Totoro
-
Строительства чем? =) Робот не сможет ломать блоки и у него не будет других предметов в инвентаре, кроме собранных монеток. Думаю не будет. Это придётся как-то сканировать их постоянно.
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Модифицировать софт робота - это чревато ошибками. Один из вариантов решения проблемы - спавнить не предмет, а сундук с предметов, заменяя им блок пола. А по истечении N секунд - возвращать туда блок пола. Типа всё, монетка исчезла.
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Да, надо потестить этот момент. UPD. Вот так примерно будут выглядеть все роботы:
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Не, о выкинутых монетка не будет сообщаться. Про защиту надо подумать. Хороший вариант - кидать монетки не в сундук, а в воронку (или даже несколько воронок, чтобы нельзя было заткнуть). А из неё уже ссыпется в скрытый сундук. Дисквалификация пока только за две вещи: фальстарт и залагованная программа. Без улучшения можно доставать предметы командой robot.suck(). Нельзя только указывать слот - будет доставаться первый доступный предмет.
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
1) Разрушать нельзя. Блокировать можно. 2) Не не не Будут дропаться предметы. Если там уже стоял робот - что ж, ему повезло. 3) Роботы умеют подбирать предметы (команда robot.suck(), если ничего не путаю). Другие блоки ломать нельзя (В следующих раундах будут ломаемые блоки и кирки/лопаты). 4) Доставка на базу - просто везёшь свой инвентарь на базу и высываешь либо в сундук, либо в воронку (посмотрим как удобнее будет). Потырить из сундука не дадим =) Но если ты ему случайно сам дропнешь - то сам себе злой Буратино. Зон для определённых команд не будет, в этом раунде роботам доступно всё пространство арены.
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Отлично! Монеты предположительно будут дропом. Т.е. просто item будет валяться на земле. Роботы должны будут его подбирать и относить в сундук. Ну или копить в своём инвентаре, а потом разом ссыпать.
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
А это как напишешь
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Все вычисления только на роботе. Интернет платы не будет. Других компьютеров, кроме роботов тоже не будет (в этом Раунде).
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
В следующих раундах будет и выпиливание и всё остальное. =) Круто! Время эвента подгоним так, чтобы участники по максимуму могли участвовать. Щас завершим подготовку и определимся. Здорово! До дронов и фреймов тоже дойдём, если первый раунд пройдёт успешно. =) 1) Давайте определимся со сроками. Очевидно это будет выходной день, суббота или воскресенье, надо завершить подготовку к эвенту, дать немного времени на написание софта. Когда кому удобно будет, чтобы всё успеть? 2) Собственно баттл устроим на одном из серверов местных. Тут я надеюсь на помощь от @Alex =) Ну а если не получится - замутим временный сервачок для эвента. 3) Да. Конфигурация робота будет одна на всех, которую вам выдадут для установки софта перед началом эвента. В Песочнице это будет стандартный робот третьего тира без лишних деталей. Без генератора, потому что не будем отвлекаться на энергию вообще (отложим для других раундов). С одним-двумя апгрейдом на инвентарь. И беспроводной сетевухой. 4) Правила дошлифовываются прямо щас. Собственно опи описаны в стартовом посте. Мелочи будем уточнять. Карта тоже будет известна как только так сразу. Предварительно - это будет восьмиугольная арена с редкими препятствиями, и сундуком в каждой противоположной стене. Точную карту опубликуем когда будет готова арена и более менее понятно число участников. 5) Абсолютный :P Простой робот, чистая OpenOS, большая, пустая арена, где носится ещё X роботов.
- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Итак, сегодня ночью я извлёк свою лопату, и воскресил давно забытую тему - битвы роботов! Если кто-то помнит прошлую тему - она загнулась из-за неопределёности, сложности и отсутствия некоторой усидчивости её участников. В этот раз всё будет по другому. Я упростил правила и выкинул всё лишнее. И нарисовал няшный логотип. :3 Суть В битве участвуют команды роботов, по N роботов на участника. Количество не важно - сколько наберём участников, столько команд и будет. Участники эвента (игроки) пишут софт для своих роботов. Разрешается использовать как одинаковую программу для всех роботов команды, так и отдельную для каждого. Битва будет происходить на заранее подготовленной арене. Карта будет известна заранее. Координацией игры занимается центральный Сервер. В день Ч роботы строятся на арене, на стартовых позициях. По сигналу Сервера игра начинается и роботам разрешается двигаться. Правила победы и доступные действия зависят от Этапа. Этап 1: Песочница Ориентировочное время проведения самой битвы - зимние праздники. У нас есть месяц на подготовку арены и написания софта. Участники первого раунда: @Totoro, @NightFury, @Quant, @Seryoga, @Fingercomp, @FluttyProger, @astral17, @ALeXeR, @electronic_steve, @LuaGamer, @Nikitat. Оставляйте заявки мне в личку или внизу, в этой теме. Правила Правила первого раунда просты. Все участники играют против всех. Весь раунд будет разбит на матчи, по четыре участника. Каждый участник будет вести команду из 4 роботов. На поле, в случайных местах в полу будут появляться сундуки с монетками. Цель роботов - собирать эти монетки быстрее роботов противника и сбрасывать в воронки на "спавне" своей команды. Кто к концу раунда набирает большее количество монеток - тот победил. Робот может получить дисквалификацию за: Фальстарт. Если начнёт двигаться до сигнала Сервера. Ломание блоков. Если он сломает блок арены/сундук/чужого робота или ещё что-то. В последующих раундах ломание может быть разрешено, но в Песочнице - другая цель. Забагованность и лаги. Если программа случайно или намеренно создаёт жуткие тормоза или просто направлена на вредительские цели =). Тут будет решать админ. Ориентировочное время раунда, от старта до подсчета результатов - 5 минут. Каждые 10 секунд, Сервер будет рассылать сообщение для синхронизации времени. После финального сообщения, раунд считается завершённым и тут же происходит подсчёт монеток в сундуках команд. Монеты, оставшиеся у роботов на момент финиша, учтены не будут. Технические детали По части модов и версий ориентируемся на MC 1.7.10 + OC 1.6 + CX 1.6.1 + OpenPeripheral AIO-7. Генерация монеток на поле будет происходить с помощью командного блока. При генерации, блок пола будет заменён на сундук с монеткой. По истечении времени сундук исчезнет и заменится обратно блоком пола. Чтобы роботы узнали о положении монетки, после генерации центральный сервер будет слать сообщение с координатами монетки по беспроводной сети. Все роботы будут иметь одинаковую конфигурацию и чистую OpenOS 1.6 на борту. Однако разрешается писать разные программы для разных роботов. Арена доступна для скачивания в виде карты: https://dl.dropboxusercontent.com/s/epcz034fsumhsr7/ut-world.zip Подготовка Нам необходимо подготовить к началу эвента несколько мелочей. [ГОТОВО] [2016-12-06] Подготовить арену. Надо построить поле подходящее по размеру для двух-четырёх команд по четыре робота. (Само пространство арены, где будут двигаться роботы сильно загромождать не надо. У нас сейчас упор не на поиск пути.) Оградить его сверху стеклом, чтобы не дать роботам случайно удрать. Расположить информационный монитор, компьютер центрального Сервера. Обустроить места для зрителей. [ГОТОВО] [2016-12-16] Написать софт для Сервера. Сервер должен уметь объявлять начало матча по сети, генерить монеты, рассылать сообщения с их координатами и подсчитывать по завершению матча количество монет в сундуках команд. [НЕ РЕАЛИЗОВАНО] [2016-12-28] Написать проги для голопроекторов и инфо-панелей. Там не всё так сложно: просто рисовать красивенько инфу о матче. [ГОТОВО] Собрать заявки участников. Я полюбому участвую. Обновления [2016-12-01] Ссылка. Арена. Инфа о всех софтверных компонентах. Планы. Архитектура. Гитхаб. Люди и коммуникации. [2016-12-02] Ссылка.В продолжение к предыдущему апдейту. [2016-12-08] Ссылка. Ссылка на карту арены. Изменён состав модов. @astral17 получил доступ к GitHub-репозиториям. Ориентировочная дата завершения написания сервера. Канбан. Планшетов не будет. Гитхаб. [2016-12-14] Ссылка. Написан сервер. Установка сервера. Софт и планы. [2017-01-02] Ссылка. Конфигурация роботов. Процесс настройки перед стартом. Уточнение правил. Сообщения сервера. Изменение даты; время, место. Софт. [2017-01-20] Ссылка.Дата, время, место, распорядок проведения раунда. [2017-01-21]. Ссылка.Итоги и планы. Ну что, посражаемся?
- 243 ответа
-
- 9
-
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Это же JS. На Линуксе тоже работает.
- 65 ответов
-
Да, такое случается, тоже замечал. Но почему - непонятно. Надо будет расследовать.
-
Вот кстати непонятно, как лаг сервера может сбить робота. Ведь выполнение программы производится на сервере и движение тоже, клиент только отображает изменение положения робота.
-
Мы ещё не увидели ни одной строки кода.
-
Вообще, как только возникает место, где копипастится дважды один и тот же кусок кода, стоит сразу задуматься - "а правильно ли я делаю?" =) Например тут можно переписать код так: for i = 1, #t do if t[i] == 9 then wX = wXst wY = wY + 1 else term.setCursor(wX, wY) term.write(draw[t[i]]) wX = wX + 1 end end P.S. К слову, для переноса строки лучше юзать число 0. На случай, если у тебя будет бульше восьми символов для рисования. А вот 0 никак не будет конфликтовать, т.к. индексы начинаются с 1.
-
@qwertyMAN, нет, не из-за этого. Боб инициализирует массив не указывая ключи, а значит, Луа им сам выставляет ключи от 1 до N. А цикл for k, v in pairs(t) do пройдёт по ним по порядку. Но ты прав в том, что по индексированному массиву стоит перемещаться юзая индексы. =)
-
Не вчитывался в код, но мне кажется это из-за того, что ты сначала рисуешь символ, а потом перемещаешь курсор. Т.е. после перевода строки, первый символ окажется не там где надо, т.к. позиция курсора ещё не обновилась.
-
Ты ведь обратил внимание, что Наполеон из первого поста УЖЕ пишет чатбота "аналогичного Siri" на Lua и при том на ComputerCraft? Но мне кажется что на деле тут планы так далеко не пойдут. Максимум что мы увидим - это простейший switch с набором заготовленных ответов. И это если что-то вообще будет написано. =)
-
Не согласен. Если идёт ComputerCraft, то OpenComputers тоже пойдёт. OpenComputers подёт только так, если интерес есть. Другое дело если интереса нету. =)
-
Ссылочку бы. А то - где заценивать? Не планируешь переходить на OpenComputers?
-
Так проще парёной репы. 1) Идёшь сюда: https://ru.wikipedia.org/wiki/%D0%9F%D1%81%D0%B5%D0%B2%D0%B4%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0 2) Копипастишь нужные символы. 3) ... 4) Профит!
-
Ну, во-первых можно просто взять и напечатать. print("▓") CP437 лучше не юзай, юзай Юникод. OpenComputers поддерживает огромное количество символов Юникода. Для этого предусмотрена специальная либа. local unicode = require('unicode') print(unicode.char(12345)) -- переводим код символа в строку и распечатываем его
-
Вот вот =) А со стороны собственно софта никто не зашёл. Я скромно полагаю, что это по причине его несокрушимости и неприступности.
-
Когда банк был на серваке - его пробовали сломать. =) Но, насколько я помню, самые эффективные попытки основывались на социальной инженерии и читах самого Майна.
-
Вот как бы да, вирус ообычно этим и занимается. А поскольку основная "сложная система" OC - это OpenOS, то все вирусы под неё выглядят примерно так: Я – Чукотский вирус. В связи с очень плохим развитием информационных технологий на моей родине, я не могу причинить вред вашему компьютеру. Пожалуйста, будьте любезны, сотрите самостоятельно один из файлов с вашего компьютера, а затем перешлите меня другим. Заранее благодарен. Чукотский вирус
