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

Клеточные автоматы в Minecraft

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

У роботов в minecraft мире есть одна очень удобная фича - возможность копать и ставить блоки, ну и двигаться от блока к блоку.
Это дает возможность программировать тьюрмитов с самыми минимальными познаниями в программировании.
Код тьюрмита прост, но исполнение кода похоже на развитие живого организма - маленькая часть кода генерирует огроммные, замысловатые узоры и фракталы.
 
Пример для муравья Лэнгтона:

local r = require('robot')

while 1 do
  if r.detectDown() then
    r.swingDown()
    r.turnLeft()
  else
    r.placeDown()
    r.turnRight()
  end
  r.forward()
end

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

local r = require('robot')

while 1 do
  if r.detect() then
    r.swing()
    r.turnLeft()
  else
    r.forward()
    r.turnAround()
    r.place()
    r.turnRight()
  end
end

Результат работы после 10000 шагов:

 

fX2XKfg.png



Предлагаю выкладывать в этой теме код и скрин работы разных клеточных автоматов, реализованных при помощи роботов.

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

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


Ссылка на сообщение
Поделиться на других сайтах
r=require("robot")

while true do

if r.detectDown() then r.swingDown() r.forward()

else r.placeDown() r.back()  

end

r.turnRight()

end

Делает квадраты.

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

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


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

 

r=require("robot")
while true do
if r.detectDown() then r.swingDown() r.forward()
else r.placeDown() r.back()  
end
r.turnRight()
end
Делает квадраты.

 

это, я так понял, "новый муравей Кванта"? :D

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


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

это, я так понял, "новый муравей Кванта"? :D

Ага.Написанный на коленке за 15 минут.

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


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

Все-таки долгий процесс.. Дебаг-картой намного быстрей, да и цвета можно разные сделать.

 

local r = require("robot")

local function rr()
  if r.detectDown() then
    r.swingDown()
  else
    r.placeDown()
    r.forward()
  end
end

while 1 do
  for i = 1, 4 do
    for j = 1, 5 do
      rr()
      r.forward()
      r.turnRight()
    end
    r.forward()
  end
  r.turnLeft()
  r.back()
end

hh0Wryl.pngHrcnNAE.pngAUXChiH.png

 

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

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


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

Можно создать программу, в которой для каждого тьюрмита создается отдельный поток. Например есть один тьюрмит-поток. Ходит-ходит, нажрался и размножается. Создаётся второй тьюрмит-поток и он тоже размножается...

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


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

Можно создать программу, в которой для каждого тьюрмита создается отдельный поток. Например есть один тьюрмит-поток. Ходит-ходит, нажрался и размножается. Создаётся второй тьюрмит-поток и он тоже размножается...

Тьюрмит идет к станции и крафтит там свою детку, а в конце армия тьюрмитов зохавает весь сервер.

Даешь машинный апокалипсис! )

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


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

Тьюрмит идет к станции и крафтит там свою детку, а в конце армия тьюрмитов зохавает весь сервер.

Даешь машинный апокалипсис! )

Надо сначала автоматического робогрифера сделать :)

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


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

Надо сначала автоматического робогрифера сделать :)

 

Надо сначала с хелоуворлда, а потом уже робогриферы

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


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

Можно создать программу, в которой для каждого тьюрмита создается отдельный поток. Например есть один тьюрмит-поток. Ходит-ходит, нажрался и размножается. Создаётся второй тьюрмит-поток и он тоже размножается...

 

Делал такое, черепаха собирала 8 блоков железной руды и запускала еще одну черепаху, в этом нет смысла.

 

 

Тьюрмит идет к станции и крафтит там свою детку, а в конце армия тьюрмитов зохавает весь сервер.

Даешь машинный апокалипсис! )

 

Было уже, но так как мод для этого не приспособлен получается очень-ОЧЕНЬ большо лагодром.

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

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


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

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

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

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

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

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

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

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

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


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