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

"Елки палки" или хроники одной программы

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

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

(22 Июнь 2015 - 11:23) MrEnderfall : Люди, скиньте нормальный туториал по OpenComputers.
(22 Июнь 2015 - 11:26) LeshaInc    : @MrEnderfall http://ocdoc.cil.li
(22 Июнь 2015 - 11:27) MrEnderfall : @LeshaInc , большое спасибо!
(22 Июнь 2015 - 11:28) LeshaInc    : Странно, я вроде как мануал на английском языке дал.
(22 Июнь 2015 - 11:31) MrEnderfall : @LeshaInc , я очень хорошо английский знаю, как-нибудь пойму.

После чего MrEnderfall углубился в чтение документации. На втором часу пришло озарение.

(22 Июнь 2015 - 13:12) MrEnderfall : Люди, наконец-то у меня заработал мозг. Я придумал ферму дерева (Банально), вот в чём смысл программы: робот сканирует участок чанка , и если он находит блок дерева по ID , то он подходит к этому блоку и начинает рубить, и так пока в чанке не останется дерева, потом(Если дерева в чанке не осталось) он идёт в другой чанк по спиралеобразному курсу и ищет там дерево, если инвентарь робота заполнен, он ставит эндер-сундук и отправляет дерево хозяину. Комплектация робота: сам робот, топор, Hover Upgrade, Inventory Upgrade, Battery Upgrade(По желанию), Generator Upgrade (По желанию).

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

(22 Июнь 2015 - 13:19) MrEnderfall : Единчтвенная проблема, я не знаю как это всё устроить в Lua так как я плохо его знаю.
(22 Июнь 2015 - 13:25) MrEnderfall : Так, уже понимаю,
* robot.detect(): boolean, string
* -- тут надо вставить ID Дерева
* robot.swing([side: number]): boolean[, string]
* -- ЗЫ. мне непонятно куда вставлять ID дерева
(22 Июнь 2015 - 13:28) cyber01     : @MrEnderfall вроде бы detect просто так не определит по ID..
(22 Июнь 2015 - 13:29) MrEnderfall : Незнаю, я только начал изучать Robot API.

На этом моменте, жертвой музы MrEnderfall'а пал и Артем. Восхищенный широтой замысла, он присоединился к команде.

(22 Июнь 2015 - 16:43) MrEnderfall : Так, скажите мне как сделать движение робота "змейкой"?
(22 Июнь 2015 - 16:44) LeshaInc    : @MrEnderfall для начала прочитать мануалы.
(22 Июнь 2015 - 16:45) artem211    : @MrEnderfall Такс
(22 Июнь 2015 - 16:45) artem211    : вот я и пришел
(22 Июнь 2015 - 16:45) artem211    : Кто чего хотел от меня

После того, как было установлено точно, шахтера они пишут или дровосека, MrEnderfall озвучил новое ТЗ.

(22 Июнь 2015 - 16:56) artem211    : @MrEnderfall Не торопись
(22 Июнь 2015 - 16:57) artem211    : @MrEnderfall а то снова придется переделывать, пиши сюда свою концепцию, будем на лету править
(22 Июнь 2015 - 16:59) MrEnderfall : Робот ищет перед собой блок дерева (ферма должна быть плоская) если, не находит, то движется дальше, и так пока не найдёт блока дерева, дальше он рубит блок сверху(даже если его нет, как решить, не знаю.), потом рубит блок спереди и летит вверх, и так пока не перестанет находить блоки впереди, тогда он опускается и ищет дерево дальше.

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

(22 Июнь 2015 - 18:19) MrEnderfall : самая самая первая, сырая, и не полная версия http://pastebin.com/e8ubU987

(Исходный код прилагается.)

LrogFVT.png

Версия 1.0
==========

--сделал MrEnderfall и artem211
print(OpenTimberman by MrEnderfall and artem211)
if robot.detect().true
robot.swing(30)
else
robot.forward()

 



Релиз был тепло принят критикой.

(22 Июнь 2015 - 18:20) LeshaInc : 6 строк... 6 строк Карл... 6 строк...

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

(22 Июнь 2015 - 18:23) MrEnderfall : @artem211 извините, вы мой друг и помощник, доктор Ватсон, и я просто должен вас вписать в титры.
(22 Июнь 2015 - 18:28) artem211 : @MrEnderfall На будущее, без спроса у правообладателя, ты не имеешь права нигде и никак о нем писать
(22 Июнь 2015 - 18:29) artem211 : @MrEnderfall Так что удали оттуда мой ник/имя/кличку

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

(Исходный код прилагается.)

ZqC2ufA.jpg

Версия 2.0 (с багфиксами)
=========================

--сделал MrEnderfall
print "OpenTimberMan by MrEnderfall"
if robot.detect()
then
robot.swing(30)
robot.forward()
robot.up()
end

 



Мы искренне надеемся, что она не станет последней. И скоро на сервере будут бодро махать топорами Тимберманчики третьего поколения.

 

Ссылка на тему о разработке программы.

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


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

Для автора поста:

NSDo3Uu.png

 

Для героя романа:

 

[ok=ВАЙТ-ЛИСТ!][/ok]

 

 

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


 

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


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

IРжу не могу.

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


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

Начнет с программы в шесть строк, закончит офигенной системой с графическим интерфейсом... Наверное.

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


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

3596612.jpg

Предлагаю добавить на форум медальку "Оскар!"

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

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


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

Нормальный подход, в генетических алгоритмах именно так и делается. Какой-нибудь из новых вариантов окажется лучше предыдущих. А если не окажется, всегда можно попробовать еще раз. Будь я роботом, именно так бы и писал, только релизил бы почаще.

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


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

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

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

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

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

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

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

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

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


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