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

Муравейник

Рекомендуемые сообщения

Есть такая древняя задумка, которая появилась еще при СС1.3:

 

Берем черепаху-шахтера, устанавливаем, запускаем прогу.

Черепаха (назовем ее маткой) начинает перелопачивать карту в поисках ресурсов, сортирует, складывает в сундуки, создает других черепах (рабочих).

Рабочие строят фермы деревьев, терраформируют мир по такому шаблону - от y5 до y32 строятся фермы, склады, заводы, а все что выше превращается в каменную суперплоскость.

Можно прикрутить взаимодействие с игроками - игрок заказывает предметы/постройки, а черепахи это создают за энергоресурсы.

 

Хотелось такое запилить с голым CC, без модов, но тогда это было довольно сложно, теперь есть возможность, но нет желания. В OC больше всяких плюшек, которые упростят некоторые функции, но усложнят другие, в общем я больше на стороне OC.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рабочую черепаху мало создать. Нужно еще переписать на нее программу. В СС это можно сделать только при помощи дисковода. А как в ОС даже не знаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рабочую черепаху мало создать. Нужно еще переписать на нее программу. В СС это можно сделать только при помощи дисковода. А как в ОС даже не знаю.

В робота дисковод как апгрейд можно вставить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В робота дисковод как апгрейд можно вставить.

Тут смысл не в самом дисководе, а в том, чтобы без участия человека на совершенно голую черепаху/робота поставить какое то ПО. Если черепаха рождается в непосредственной близости от дисковода, в который вставлена дискета, то на черепахе автоматом выполняется файл startup, записанный на дискете.

А как в ОС? Сможет ли один робот вставить дискету в другого робота и сделать ему reboot?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут смысл не в самом дисководе, а в том, чтобы без участия человека на совершенно голую черепаху/робота поставить какое то ПО. Если черепаха рождается в непосредственной близости от дисковода, в который вставлена дискета, то на черепахе автоматом выполняется файл startup, записанный на дискете.

А как в ОС? Сможет ли один робот вставить дискету в другого робота и сделать ему reboot?

Можно, вполне. Взять дискету в "руку", ПКМнуть на дисководу. Программа должна называться autorun, она автоматически выполнится (по умолчанию, можно отключить). В этом авторане нужно смонтировать диск по адресу, который можно узнать, спросив о текущей директории, в корень, назвать её так же — autorun, записать туда содержимое, например, robant. После этих операций при буте робота он автоматом заавторанится из файла в корне.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Все как-то не найду  времени посидеть, разобраться и поиграться с роботами. Но хотел спросить. Кто-то пробовал автоматизировать сборку роботов вообще?

 

То есть к сборочной машине подключена труба, из списка на ПК выбираем комплектацию галочками и соглашаемся. ПК дает на определенные гейты сигналы редстоуна в четкой последовательности(в сундуках уже у нас заранее отдельно лежат все комплектующие). Вроде бы разработчик пофиксил там что-то, что монитор не может попасть в слот для процессора :)

 

Так вот, работает ли это все хотя бы при минимальном участии человека??? Я уже молчу про то, может ли робот заказать у такой установки еще одного робота для определенных целей нужной комплектации без человека? Если нет, то очень странно, что в компьютерном моде отсутствует возможность компьютеризовать и автоматизировать автосборку роботов. Как там кнопку нажать без человека  "Приступить к сборке" и прочее? Кто-то вникал? С трубами вся эта сборочная ОС-ская джигурда  работает хоть вообще? Если эта фигня так не делает, то печально. Тогда о какой-то колонии роботов на ОС пока говорить  рано, плюс реально надо еще тестировать автопрограмирование "роботов-детенышей" "роботом-маткой".

 

На КК сделать автономный рой черепах проблем нет вообще, с сетью и GPS покрытием, тем более, что черепахи уже в 1.65 определяют ИД блоков и прочее. Внести им только крафты и методы.

 

Год назад еще я на нашем стареньком форуме на Джумле ссылочку  кидал: 

 

 

Вот специально ролик для игроков, которые думают, что круче Грега и Эндеркарьера из Экстраутилисов ничего нет в майне:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Так черепахи же не грузят чанки. Тогда нужно, чтоб или они с собой таскали при добыче чанклоадерную вагонетку (интересно, откуда им эндерглаза брать), или расставляли везде чанклоадеры (и повалили сервер).

Роботы - понятно, чанклоадер есть встроенный, но их сборку непонятно как автоматизировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну вообще, если мне не изменяет память, есть же аддон на КК с чанклоадерами на черепах... #админ_поставь_мод

:D

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Задача создания муравейника сводится к саморепликации, как основу устройства муравейника.

 

Я считаю, что создание программы для робота\черепашки по саморепликации, это апогей программирования для МС, и наверное, самая востребованная разработка для компьютерного мода. Разрабатывая каждую новую программу, мы приближаем наступление момента, когда первая самореплицирующаяся машинка появится.

Например, объеденив строительную программу и копательную, можно уже создать робота, который построит улей из ресурсов, которые сам добудет.

 

Но по моему мнению, основная проблема состоит не в принципиальной невозможности создать робота который создает робота (робот не может тыкнуть на кнопку "собрать"), а в обработчике ошибок.

На каждом этапе работы этой "королевы" будет возникать куча прерываний, начиная с падающего песка и заканчивая багами модов. И сделать программу, которая сможет сама находить решение крайне сложно.

 

Так что, для меня сейчас цель плавно дописывать свою программу строительства. Затем, я смогу использовать ее, что бы робот смог сгенерировать и построить дом сам. Далее, я использую программу "Домик Байта", которую напишет кто то другой, что бы ориентироваться в построеном доме. Ну и так далее.

 

А в конце сбудется мечта - они съедят майн мир.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
А в конце сбудется мечта - они съедят майн мир.

Ты ужасен! (О_О)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
я использую программу "Домик Байта", которую напишет кто то другой, что бы ориентироваться в построеном доме

Чем тебе мое API не нравится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Задача создания муравейника сводится к саморепликации, как основу устройства муравейника.

 

Я считаю, что создание программы для робота\черепашки по саморепликации, это апогей программирования для МС, и наверное, самая востребованная разработка для компьютерного мода. Разрабатывая каждую новую программу, мы приближаем наступление момента, когда первая самореплицирующаяся машинка появится.

Например, объеденив строительную программу и копательную, можно уже создать робота, который построит улей из ресурсов, которые сам добудет.

 

Но по моему мнению, основная проблема состоит не в принципиальной невозможности создать робота который создает робота (робот не может тыкнуть на кнопку "собрать"), а в обработчике ошибок.

На каждом этапе работы этой "королевы" будет возникать куча прерываний, начиная с падающего песка и заканчивая багами модов. И сделать программу, которая сможет сама находить решение крайне сложно.

 

Так что, для меня сейчас цель плавно дописывать свою программу строительства. Затем, я смогу использовать ее, что бы робот смог сгенерировать и построить дом сам. Далее, я использую программу "Домик Байта", которую напишет кто то другой, что бы ориентироваться в построеном доме. Ну и так далее.

 

А в конце сбудется мечта - они съедят майн мир.

 

Апогей, тогда уж - если они сами себя исправлять начнут. То есть, отслеживать, что вызвало ошибку, и принимать меры к тому, чтоб подобное не произошло впредь. Хотя это уже где-то за гранью.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Чем тебе мое API не нравится?

Волновые алгоритмы по определению медленнее А*. Запусти поиск 3д пути хотя бы для 10 тысяч клеток, застынет же всё.

Плюс, не достаточно просто поиска пути. Нужно умение пользоваться оборудованием. Класть и доставать из печки руду, делать инструменты, сортировать вещи в сундуки.

 

 

Хотя это уже где-то за гранью.

Это, конечно, нереально. Нам достаточно обработки ошибок высокого уровня. Как, например, если в винде зависло окно Explorer'а, винда перезагружает процесс, а не весь компьютер.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оказывается, Electronics Assembler разпознаётся как компонент для компа OpenComputers. Т. е., выполнив вот такой код, Вы сможете начать процесс сборки:

assembler = require("component").assembler
assembler.start() -- Запустить процесс сборки
print(assembler.status()) -- Узнать статус

Компоненты для робота поставлять по трубам, сортируются нормально. Единственное, сначала нужно грузить дорогие апгрейды, а затем — уровнем пониже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Волновые алгоритмы по определению медленнее А*. Запусти поиск 3д пути хотя бы для 10 тысяч клеток, застынет же всё.

Плюс, не достаточно просто поиска пути. Нужно умение пользоваться оборудованием. Класть и доставать из печки руду, делать инструменты, сортировать вещи в сундуки.

 

 

 

Это, конечно, нереально. Нам достаточно обработки ошибок высокого уровня. Как, например, если в винде зависло окно Explorer'а, винда перезагружает процесс, а не весь компьютер.

поиск пути всегда можно разбить на части, плюс, я думаю ты тоже не сразу вокруг земли обойдешь,и то с gps. пока кто-то напишет домик для байта, ты уже старый станешь.

если бы черепаха видела, тогда можно было бы сделать алгоритм проще.

как говорят ученые, мы не можем уменьшать транзистор бесконечно, потому что когда нибудь он станет меньше атома, и тогда он перестанет существовать. так, и с кодом нельзя двумя строчка описать алгоритм поиска пути.

Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Оказывается, Electronics Assembler разпознаётся как компонент для компа OpenComputers. Т. е., выполнив вот такой код, Вы сможете начать процесс сборки:

Ну вот, другое дело! Значит, идем копать ресурсы на нового робота по своему образу и подобию? Или есть какие то еще фундаментальные проблемы?

 

 

 

поиск пути всегда можно разбить на части,

Разбиение карты на ключевые точки это выход для объемов больше 100к клеток, ибо моя реализация А* на тормозном СС 100к расчитывает за 20-30 секунд, что вполне приемлемо.

нельзя двумя строчка описать алгоритм поиска пути.

Нет можно! Не обязательно рассчитывать поиск пути между городами через каждый метр дороги в стране. Достаточно указать расстояние между городами. А в городе - между перекрестками.

Разбить муравейник на перекрестки и комнаты, и между ними искать путь по графу с массой точек, что и делает А*

и то с gps

Я идейный противник GPS и других беспроводных связей между муравьями. Интереснее и перспективнее разработать тактильную передачу информации между муравьями, а так же подобие феромонов для поиска пути.

Вкратце - брать пример с реального мира. Черепашки усиками потерлись и сообщили друг другу где теперь второй склад, а где шахта.

ants.jpg

пока кто-то напишет домик для байта, ты уже старый станешь. 

Ничего, пережду на планете Миллера любуясь волнами.

Изменено пользователем Krutoy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет можно! Не обязательно рассчитывать поиск пути между городами через каждый метр дороги в стране. Достаточно указать расстояние между городами. А в городе - между перекрестками.


Разбить муравейник на перекрестки и комнаты, и между ними искать путь по графу с массой точек, что и делает А*.


ну ... это не две сточки. :smile3:


Изменено пользователем NEO

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну ... это не две сточки. :smile3:

Смотря сколько символов в строке. Ты же знаешь, что в луа можно заменять переход строки символом ";" ?

local a=0; local b=2; a=b; print(b)

crazy_pilot.gif

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...