🦊 FoxWiki

Авто-шахтёр и инвентарь

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


Инвентарь: полный API

Редактор Lua
1
2
3
4
5
6
7
8

Архитектура авто-шахтёра

Хороший авто-шахтёр состоит из нескольких независимых модулей:


Менеджер инвентаря

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

Выгрузка в сундук

Черепашка возвращается домой и складывает всё в сундук:

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11

Отслеживание позиции для возврата

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

Возврат домой по координатам

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Главный цикл шахтёра

Редактор Lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

🚀 Задания

Задание 1 Добавь к авто-шахтёру автозаправку: после возврата домой черепашка проверяет слот 16. Если там уголь — заправляется. Если топлива не хватит на ещё один рейс — останавливается с сообщением.

Задание 2 Добавь статистику: считай количество добытых блоков каждого типа руды. В конце работы выводи таблицу: "Алмаз: 5, Железо: 32, Золото: 3".

Задание 3 Напиши функцию sortInventory(): сортирует инвентарь так чтобы все предметы одного типа были в соседних слотах. Используй turtle.transferTo().

Задание 4 Улучши dropTrash(): не выбрасывай мусор если в инвентаре меньше 8 свободных слотов — сначала посчитай стоит ли тратить время. Если выбросить меньше 5 предметов — не стоит.

Задание 5 Реализуй систему "чёрного ящика": перед каждым значимым действием (движение, копание, возврат) записывай в таблицу log запись с действием и временем (os.time()). В конце работы выводи последние 20 записей.

НазадОшибки
ДалееЦикл for