OpenComputers/Робот-дровосек
Эта простая программа для робота с топором предназначена для сбора древесины.

Робот дежурит возле дерева, срубая его, когда оно вырастает и высаживая новое.

## Исходный код

local robot = require("robot") local comp = require("computer") function jack() while robot.detect() do if not robot.up() then robot.swingUp() robot.up() end end while not robot.detectDown() do robot.down() robot.swing() end robot.place() robot.up() end function unload() robot.turnAround() robot.down() for c = 2, 16 do robot.select(c) if robot.count() > 0 then robot.drop() end end robot.select(1) robot.up() robot.turnAround() end while true do robot.up() if robot.detect() then jack() if robot.count(2) == 64 then unload() end end robot.down() if comp.energy() < 10 then print("Error! Low energy level.") break end os.sleep(30) end

## Разбор

Программа состоит из двух функций, которые вызываются из главного цикла.

Функция `jack()`

срубает дерево и высаживает новое на его место.

Функция `unload()`

производит выгрузку инвентаря (кроме 1-ого слота) в стоящий позади робота сундук.

Главный цикл прерывается при низком уровне энергии (<100). В этом месте было бы уместно вставить сообщение главному серверу. (Это потребует установки на робота беспроводной сетевой платы.) Таким образом игрок сможет удаленно контролировать состояние своих роботов.

## Эксплуатация

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


Сразу после запуска, и далее раз в 30 секунд, робот будет проверять не выросло ли дерево. Если оно вырастет, робот срубит его начиная с вершины (если стоит модификация TreeCapitator или аналогичная, то рубка начиная снизу будет неэффективна из-за большого разброса блоков дерева). После того, как робот накопит стек в 64 блока дерева во втором слоте, он выгрузит содержимое инвентаря в сундук, за исключением 1-ого слота, в котором он хранит саженцы.


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

Робот некорректно обрабатывает большие и разветвлённые деревья.