Программируй в Minecraft. Строй выше, выращивай быстрее, копай глубже и автоматизируй всю скучную работу! [Эл Свейгарт] (pdf) читать онлайн

Книга в формате pdf! Изображения и текст могут не отображаться!


 [Настройки текста]  [Cбросить фильтры]

AL SWEIGART

CODING WITH
MINECRAFT

BUILD TALLER, FARM FASTER, MINE DEEPER,
AND AUTOMATE THE BORING STUFF

ЭЛ СВЕЙГАРТ

ПРОГРАММИРУЙ
В MINECRAFT

СТРОЙ ВЫШЕ, ВЫРАЩИВАЙ БЫСТРЕЕ, КОПАЙ ГЛУБЖЕ
И АВТОМАТИЗИРУЙ ВСЮ СКУЧНУЮ РАБОТУ!

ƣƔƚ 004.4-93
ƑƑƚ 32.973.26-018
ơ24
Al Sweigart
CODING WITH MINECRAFT: BUILD TALLER, FARM FASTER, MINE DEEPER,
AND AUTOMATE THE BORING STUFF
© 2018 by Al Sweigart. Title of English-language original: Coding with Minecraft: Build Taller, Farm
Faster, Mine Deeper, and Automate the Boring Stuff, ISBN 978-1-59327-853-3, published by No Starch
Press. Russian-language edition copyright © 2018 by EKSMO Publishing House. All rights reserved

ơ24

ƦƷƺƾƸƵDžLJ, Ʋǀ.
ƟǀƾƳǀưƼƼƸǀǃƹ Ʋ Minecraft. ơǂǀƾƹ ƲNjLjƵ, ƲNjǀưljƸƲưƹ ƱNjǁǂǀƵƵ, ƺƾƿưƹ ƳƻǃƱƶƵ Ƹ ưƲǂƾƼưǂƸƷƸǀǃƹ Ʋǁǎ ǁƺǃLJƽǃǎ ǀưƱƾǂǃ! / ƭƻ ơƲƵƹƳưǀǂ ;
[ƿƵǀ. ǁ ưƽƳƻ. ƠưƹǂƼưƽ Ɯ.Ɛ.]. — ƜƾǁƺƲư : ƭƺǁƼƾ, 2019. — 344 ǁ. —
(ƟǀƾƳǀưƼƼƸǀƾƲưƽƸƵ ƴƻǏ ƴƵǂƵƹ).
ƝƾƲưǏ ƺƽƸƳư ƴƻǏ ƲǁƵDž ƻǎƱƸǂƵƻƵƹ ƸƳǀNj Minecraft ƾǂ ưƲǂƾǀư ƼƸǀƾƲNjDž ƱƵǁǂǁƵƻƻƵǀƾƲ-ǁưƼƾǃLJƸǂƵƻƵƹ ƿƾ ƿǀƾƳǀưƼƼƸǀƾƲưƽƸǎ ƭƻư ơƲƵƹƳưǀǂư. ƑƻưƳƾƴưǀǏ ǁƲƾƵƼǃ ƼƽƾƳƾƻƵǂƽƵƼǃ ƾƿNjǂǃ, ơƲƵƹƳưǀǂ ǃƼƵƵǂ Ʋ ǃƲƻƵƺưǂƵƻnjƽƾƹ ƸƳǀƾƲƾƹ DŽƾǀƼƵ ƿƾƴưǂnj ƴưƶƵ ǁưƼǃǎ
ƽƵƿǀƾǁǂǃǎ ƸƽDŽƾǀƼưdžƸǎ Ƹ ƷưƸƽǂƵǀƵǁƾƲưǂnj ƴưƶƵ ǂƵDž ƼưƻƵƽnjƺƸDž LJƸǂưǂƵƻƵƹ, ƺƾǂƾǀNjDž
LJǂƵƽƸƵ ƽƵ ƸƽǂƵǀƵǁǃƵǂ. ơưƼưǏ ƿƾƿǃƻǏǀƽưǏ ǃ ƴƵǂƵƹ Ʋƾ ƲǁƵƼ ƼƸǀƵ ƸƳǀư ǁǂưƽƵǂ ƵljƵ ƸƽǂƵǀƵǁƽƵƵ, ƺƾƳƴư ƲưLj ǀƵƱƵƽƾƺ ƽưǃLJƸǂǁǏ ƸǁƿƾƻnjƷƾƲưǂnj Ƹ ǁƲƾƸƼƸ ǀǃƺưƼƸ ƿǀƾƳǀưƼƼƸǀƾƲưǂnj
ưƲǂƾƼưǂƸLJƵǁƺƸDž ƿƾƼƾljƽƸƺƾƲ-LJƵǀƵƿưLjƵƺ, ƴƵƻưǎljƸDž Ʋ Minecraft Ʒư ƸƳǀƾƺư Ʋǁǎ ǁưƼǃǎ
ǁƺǃLJƽǃǎ ǀưƱƾǂǃ. ơ Ǎǂƾƹ ƺƽƸƳƾƹ LJƸǂưǂƵƻƸ ǁƼƾƳǃǂ ƽƵ ǂƾƻnjƺƾ ǁǂưǂnj ƿǀƾƴƲƸƽǃǂNjƼƸ ƳƵƹƼƵǀưƼƸ, ƽƾ Ƹ ƿƾƷƽưƺƾƼǏǂǁǏ ǁ ƾǁƽƾƲưƼƸ ƿǀƾƳǀưƼƼƸǀƾƲưƽƸǏ Ƹ ƿƾƻǃLJưǂ džƵƽƽNjƵ ƽưƲNjƺƸ, ƺƾǂƾǀNjƵ Ʋ ƴưƻnjƽƵƹLjƵƼ ǁƼƾƳǃǂ ǀưƷƲƸǂnj.
ƨƙƟ 004.4-93
ƖƖƟ 32.973.26-018

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

Издание для досуга
Для среднего школьного возраста
ПРОГРАММИРОВАНИЕ ДЛЯ ДЕТЕЙ

Эл Свейгарт
ПРОГРАММИРУЙ В MINECRAFT

Строй выше, выращивай быстрее, копай глубже и автоматизируй
всю скучную работу!
Главный редактор Р. Фасхутдинов. Ответственный редактор Е. Истомина
Художественный редактор А. Гусев. Младший редактор Е. Минина
ООО «Издательство «Эксмо»
123308, Москва, ул. Зорге, д. 1. Тел.: 8 (495) 411-68-86. Home page: www.eksmo.ru E-mail: info@eksmo.ru
Bндіруші: «ЭКСМО» АIБ Баспасы, 123308, МKскеу, Ресей, Зорге кLшесі, 1 Mй. Тел.: 8 (495) 411-68-86.
Home page: www.eksmo.ru E-mail: info@eksmo.ru.
Тауар белгісі: «Эксмо»
Интернет-магазин : www.book24.ru
Интернет-д*кен : www.book24.kz
Импортёр в Республику Казахстан ТОО «РДЦ-Алматы».
IазаRстан РеспубликасындаSы импорттаушы «РДЦ-Алматы» ЖШС.
Дистрибьютор и представитель по приему претензий на продукцию, в Республике Казахстан: ТОО «РДЦ-Алматы»
IазаRстан Республикасында дистрибьютор жKне Lнім бойынша арыз-талаптарды
RабылдаушыныX Lкілі «РДЦ-Алматы» ЖШС, Алматы R., Домбровский кLш., 3«а», литер Б, офис 1.
Тел.: 8 (727) 251-59-90/91/92; E-mail: RDC-Almaty@eksmo.kz
BнімніX жарамдылыR мерзімі шектелмеген.
Сертификация туралы аRпарат сайтта: www.eksmo.ru/certification
Сведения о подтверждении соответствия издания согласно законодательству РФ о техническом регулировании
можно получить на сайте Издательства «Эксмо» www.eksmo.ru/certification
Bндірген мемлекет: Ресей. Сертификация RарастырылмаSан

EKSMO.RU
новинки издательства

Подписано в печать 31.08.2018. Формат 70x1001/16.
Печать офсетная. Усл. печ. л. 27,87.
Тираж
экз. Заказ

ISBN 978-5-04-096471-0

© ƥƵƾLJǁƵǂ ơ.ƕ., DŽƺDžƺƷǃƹ ǂƵ DžLjdždžƿƽƾ ǔƼǐƿ, 2018
© ƣljǃDžǁǀƺǂƽƺ. ƣƣƣ «ƝƼƹƵLJƺǀǑdžLJƷǃ «Ʋƿdžǁǃ», 2018

ĝĚĐđĜĒČęĔđ
ǼȏȎȐȠȜȞȓ........................................................................................................ 13

ĎĎđĐđęĔđ ..................................................................................................14
ȅȠȜȠȎȘȜȓȚȜȒȩȒșȭ0LQHFUDIW" ................................................................... 15
ȅȠȜȠȎȘȜȓ&RPSXWHU&UDIW" ............................................................................ 15
ǸȎȘȝȜșȪȕȜȐȎȠȪȟȭȫȠȜȗȘțȖȑȜȗ"................................................................... 16
ǿȠȞȡȘȠȡȞȎȘțȖȑȖ ........................................................................................... 17
ǽȜșȡȥȓțȖȓȝȜȚȜȧȖ ....................................................................................... 19
ǰȓȏȞȓȟȡȞȟȩ ................................................................................................... 20
ȅȠȜȚȩȡȕțȎșȖ............................................................................................... 21

ďėČĎČęČģČėĚĜČčĚĞħĝ+758=>ɉɪɨɝɪɚɦɦɚɬɚɧɰɭɥɟɤɗɥɚɋɜɟɣɝɚɪɬɚ
2. Make the turtle dance!]]
3.
4. print('Time to dance!')
5.
ɑɟɪɟɩɚɲɤɚɧɚɱɢɧɚɟɬɬɚɧɰɟɜɚɬɶ
7. turtle.forward()
8. turtle.back()
9. turtle.turnRight()
10. turtle.forward()
11. turtle.back()
12. turtle.back()

74

DZǹǮǰǮ

13. turtle.turnLeft()
14. turtle.turnLeft()
15. turtle.back()
16. turtle.turnRight()
17.
ɑɟɪɟɩɚɲɤɚɤɪɭɬɢɬɫɹ
19. for i = 1, 4 do
20.
turtle.turnRight()
21. end
22.
23. turtle.up()
24. turtle.down()
25. print('Done.')

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȝȜȟșȓȐȐȜȒȎȐȟȓȣȖțȟȠȞȡȘȤȖȗǻȎ
ȔȎȐȘșȎȐȖȦȡCtrlȜȠȘȞȜȗȚȓțȬǰȩȏȓȞȖȝȡțȘȠ[Save]Ȗ
țȎȔȚȖȘșȎȐȖȦȡEnterǵȎȠȓȚȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎțȎ
ȔȎȐȘșȎȐȖȦȡCtrlȐȩȏȞȎȐȝȡțȘȠ[Exit]ȖțȎȔȎȐȘșȎȐȖ
ȦȡEnter.

ēČěğĝĖěĜĚďĜČĘĘħ5A,)6+ǽȜȟșȓȐȩȣȜȒȎȖȕȞȓȒȎȘȠȜȞȎȕȎȝȡȟȠȖȝȞȜȑȞȎȚȚȡmydanceȐ
ȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖ
> mydance
Time to dance!
Done.

ǻȎȫȘȞȎțȓȝȜȭȐȖȠȟȭȠȓȘȟȠTime to dance!ǸȜȑȒȎȞȜȏȜȠ
țȎȥțȓȠȠȎțȤȓȐȎȠȪțȎȫȘȞȎțȓȝȜȭȐȖȠȟȭȠȓȘȟȠDoneȅȠȜȏȩȞȎȟ
ȟȚȜȠȞȓȠȪȚȎșȓțȪȘȖȗȠȎțȓȤȥȓȞȓȝȎȦȘȖțȎȔȚȖȘșȎȐȖȦȡEsc
ȟȞȎȕȡȝȜȟșȓȕȎȝȡȟȘȎȝȞȜȑȞȎȚȚȩȒȜȠȜȑȜȘȎȘȝȜȭȐȖȠȟȭȠȓȘȟȠ
DoneǰȟȓȝȎȘȜȠȜȞȩȓȟȜȐȓȞȦȎȓȠȥȓȞȓȝȎȦȘȎ²ȫȠȜȖȚȓțțȜ
ȠȓȒȐȖȔȓțȖȭȘȜȠȜȞȩȓȠȩȕȎȝȞȜȑȞȎȚȚȖȞȜȐȎșǾȖȟȒȓ
ȚȜțȟȠȞȖȞȡȓȠȘȎȘȥȓȞȓȝȎȦȘȎȒȐȖȔȓȠȟȭȟșȡȦȎȭȟȪȢȡțȘȤȖȗ
turtle.forward()Ȗturtle.back()ȘȜȠȜȞȩȓȐȩȕȩȐȎȬȠȟȭȐ
ȟȠȞȜȘȎȣȖ

ǶǽȁǿȀȍȀǿȍȅdzǾdzǽǮȆǸǶǰǽǹȍǿ

75

ˀ̛̭͘4.2.ʿ̶̵̸̡̛̖̬̼̖̯̦̖̣̦̼̪̖̬̖̪̹̏̔̏̌̌̏̌̽̌̌

DzȎȐȎȗȞȎȟȟȚȜȠȞȖȚȘȎȔȒȡȬȖțȟȠȞȡȘȤȖȬȐȘȜȒȓȝȞȜȑȞȎȚ
Țȩmydance.

ĔĝěĚėĨēĚĎČęĔđĖĚĘĘđęĞČĜĔđĎ
ĎĖĚĐđ
ǽȓȞȐȩȓȒȐȓȟȠȞȜȘȖȐȝȞȜȑȞȎȚȚȓȟȜȒȓȞȔȎȠȘȜȚȚȓțȠȎȞȖȖ.
ǶțȠȓȞȝȞȓȠȎȠȜȞ/XDȖȑțȜȞȖȞȡȓȠȘȜȚȚȓțȠȎȞȖȖȝȜȠȜȚȡȥȠȜ
ȫȠȜȝȜȟȡȠȖȕȎȚȓȠȘȖȝȞȜȑȞȎȚȚȖȟȠȎǰȒȎțțȜȚȘȜȚȚȓțȠȎ
ȞȖȖȜȝȖȟȩȐȎȓȠȟȭȥȠȜȒȓșȎȓȠȝȞȜȑȞȎȚȚȎȖȘȠȜȓȓȎȐȠȜȞ
ǽȞȖȚȓȥȎțȖȓ ǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȐșȖȟȠȖțȑȎȣȝȞȖȐȓȒȓțțȩȣȐȘțȖȑȓȘȜȚȚȓțȠȎȞȖȖțȎȏȞȎțȩțȎȞȡȟȟȘȜȚȭȕȩȘȓ
ȥȠȜȏȩȠȓȏȓȏȩșȜȝȜțȭȠțȜȕȎȥȠȜȜȠȐȓȥȎȓȠȠȎȖșȖȖțȎȭ
ȥȎȟȠȪȘȜȒȎǽȞȖȞȎȏȜȠȓȟLuaȖȟȝȜșȪȕȜȐȎȠȪȞȡȟȟȘȖȗȭȕȩȘȡ
ȠȓȏȭțȓȝȜșȡȥȖȠȟȭ
mydance
>>ɉɪɨɝɪɚɦɦɚɬɚɧɰɭɥɟɤɗɥɚɋɜɟɣɝɚɪɬɚ
2. Make the turtle dance!]]
3.
4. print('Time to dance!')
5.
ɑɟɪɟɩɚɲɤɚɧɚɱɢɧɚɟɬɬɚɧɰɟɜɚɬɶ

ǸȜȚȚȓțȠȎȞȖȗȘȜȠȜȞȩȗțȎȥȖțȎȓȠȟȭȐȟȠȞȜȘȓȝȞȜȒȜș
ȔȎȓȠȟȭȐȟȠȞȜȘȓȋȠȜȚțȜȑȜȟȠȞȜȥțȩȗȘȜȚȚȓțȠȎȞȖȗȝȜ
ȟȘȜșȪȘȡȞȎȟȝȜșȎȑȎȓȠȟȭȏȜșȓȓȥȓȚțȎȜȒțȜȗȟȠȞȜȘȓǺțȜ

76

DZǹǮǰǮ

ȑȜȟȠȞȜȥțȩȓȘȜȚȚȓțȠȎȞȖȖțȎȥȖțȎȬȠȟȭȟȟȖȚȐȜșȜȐ--[[
ȖȕȎȐȓȞȦȎȬȠȟȭȟȖȚȐȜșȎȚȖ]].
ǿȠȞȜȘȎȟȜȒȓȞȔȖȠȐȩȕȜȐȢȡțȘȤȖȖprint()ȘȜȠȜȞȎȭȐȩ
ȐȜȒȖȠțȎȫȘȞȎțȠȓȘȟȠTime to dance!ǶȚȓțțȜȫȠȜȠȠȓȘȟȠ
ȝȜȭȐșȭȓȠȟȭȝȞȖȕȎȝȡȟȘȓȝȞȜȑȞȎȚȚȩǿȢȡțȘȤȖȓȗprint()
ȠȩȡȔȓȐȟȠȞȓȥȎșȟȭȐȑșȎȐȓ
ǿȠȞȜȘȎ²ȫȠȜȠȜȔȓȘȜȚȚȓțȠȎȞȖȗȠȜșȪȘȜȜȒțȜȟȠȞȜȥțȩȗ
ǼȒțȜȟȠȞȜȥțȩȗȘȜȚȚȓțȠȎȞȖȗțȎȥȖțȎȓȠȟȭȟȟȖȚȐȜșȜȐ-ȖȕȎȘȎțȥȖȐȎȓȠȟȭȐȘȜțȤȓȟȠȞȜȘȖȠȜȓȟȠȪȜțȕȎțȖȚȎȓȠȠȜșȪ
ȘȜȜȒțȡȟȠȞȜȘȡǶțȠȓȞȝȞȓȠȎȠȜȞ/XDȖȑțȜȞȖȞȡȓȠȫȠȡȟȠȞȜȘȡ
ȝȜȠȜȚȡȥȠȜȫȠȜȝȞȜȟȠȜȠȓȘȟȠȘȜȠȜȞȩȗȝȜȭȟțȭȓȠȥȠȜȏȡȒȓȠ
ȝȞȜȖȟȣȜȒȖȠȪȒȎșȓȓȋȠȜȝȞȖȚȓȥȎțȖȓȒșȭșȬȒȓȗȘȜȠȜȞȩȓ
ȏȡȒȡȠȥȖȠȎȠȪȘȜȒȝȞȜȑȞȎȚȚȩ

ĞČęĢđĎČėĨęħđěČģđĜđěČĤĖĔ
ǽȜȟșȓȟȠȞȜȘȖȟșȓȒȡȓȠțȓȟȘȜșȪȘȜȟȠȞȜȘȘȜȒȎȟȢȡțȘȤȖȭ
ȚȖȐȩȕȩȐȎȭȘȜȠȜȞȩȓȝȞȜȑȞȎȚȚȎmydanceȕȎȟȠȎȐșȭȓȠȥȓȞȓ
ȝȎȦȘȡȒȐȖȑȎȠȪȟȭ
mydance
ɑɟɪɟɩɚɲɤɚɧɚɱɢɧɚɟɬɬɚɧɰɟɜɚɬɶ
7. turtle.forward()
8. turtle.back()
9. turtle.turnRight()
10. turtle.forward()
11. turtle.back()
12. turtle.back()
13. turtle.turnLeft()
14. turtle.turnLeft()
15. turtle.back()
16. turtle.turnRight()

ǰȑșȎȐȓȠȩȡȔȓȝȜȕțȎȘȜȚȖșȟȭȟȢȡțȘȤȖȭȚȖturtle.
turnLeft()Ȗturtle.turnRight()ǻȜȓȟȠȪȓȧȓȥȓȠȩȞȓ
ȢȡțȘȤȖȖȒșȭȝȓȞȓȚȓȧȓțȖȭȥȓȞȓȝȎȦȘȖȘȜȠȜȞȩȓȠȩȝȜȘȎ
țȓȕțȎȓȦȪturtle.up()turtle.down()turtle.forward()
Ȗturtle.back().

ǶǽȁǿȀȍȀǿȍȅdzǾdzǽǮȆǸǶǰǽǹȍǿ

77

ĩĖĝěđĜĔĘđęĞĔĜğđĘ
ĝěđĜđĘđĥđęĔīĘĔģđĜđěČĤĖĔ
DzȎȐȎȗȝȜȫȘȟȝȓȞȖȚȓțȠȖȞȡȓȚȟȫȠȖȚȖȢȡțȘȤȖȭȚȖȝȞȓȒțȎ
ȕțȎȥȓțțȩȚȖȒșȭȒȐȖȔȓțȖȭȁȏȓȒȖȟȪȥȠȜȠȩțȎȣȜȒȖȦȪȟȭȐ
ȜȏȜșȜȥȘȓ/XD ȐȚȓȟȠȜȝȞȖȑșȎȦȓțȖȭ>ȒȜșȔțȜȏȩȠȪȡȘȎȕȎțȜ
lua> ȖȐȩȝȜșțȖȟșȓȒȡȬȧȖȓȖțȟȠȞȡȘȤȖȖ
lua>
true
lua>
true
lua>
true
lua>
true

turtle.up()
turtle.down()
turtle.forward()
turtle.back()

ǻȓȕȎȏȩȐȎȗȝȓȞȓȒȡȘȎȕȎțȖȓȚțȎȝȞȎȐșȓțȖȭȒȜȏȎȐșȭȠȪ
ȟșȜȐȜturtle.ȖȡȏȓȒȖȟȪȥȠȜȡȥȓȞȓȝȎȦȘȖȓȟȠȪȠȜȝșȖȐȜ
ȂȡțȘȤȖȖturtle.up()Ȗturtle.down()ȝȓȞȓȚȓȧȎȬȠȥȓ
ȞȓȝȎȦȘȡȐȐȓȞȣȐȐȜȕȒȡȣȖȐȜȕȐȞȎȧȎȬȠȐțȖȕțȎȕȓȚșȬ
ȂȡțȘȤȖȖturtle.forward()Ȗturtle.back()ȝȓȞȓȚȓȧȎȬȠ
ȥȓȞȓȝȎȦȘȡȐȝȓȞȓȒȠȜȓȟȠȪȐțȎȝȞȎȐșȓțȖȖȐȘȜȠȜȞȜȚȜțȎ
©ȟȚȜȠȞȖȠªȖțȎȕȎȒȠȜȓȟȠȪȐȝȞȜȠȖȐȜȝȜșȜȔțȜȚțȎȝȞȎȐșȓ
țȖȖȋȠȖȒȐȖȔȓțȖȭȝȜȘȎȕȎțȩțȎȞȖȟ

ˀ̛̭͘4.3.ˑ̴̶̸̡̡̡̛̛̛̛̛̛̭̪̖̬̥̖̦̯̼̭̱̦̥̙̖̦̖̬̖̪̹́̔̏́̌

dzȟșȖȥȓȞȓȝȎȦȘȎȝȓȞȓȚȓȧȎȓȠȟȭȐțȎȝȞȎȐșȓțȖȖȘȜȠȜȞȜȓ
ȠȞȓȏȡȓȠȢȡțȘȤȖȭȒȐȖȔȓțȖȭȠȜȫȠȎȢȡțȘȤȖȭȐȜȕȐȞȎȧȎȓȠ
ȕțȎȥȓțȖȓtrue. (true ǶȟȠȖțȎ Ȗfalse ǹȜȔȪ ²ȫȠȜșȜȑȖ
ȥȓȟȘȖȓ ȖșȖȏȡșȓȐȩ ȕțȎȥȓțȖȭȘȜȠȜȞȩȓȚȩȝȜȒȞȜȏțȜȞȎȟ
ȟȚȜȠȞȖȚȐȑșȎȐȓ

78

DZǹǮǰǮ

ǽȜȟȠȎȐȪȥȓȞȓȝȎȦȘȡțȎȕȓȚșȬȎȐȜȏȜșȜȥȘȓ/XDȐȩȕȜȐȖ
ȢȡțȘȤȖȬturtle.down()țȎȝȞȖȚȓȞȠȎȘ
lua> turtle.down()
false
Movement obstructed

ǽȜȟȘȜșȪȘȡțȎȝȡȠȖȥȓȞȓȝȎȦȘȖțȎȣȜȒȖȠȟȭȏșȜȘȜțȎțȓ
ȟȚȜȔȓȠȝȓȞȓȚȓȟȠȖȠȪȟȭȐȠȞȓȏȡȓȚȜȚțȎȝȞȎȐșȓțȖȖȠȜȑȒȎȐȩ
ȕȜȐȢȡțȘȤȖȖturtle.down()ȐȓȞțȓȠȕțȎȥȓțȖȓfalseȖȐȩ
ȐȓȒȓȠțȎȫȘȞȎțȟȠȞȜȘȡȟȟȜȜȏȧȓțȖȓȚȜȏȜȦȖȏȘȓdzȟșȖȡȥȓȞȓ
ȝȎȦȘȖțȓȠȠȜȝșȖȐȎ ȜțȎ©ȝȞȜȑȜșȜȒȎșȎȟȪª ȝȓȞȓȒȐȖȔȓțȖȭ
ȠȎȘȔȓțȓȝȞȜȖȕȜȗȒȓȠțȜȜȠȜȏȞȎȕȖȠȟȭȒȞȡȑȜȓȟȜȜȏȧȓțȖȓ
lua> turtle.forward()
false
Out of fuel

ȀȎȘȖȚȜȏȞȎȕȜȚȢȡțȘȤȖȖȒȐȖȔȓțȖȭȖțȢȜȞȚȖȞȡȬȠȜ
ȝȞȖȥȖțȓȝȜȘȜȠȜȞȜȗȒȐȖȔȓțȖȓțȓȐȜȕȚȜȔțȜǿȜȕȒȎȐȎȭȝȞȜ
ȑȞȎȚȚȩȜȝȖȟȎțțȩȓȐȫȠȜȗȘțȖȑȓȠȩȏȡȒȓȦȪȥȎȟȠȜȐȩȕȩ
ȐȎȠȪȢȡțȘȤȖȖȒȐȖȔȓțȖȭȒșȭȝȓȞȓȚȓȧȓțȖȭȥȓȞȓȝȎȦȓȘ

ĢĔĖėħ"ĩĠĠđĖĞēČđĎĤđĕěėČĝĞĔęĖĔ
DzȜȟȖȣȝȜȞȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩmydanceȜȟȡȧȓȟȠȐșȭ
șȜȟȪȟȝȜȟȜȏȜȚȘȜȠȜȞȩȗțȎȕȩȐȎȓȠȟȭȝȜȠȜȘȜȚȖȟȝȜșțȓțȖȭ:
ȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩțȎȥȖțȎșȜȟȪȟȝȓȞȐȜȗȟȠȞȜȘȖȖȟȣȜȒ
țȜȑȜȘȜȒȎȖȝȜȟșȓȒȜȐȎȠȓșȪțȜȝȓȞȓȚȓȧȎșȜȟȪȐțȖȕȐȩȝȜș
țȭȭȘȎȔȒȡȬȟȠȞȜȘȡǼȒțȎȘȜțȓȟȘȜșȪȘȜȖțȟȠȞȡȘȤȖȗȚȜȔțȜ
ȜȏȨȓȒȖțȖȠȪȐȑȞȡȝȝȡȥȠȜȏȩȝȜȐȠȜȞȖȠȪȖȟȝȜșțȓțȖȓȫȠȜȗ
ȑȞȡȝȝȩȖțȟȠȞȡȘȤȖȗțȓȟȘȜșȪȘȜȞȎȕ²ȤȖȘșȖȥȓȟȘȖDzșȭȫȠȜ
ȑȜȟȡȧȓȟȠȐȡȬȠȟȝȓȤȖȎșȪțȩȓȖțȟȠȞȡȘȤȖȖȀȎȘȖȓȖțȟȠȞȡȘ
ȤȖȖȖȕȚȓțȭȬȧȖȓȝȜȞȭȒȜȘȖȟȝȜșțȓțȖȭȝȞȜȑȞȎȚȚȩ²ȝȜȟșȓ
ȒȜȐȎȠȓșȪțȜȑȜȖȟȝȜșțȓțȖȭȟȠȞȜȘȖȕȎȟȠȞȜȘȜȗ²țȎȕȩȐȎȬȠȟȭ
ȖțȟȠȞȡȘȤȖȭȚȖȡȝȞȎȐșȓțȖȭȝȜȠȜȘȜȚ.
ȅȠȜȏȩȝȜțȎȏșȬȒȎȠȪȕȎȞȎȏȜȠȜȗȜȒțȜȗȖȕȠȎȘȖȣȖțȟȠȞȡȘ
ȤȖȗțȎȕȩȐȎȓȚȜȗȤȖȘșȜȚforȐȜȏȜșȜȥȘȓ/XDȐȓȒȖȟșȓȒȡȬ
ȧȡȬȟȠȞȜȘȡȘȜȒȎ

ǶǽȁǿȀȍȀǿȍȅdzǾdzǽǮȆǸǶǰǽǹȍǿ

79

lua> for i = 1, 4 do print(i) end
1
2
3
4

ǰȐȓȒȓțțȎȭȠȜȏȜȗȖțȟȠȞȡȘȤȖȭȖȓȟȠȪȖțȟȠȞȡȘȤȖȭȤȖȘșȎ
forȀȎȘȜȗȤȖȘșȚȜȔȓȠțȓȟȘȜșȪȘȜȞȎȕȝȜȐȠȜȞȖȠȪȖȟȝȜșțȓțȖȓ
ȡȘȎȕȎțțȜȗȑȞȡȝȝȩȘȜȚȎțȒǽȜȟșȓȒȜȐȎȠȓșȪțȜȟȠȪȘȜȚȎțȒ
ȝȜȒșȓȔȎȧȎȭȖȟȝȜșțȓțȖȬȞȎȟȝȜșȎȑȎȓȠȟȭȚȓȔȒȡȘșȬȥȓȐȩ
ȚȖȟșȜȐȎȚȖdoȖendȖțȎȕȩȐȎȓȠȟȭȏșȜȘȜȚȎȘȎȔȒȜȓȖȟ
ȝȜșțȓțȖȓȏșȜȘȎțȎȕȩȐȎȓȠȟȭȖȠȓȞȎȤȖȓȗǰțȎȦȓȚȝȞȖȚȓȞȓ
ȏșȜȘȟȜȟȠȜȖȠȐȟȓȑȜȖȕȜȒțȜȗȢȡțȘȤȖȖprint(i) ǽȞȜȑȞȎȚ
ȚȖȟȠȩȐȤȖȘșȎȣȥȎȟȠȜȖȟȝȜșȪȕȡȬȠȖȚȓțțȜȝȓȞȓȚȓțțȡȬi.
dzȓȖȚȭȝȞȜȖȟȣȜȒȖȠȟȘȜȞȓȓȐȟȓȑȜȜȠȟșȜȐȎ©LWHUDWLRQªȥȠȜȜȕ
țȎȥȎȓȠ©ȖȠȓȞȎȤȖȭª ǯșȜȘȚȜȔȓȠȟȜȟȠȜȭȠȪțȓȖȕȜȒțȜȗȎȖȕ
țȓȟȘȜșȪȘȖȣȟȠȞȜȘȘȜȒȎțȜȐțȎȦȓȚȝȞȖȚȓȞȓȫȠȜȠȏșȜȘȝȞȜȟȠ
ȖȟȜȒȓȞȔȖȠȐȩȕȜȐȠȜșȪȘȜȜȒțȜȗȢȡțȘȤȖȖȄȖȘșȟȜȐȓȞȦȎȓȠ
țȎȒȢȡțȘȤȖȓȗprint(i)ȖȠȓȞȎȤȖȖȜȠ1ȒȜ4ȠȜȓȟȠȪȝȞȜȟȠȜ
ȐȩȕȩȐȎȓȠȫȠȡȢȡțȘȤȖȬȥȓȠȩȞȓȞȎȕȎȝȜȒȞȭȒ
ǰȖȠȜȑȓȤȖȘși = 1, 4 do print(i) endȝȜȟșȓȒȜȐȎ
ȠȓșȪțȜȐȩȐȜȒȖȠțȎȫȘȞȎțȥȖȟșȎȜȠ1ȒȜ4ǰțȎȥȎșȓȖȟȝȜșțȓ
țȖȭȤȖȘșȎȖțȠȓȞȝȞȓȠȎȠȜȞ/XDȝȞȖȟȐȎȖȐȎȓȠȝȓȞȓȚȓțțȜȗi
ȕțȎȥȓțȖȓ1ȝȞȓȐȞȎȧȎȭȐȩȕȜȐȐȘȜȒprint(1)ȖȜȠȜȏȞȎȔȎȓȠ
țȎȫȘȞȎțȓ1ȋȠȜȝȓȞȐȎȭȖȠȓȞȎȤȖȭȤȖȘșȎforDzȎșȓȓȟșȓȒȡ
ȓȠȖțȟȠȞȡȘȤȖȭȘȜțȤȎȏșȜȘȎ²end²ȖȖȟȝȜșțȓțȖȓȟțȜȐȎȐȜȕ
ȐȞȎȧȎȓȠȟȭȘțȎȥȎșȡȏșȜȘȎǻȎȐȠȜȞȜȗȖȠȓȞȎȤȖȖȕțȎȥȓțȖȓ
ȝȓȞȓȚȓțțȜȗiȡȐȓșȖȥȖȐȎȓȠȟȭțȎ1ȖțȎȫȘȞȎțȓȜȠȜȏȞȎȔȎȓȠ
ȟȭȥȖȟșȜ2ǶȟȝȜșțȓțȖȓȘȜȒȎȝȞȜȒȜșȔȎȓȠȟȭȒȜȠȓȣȝȜȞȝȜȘȎ
ȝȓȞȓȚȓțțȎȭițȓȟȠȎțȓȠȞȎȐțȎ4ȠȜȓȟȠȪȥȖȟșȡȝȜȟșȓȕȎȝȭ
ȠȜȗȋȠȜȏȡȒȓȠȥȓȠȐȓȞȠȎȭȖȝȜȟșȓȒțȭȭȖȠȓȞȎȤȖȭȤȖȘșȎfor.
ǰȠȎȘȜȚȤȖȘșȓȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪșȬȏȩȓȥȖȟșȎǻȎ
ȝȞȖȚȓȞȥȠȜȏȩȜȞȑȎțȖȕȜȐȎȠȪȤȖȘșȜȠ10ȒȜ13ȐȜȏȜșȜȥȘȓ
/XDȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
lua> for i = 10, 13 do print(i) end
10
11
12
13

80

DZǹǮǰǮ

dzȟșȖȡȘȎȕȎȠȪȠȞȓȠȪȓȥȖȟșȜȘȜȠȜȞȜȓțȎȕȩȐȎȓȠȟȭȦȎȑȜȚ
ȤȖȘșȎȠȜȝȓȞȓȚȓțțȎȭȤȖȘșȎițȎȘȎȔȒȜȗȖȠȓȞȎȤȖȖȏȡȒȓȠ
ȡȐȓșȖȥȖȐȎȠȪȟȭțȓțȎ1ȎțȎȡȘȎȕȎțțȩȗȦȎȑǻȎȝȞȖȚȓȞȝȜ
ȝȞȜȏȡȗȐȜȏȜșȜȥȘȓ/XDȐȩȝȜșțȖȠȪȟșȓȒȡȬȧȡȬȖțȟȠȞȡȘȤȖȬ
lua> for i = 10, 20, 2 do print(i) end
10
12
14
16
18
20

ǰȫȠȜȗȟȠȞȜȘȓȘȜȒȎȦȎȑȞȎȐȓț2ȝȜȫȠȜȚȡȖțȠȓȞȝȞȓȠȎȠȜȞ
/XDȏȡȒȓȠȐȩȐȜȒȖȠȪȐȟȓȥȓȠțȩȓȥȖȟșȎȐȒȖȎȝȎȕȜțȓȜȠ10ȒȜ
20.
ǰȘȎȥȓȟȠȐȓȦȎȑȎȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪȖȜȠȞȖȤȎȠȓșȪțȩȓ
ȥȖȟșȎȠȜȑȒȎȝȓȞȓȚȓțțȎȭȤȖȘșȎȏȡȒȓȠțȓȡȐȓșȖȥȖȐȎȠȪȟȭȎ
ȡȚȓțȪȦȎȠȪȟȭȠȜȓȟȠȪȜȠȟȥȓȠȏȡȒȓȠȝȞȜȖȕȐȜȒȖȠȪȟȭȐȜȏȞȎȠ
țȡȬȟȠȜȞȜțȡȜȠȝȓȞȐȜțȎȥȎșȪțȜȑȜȕțȎȥȓțȖȭǿșȓȒȡȬȧȖȗ
ȘȜȒȒȓȚȜțȟȠȞȖȞȡȓȠȒȓȗȟȠȐȖȓȦȎȑȎ-1:
lua> for i = 4, 1, -1 do print(i) end
4
3
2
1

ȋȠȜȠȘȜȒȝȞȜȖȕȐȜȒȖȠȜȏȞȎȠțȩȗȜȠȟȥȓȠȐȒȖȎȝȎȕȜțȓȜȠ4
ȒȜ1ǽȜȝȞȜȏȡȗȖȕȚȓțȖȠȪȦȎȑțȎ-2ȖȝȜȟȚȜȠȞȖȥȠȜȝȞȜ
ȖȕȜȗȒȓȠȄȖȘșȩ²ȫȠȜȝȞȜȟȠȜȗȟȝȜȟȜȏȐȩȝȜșțȖȠȪțȓȟȘȜșȪȘȜ
ȞȎȕȑȞȡȝȝȡȘȜȚȎțȒȏȓȕțȓȜȏȣȜȒȖȚȜȟȠȖȚțȜȑȜȘȞȎȠțȜțȎȏȖ
ȞȎȠȪȜȒțȖȖȠȓȔȓȘȜȚȎțȒȩǰȑșȎȐȓȠȩȡȕțȎȓȦȪȖȜȒȞȡ
ȑȖȣȖțȟȠȞȡȘȤȖȭȣȡȝȞȎȐșȓțȖȭȝȜȠȜȘȜȚ

ĎĜČĥđęĔđģđĜđěČĤĖĔ
ǰȓȞțȓȚȟȭȘȝȞȜȑȞȎȚȚȓmydanceǿȠȞȜȘȖȟȝȜȟȜȒȓȞȔȎȠ
ȤȖȘșforȡȘȎȕȩȐȎȬȧȖȗȥȓȞȓȝȎȦȘȓȟȜȐȓȞȦȖȠȪȝȜȐȜȞȜȠȐȜ
ȘȞȡȑȟȐȜȓȗȜȟȖ

ǶǽȁǿȀȍȀǿȍȅdzǾdzǽǮȆǸǶǰǽǹȍǿ

81

mydance
ɑɟɪɟɩɚɲɤɚɤɪɭɬɢɬɫɹ
19. for i = 1, 4 do
20.
turtle.turnRight()
21. end

ǽȞȖțȎȝȖȟȎțȖȖȤȖȘșȜȐforȐȘȎȔȒȜȗȟȠȞȜȘȓȘȜȒȎȖȕ
ȘȜȠȜȞȜȑȜȟȜȟȠȜȖȠȏșȜȘȤȖȘșȎȜȏȩȥțȜȖȟȝȜșȪȕȡȓȠȟȭȜȠȟȠȡȝ
ȠȜȓȟȠȪȒȜȝȜșțȖȠȓșȪțȩȓȝȞȜȏȓșȩȐțȎȥȎșȓȟȠȞȜȘȖ ȀȎȘȖȓ
ȜȠȟȠȡȝȩȜȏșȓȑȥȎȬȠȝȜțȖȚȎțȖȓȘȎȘȖȓȖȚȓțțȜȟȠȞȜȘȖțȎ
ȣȜȒȭȠȟȭȐțȡȠȞȖȏșȜȘȜȐȜȟȜȏȓțțȜȓȟșȖȐțȡȠȞȖȜȒțȜȑȜȏșȜȘȎ
ȟȜȕȒȎȬȠȟȭȒȞȡȑȖȓ ȐȑșȎȐȓȚȩȟȒȓșȎȓȚȫȠȜ ȅȠȜȏȩȐȖȒȓȠȪ
ȑȒȓȤȖȘșțȎȥȖțȎȓȠȟȭȖȑȒȓȕȎȘȎțȥȖȐȎȓȠȟȭȘșȬȥȓȐȜȓȟșȜȐȜ
endȞȎȕȚȓȧȎȬȠțȎȠȜȚȔȓȡȞȜȐțȓȜȠȟȠȡȝȎȥȠȜȖȘșȬȥȓȐȜȓ
ȟșȜȐȜfor.
ǰȝȞȖȐȓȒȓțțȜȚȝȞȖȚȓȞȓȟȠȞȜȘȎȘȜȒȘȜȠȜȞȜȗȝȜȐȜȞȎ
ȥȖȐȎȓȠȥȓȞȓȝȎȦȘȡțȎȝȞȎȐȜȐȩȝȜșțȭȓȠȟȭȥȓȠȩȞȓȞȎȕȎȀȎ
ȘȖȚȜȏȞȎȕȜȚȥȓȞȓȝȎȦȘȎȞȎȕȐȜȞȎȥȖȐȎȓȠȟȭțȎȑȞȎȒȡȟȜȐ
ǻȜȓȟșȖȐȟȠȞȜȘȓȡȘȎȕȎȠȪȕțȎȥȓțȖȭi = 1, 8ȥȓȞȓȝȎȦȘȎ
ȟȜȐȓȞȦȖȠȒȐȎȝȜșțȩȣȜȏȜȞȜȠȎȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘4.4.ˋ̸̡̨̨̨̨̨̨̨̛̖̬̖̪̹̼̪̣̦̖̯̬̯͕̪̬̭̦̪̬̌̌̏́̔̏̌̍̌̏̌̏̌́̽̌̌̏
̨̭̖̥̬̏̽̌̚

ěĜħĒĚĖęČĘđĝĞđ
ǻȎȘȜțȓȤȐȟȠȞȜȘȎȣȖȥȓȞȓȝȎȦȘȎȟȜȐȓȞȦȖȠȝȞȩȔȜȘțȎ
ȚȓȟȠȓȠȜȓȟȠȪȝȜȒțȖȚȓȠȟȭȐȐȓȞȣȎȕȎȠȓȚȜȝȡȟȠȖȠȟȭ
mydance
23. turtle.up()
24. turtle.down()
25. print('Done.')

ȀȎȘȜȗȝȞȩȔȜȘȖȕȜȏȞȎȔȓțțȎȞȖȟǽȜȟșȓȒțȭȭȟȠȞȜȘȎ
ȐȩȐȜȒȖȠțȎȫȘȞȎțȟșȜȐȜDone.ǿȠȞȜȘȎȝȜȟșȓȒțȭȭțȖȔȓ
țȓȠȖȟȝȜșțȭȓȚȜȑȜȘȜȒȎȖȝȞȜȑȞȎȚȚȎȕȎȐȓȞȦȎȓȠȟȭ

82

DZǹǮǰǮ

ˀ̛̭͘4.5.ˋ̴̶̡̨̨̡̡̨̡̛̛̖̬̖̪̹̭̖̬̹̖̯̪̬̼̙͕̼̼̯̭̱̦̌̌̏̌̐̔̌̏̏̌̀́̚turtle.up()̛turtle.down()͘

ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"ęĚĎħĕĞČęđĢ

Попробуй создать для черепашки свои собственные танцевальные движения. Для этого ты можешь использовать функции перемещения и поворота, научить черепашку прыгать,
крутиться и танцевать в соответствии с твоей собственной
хореографической программой!

ěğčėĔĖČĢĔīĔēČďĜğēĖČěĜĚďĜČĘĘ
ĎĔęĞđĜęđĞđ
ǽȜȟșȓȠȜȑȜȘȎȘȠȩțȎȝȖȟȎșȝȞȜȑȞȎȚȚȡȒșȭȟȐȜȓȗȥȓȞȓ
ȝȎȦȘȖȠȩȚȜȔȓȦȪȝȜȒȓșȖȠȪȟȭȓȬȟȜȟȐȜȖȚȖȒȞȡȕȪȭȚȖ
ȅȠȜȏȩȕȎȑȞȡȔȎȠȪȟȐȜȖȝȞȜȑȞȎȚȚȩȐǶțȠȓȞțȓȠȠȩȚȜȔȓȦȪ
ȐȜȟȝȜșȪȕȜȐȎȠȪȟȭȟȎȗȠȜȚpastebin.comȑȒȓȝȜșȪȕȜȐȎȠȓșȖȜȏ
ȧȎȬȠȟȭȜțșȎȗțȖȜȏȚȓțȖȐȎȬȠȟȭȖȟȣȜȒțȩȚȖȘȜȒȎȚȖȝȞȜ
ȑȞȎȚȚȞȎȕȚȓȧȎȭȖȣțȎȟȎȗȠȓȀȩȠȜȔȓȚȜȔȓȦȪȕȎȑȞȡȔȎȠȪ
ȘȜȒȩȟȐȜȖȣȝȞȜȑȞȎȚȚțȎȟȎȗȠpastebin.comȖȟȝȜșȪȕȡȭ
ȝȞȜȑȞȎȚȚȡpastebinȣȞȎțȭȧȡȬȟȭȐȝȎȚȭȠȖȥȓȞȓȝȎȦȘȖ
ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȝȜȘȎȕȎțțȡȬțȖ
ȔȓȘȜȚȎțȒȡȥȠȜȏȩȕȎȑȞȡȕȖȠȪȝȞȜȑȞȎȚȚȡmydancețȎȟȎȗȠ
pastebin.com:
> pastebin put mydance
Connecting to pastebin.com... Success.
Uploaded as
https://pastebin.com/BLCJbpQJ

ǶǽȁǿȀȍȀǿȍȅdzǾdzǽǮȆǸǶǰǽǹȍǿ

83

Run «pastebin get BLCJbpQJ» to download
anywhere

ǽȜȟșȓȕȎȑȞȡȕȘȖȝȞȜȑȞȎȚȚȩȒșȭțȓȓȏȡȒȓȠȟȑȓțȓȞȖȞȜȐȎț
ȡțȖȘȎșȪțȩȗȐȓȏȎȒȞȓȟǸȜȑȒȎȭȕȎȑȞȡȔȎșȟȐȜȬȝȞȜȑȞȎȚȚȡ
ȟȝȜȚȜȧȪȬȘȜȚȎțȒȩpastebinȟȟȎȗȠȎȝȞȖȦșȜȟȜȜȏȧȓțȖȓ
ȥȠȜȝȞȜȑȞȎȚȚȎmydanceȏȩșȎȡȟȝȓȦțȜȕȎȑȞȡȔȓțȎȝȜȎȒȞȓ
ȟȡhttps://pastebin.com/BLCJbpQJ/ǽȜȟșȓȫȠȜȑȜșȬȏȜȗ
ȔȓșȎȬȧȖȗȚȜȔȓȠȝȞȜȟȚȜȠȞȓȠȪȚȜȬȝȞȜȑȞȎȚȚȡȝȓȞȓȗȒȭ
ȝȜȫȠȜȚȡȎȒȞȓȟȡȐȟȐȜȓȚȏȞȎȡȕȓȞȓȀȩȠȜȔȓȚȜȔȓȦȪȕȎȑȞȡ
ȕȖȠȪȚȜȬȝȞȜȑȞȎȚȚȡȐȟȐȜȬȥȓȞȓȝȎȦȘȡȐȐȓȒȭȐȜȏȜșȜȥȘȓ
ȘȜȚȎțȒțȜȗȟȠȞȜȘȖȟșȓȒȡȬȧȡȬȘȜȚȎțȒȡ
> pastebin get BLCJbpQJ mydance
Connecting to pastebin.com... Success.
Downloaded as mydance

ǿȠȞȜȘȎget BLCJbpQJ mydanceȟȜȜȏȧȎȓȠȟȎȗȠȡpastebin.comȥȠȜȠȩȣȜȥȓȦȪȝȜșȡȥȖȠȪȝȞȜȑȞȎȚȚȡȟȜȣȞȎțȓțțȡȬ
ȝȜȎȒȞȓȟȡhttpspastebin.com/BLCJbpQJ/ȖȟȜȣȞȎțȖȠȪ
ȓȓȐȝȎȚȭȠȖȥȓȞȓȝȎȦȘȖȝȜȒȖȚȓțȓȚmydanceȀȓȝȓȞȪȡȠȓȏȭ
ȓȟȠȪȟȝȜȟȜȏȕȎȑȞȡȔȎȠȪȢȎȗșȩȥȠȜȏȩȒȓșȖȠȪȟȭȖȚȖȟȒȞȡȑȖ
ȚȖȝȞȜȑȞȎȚȚȖȟȠȎȚȖ
dzȟșȖȘȜȚȎțȒȎpastebinȝȞȖȐȩȝȜșțȓțȖȖȜȠȜȏȞȎȔȎȓȠ
ȟȜȜȏȧȓțȖȓConnecting to pastebin.com... Failed.ȝȞȜ
ȐȓȞȪȝȜȒȘșȬȥȓțȖȓȘǶțȠȓȞțȓȠȡȖȘȜȞȞȓȘȠțȜȟȠȪȡȘȎȕȎțțȜȑȜ
ȎȞȑȡȚȓțȠȎȘȜȚȎțȒȩ ȕțȎȥȓțȖȭBLCJbpQJȖșȖșȬȏȜȑȜȒȞȡȑȜ
ȑȜȎȒȞȓȟȎțȎȕțȎȥȓțțȜȑȜȟȎȗȠȜȚ dzȟșȖȘȜȚȎțȒȎpastebin
ȐȩȐȜȒȖȠȟȜȜȏȧȓțȖȓFile already existsȠȓȢȎȗșȡȔȓ
ȟȡȧȓȟȠȐȡȓȠȠȜȟȡȧȓȟȠȐȡȬȧȡȬȝȞȜȑȞȎȚȚȡmydanceȟțȎȥȎ
șȎȟșȓȒȡȓȠȡȒȎșȖȠȪǸȎȘ"ȅȖȠȎȗȒȎșȪȦȓ

ğĐČėđęĔđĠČĕėĚĎĔēěČĘīĞĔģđĜđěČĤĖĔ
ǸȜȑȒȎȠȩȕȎȝȡȟȘȎȓȦȪȝȞȜȑȞȎȚȚȡpastebinȠȩȟȜȜȏȧȎȓȦȪ
ȓȗȥȠȜȣȜȥȓȦȪȕȎȑȞȡȕȖȠȪȢȎȗșȖȟȜȣȞȎțȖȠȪȓȑȜȝȜȒȖȚȓțȓȚ
mydanceȐȝȎȚȭȠȖȥȓȞȓȝȎȦȘȖǻȜȓȟșȖȝȞȜȑȞȎȚȚȎȟȠȎȘȖȚ
ȖȚȓțȓȚȡȔȓȟȡȧȓȟȠȐȡȓȠ țȎȝȞȖȚȓȞȠȎȘȜȠȜȞȡȬȠȩȟȜȕȒȎșȟ
ȝȜȚȜȧȪȬȘȜȚȎțȒȩedit mydance țȡȔțȜȐȩȏȞȎȠȪȒȞȡȑȜȓ
ȖȚȭȖșȖȡȒȎșȖȠȪȟȡȧȓȟȠȐȡȬȧȡȬȝȞȜȑȞȎȚȚȡmydance.

84

DZǹǮǰǮ

DzșȭȡȒȎșȓțȖȭȝȞȜȑȞȎȚȚȩȖȕȝȎȚȭȠȖȥȓȞȓȝȎȦȘȖȐȐȓȒȖ
ȘȜȚȎțȒȡdeleteȎȕȎȠȓȚȖȚȭȡȒȎșȭȓȚȜȗȝȞȜȑȞȎȚȚȩǻȎ
ȝȞȖȚȓȞȠȎȘ
> delete mydance

ȋȠȎȘȜȚȎțȒȎȡȒȎșȖȠȝȞȜȑȞȎȚȚȡmydanceȀȓȝȓȞȪȥȠȜȏȩ
ȕȎȑȞȡȕȖȠȪȝȞȜȑȞȎȚȚȡȖȕǶțȠȓȞțȓȠȎȠȩȟțȜȐȎȚȜȔȓȦȪȐȩ
ȝȜșțȖȠȪȘȜȚȎțȒȡpastebin get BLCJbpQJ mydance.

ĚďĜČęĔģđęĔīęČĝČĕĞđ8); lua
Interactive Lua prompt.
Call exit() to exit.

ǵȎȠȓȚȥȠȜȏȩȫȘȖȝȖȞȜȐȎȠȪȥȓȞȓȝȎȦȘȡȒȜȏȎȐșȓțțȩȚȖț
ȟȠȞȡȚȓțȠȜȚȐȩȝȜșțȖȟșȓȒȡȬȧȡȬȘȜȚȎțȒȡ
lua> turtle.equipLeft()

106

DZǹǮǰǮ

ȅȓȞȓȝȎȦȘȡȚȜȔțȜȜȟțȎȟȠȖȠȪȟȞȎȕȡȒȐȡȚȭȖțȟȠȞȡȚȓț
ȠȎȚȖȜȒțȖȚȟșȓȐȎȎȒȞȡȑȖȚȟȝȞȎȐȎdzȟșȖȔȓțȡȔțȜ©ȞȎ
ȕȜȞȡȔȖȠȪªȥȓȞȓȝȎȦȘȡȐȩȕȜȐȖȢȡțȘȤȖȬturtle.eq uipLeft()ȖșȖturtle.equipRight()țȖȥȓȑȜțȓȒȜȏȎȐșȭȭ
ȐȠȓȘȡȧȡȬȭȥȓȗȘȡǶțȟȠȞȡȚȓțȠȏȡȒȓȠȡȏȞȎțȖȝȜȚȓȧȓțȐ
ȖțȐȓțȠȎȞȪ
ȅȓȞȓȝȎȦȘȡȚȜȔțȜȜȟțȎȟȠȖȠȪșȬȏȩȚȖȎșȚȎȕțȩȚȖȖț
ȟȠȞȡȚȓțȠȎȚȖțȜȎșȚȎȕțȎȭȘȖȞȘȎȡțȖȐȓȞȟȎșȪțȎǮșȚȎȕțȎȭ
șȜȝȎȠȎȝȜȕȐȜșȭȓȠȐȩȘȎȝȩȐȎȠȪȕȓȚșȭțȩȓȏșȜȘȖȎȎșȚȎȕ
țȩȗȠȜȝȜȞ²ȐȩȞȡȏȎȠȪȒȞȓȐȓȟȖțȡțȜțȓȜțȖțȓȚȜȑȡȠȒȜȏȩ
ȐȎȠȪȘȎȚȓțȪȖșȖȞȡȒȡǮșȚȎȕțȎȭȘȖȞȘȎȝȜȕȐȜșȭȓȠȒȜȏȩȐȎȠȪ
ȐȟȓȠȖȝȩȏșȜȘȜȐȝȜȫȠȜȚȡȚȩȖȏȡȒȓȚȓȓȖȟȝȜșȪȕȜȐȎȠȪȒșȭ
ȐȟȓȣȥȓȞȓȝȎȦȓȘȐȫȠȜȗȘțȖȑȓ
ǰȜȜȞȡȔȓțțȎȭȘȖȞȘȜȗȥȓȞȓȝȎȦȘȎȚȜȔȓȠȐȩȕȐȎȠȪȢȡțȘ
ȤȖȬturtle.dig()ȟȝȜȚȜȧȪȬȘȜȠȜȞȜȗȜțȎȚȜȔȓȠȒȜȏȩ
ȐȎȠȪȏșȜȘȖȖȒȞȓȐȓȟȖțȡȋȠȜȚȩȖȖȕȡȥȖȚȐȟșȓȒȡȬȧȓȚ
ȞȎȕȒȓșȓ

ČėďĚĜĔĞĘĜğčĖĔĐđĜđĎČ
ǽȞȓȔȒȓȥȓȚȝȖȟȎȠȪȘȜȒȒȎȐȎȗȠȧȎȠȓșȪțȜȝȞȜȒȡȚȎȓȚ
ȥȠȜțȡȔțȜȒȓșȎȠȪȥȓȞȓȝȎȦȘȓșȓȟȜȞȡȏȡǽȞȓȒȐȎȞȖȠȓșȪțȜȓ
ȝșȎțȖȞȜȐȎțȖȓȝȜȚȜȔȓȠȐȩȭȐȖȠȪȜȦȖȏȘȖȒȜȠȜȑȜȘȎȘȝȞȜ
ȑȞȎȚȚȎȏȡȒȓȠțȎȝȖȟȎțȎȎțȓȝȜȟșȓǸȎȘȑȜȐȜȞȭȠȜȝȩȠțȩȓ
ȝșȜȠțȖȘȖ©ȟȓȚȪȞȎȕȜȠȚȓȞȪȜȒȖțȜȠȞȓȔȪªǽȞȜȞȎȏȜȠȎȓȚ
ȎșȑȜȞȖȠȚȞȎȏȜȠȩȥȓȞȓȝȎȦȘȖșȓȟȜȞȡȏȎǮșȑȜȞȖȠȚ²ȫȠȜȝȜ
ȟșȓȒȜȐȎȠȓșȪțȜȟȠȪȒȓȗȟȠȐȖȗȘȜȠȜȞȩȓțȎȒȜȐȩȝȜșțȖȠȪȘȜȚ
ȝȪȬȠȓȞȡȒșȭȞȓȦȓțȖȭȝȜȟȠȎȐșȓțțȜȗȕȎȒȎȥȖ
ȅȠȜȏȩȟȞȡȏȖȠȪȒȓȞȓȐȜȚȩȝȜȚȓȧȎȓȚȥȓȞȓȝȎȦȘȡȡȓȑȜȜȟ
țȜȐȎțȖȭȞȡȏȖȚȒȐȖȑȎȓȚȟȭȐȝȓȞȓȒȞȡȏȖȚțȎȒȥȓȞȓȝȎȦȘȜȗ
ȝȜȒțȖȚȎȓȚȟȭȐȐȓȞȣȎȕȎȠȓȚȝȜȐȠȜȞȭȓȚȝȜȟșȓȒțȖȓȒȐȎȦȎȑȎ
ȒșȭȐȟȓȑȜȒȓȞȓȐȎǸȜȑȒȎȥȓȞȓȝȎȦȘȎȝȜșțȜȟȠȪȬȐȩȞȡȏȖȠȒȓ
ȞȓȐȜȜțȎȐȓȞțȓȠȟȭțȎȕȓȚșȬȥȠȜȏȩȓȓȚȜȔțȜȏȩșȜȕȎȏȞȎȠȪ
ǻȎȞȖȟ²ȝȜȘȎȕȎțȐȓȟȪȝȞȜȤȓȟȟ
DzșȭȝȓȞȓȚȓȧȓțȖȭȥȓȞȓȝȎȦȘȖȚȩȏȡȒȓȚȖȟȝȜșȪȕȜȐȎȠȪ
ȢȡțȘȤȖȖturtle.forward()Ȗturtle.up()ǮȥȠȜȏȩȕȎȟȠȎ
ȐȖȠȪȥȓȞȓȝȎȦȘȡȞȡȏȖȠȪ ȠȜȓȟȠȪȒȜȏȩȐȎȠȪȒȞȓȐȓȟȖțȡ Ȗȟ
ȝȜșȪȕȡȓȚȢȡțȘȤȖȬturtle.dig()ȘȜȠȜȞȎȭȏȡȒȓȠȒȜȏȩȐȎȠȪ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶǹdzǿǼǾȁǯǮ

107

ˀ̛̭͘ϲ͘Ϯ͘ˋ̡̖̬̖̪̹̌̌
̨̡̪̖̬̦̱̯̖̬̖̱̏̌̔̏
̸̡̛̛̦̦̖̯̬̱̱̌̌̍̏
̸̨̛̛̦̙̦̖̜̖̭̯̐̌

ˀ̛̭͘ϲ͘ϯ͘ˋ̡̖̬̖̪̹̼̌̌̏Ͳ
̨̡̛̛̬̱̖̯̦̙̦̜̣̍̌̍
̛̖̬̖͕̯̖̥̙̖̯̔̏̌̌̌̔̏̚Ͳ
̸̡̨̭̪̖̬̖͕̯͕̯̼́̏̔̌̍
̸̨̨̨̛̱̯̯̭̪̖̬̖̥̽́̔̔̏

ˀ̛̭͘ϲ͘ϱ͘ˋ̡̖̬̖̪̹̌̌
̨̨̪̬̣̙̖̯̼̬̱̯̔̌̏̍̌̽
̨̡̨̡̛̖̬̖̦̦̼̖̣͕̪̔̏́̍̌
̨̦̦̖̜̦̖̭̯̦̖̯̭̌̔̌́
̛̬̖̖̭̦̼̔̏

ˀ̛̭͘ϲ͘ϰ͘ˋ̡̖̬̖̪̹̼̌̌̏Ͳ
̨̡̡̨̨̬̱̖̯̣͕̯̬̼̜̍̌̍
̵̨̛̦̯̭̦̦̖̜͕̌̔́̌̔̌
̵̛̯̖̥̙̖̯̭̖̬̌̔̏́̏̏̚
̶̨̨̛̛̦̦̱̪̌̔̀̚

ˀ̛̭͘ϲ͘ϲ͘ˋ̡̨̖̬̖̪̹̌̌̏̚Ͳ
̬̺̖̯̭̦̖̥̣͕̏̌̌́̌̀̚
̸̨̨̡̨̛̯̼̬̥̖̖̍̐̐̌̚Ͳ
̬̯̍̌̽͘ʸ̨̛̭̯̪̬̪̱̯̽́̌̔
̸̡̨̨̨̖̬̖̦̖̯̬̖̬̖̥̏́̚

ȏșȜȘȞȎȟȝȜșȜȔȓțțȩȗȝȓȞȓȒțȓȗȎȠȎȘȔȓȢȡțȘȤȖȬturtle.
digUp()ȘȜȠȜȞȎȭȒȜȏȩȐȎȓȠȏșȜȘțȎȒȥȓȞȓȝȎȦȘȜȗ
DzȓȞȓȐȪȭȐ0LQHFUDIWȒȜȟȠȖȑȎȬȠȞȎȕțȜȗȐȩȟȜȠȩȝȜȫȠȜȚȡ
ȣȜȠȓșȜȟȪȏȩțȎȝȖȟȎȠȪȝȞȜȑȞȎȚȚȡȐȘȜȠȜȞȜȗțȓȏȡȒȓȠȔȓȟȠ
ȘȜȘȜȒȖȞȜȐȎȠȪȟȭȐȩȟȜȠȎȒȓȞȓȐȎǴȓȟȠȘȜȓȘȜȒȖȞȜȐȎțȖȓȜȕ
țȎȥȎȓȠȝȞȜȑȞȎȚȚȖȞȜȐȎțȖȓȜȑȞȎțȖȥȓțțȜȑȜȢȖȘȟȖȞȜȐȎț
țȜȑȜȞȓȦȓțȖȭǽȞȜȑȞȎȚȚȩȟȔȓȟȠȘȖȚȘȜȒȖȞȜȐȎțȖȓȚțȓ
ȚȜȑȡȠȜȏȞȎȏȎȠȩȐȎȠȪȞȎȕșȖȥțȩȓȟȖȠȡȎȤȖȖȠȎȘȘȎȘȒșȭ

108

DZǹǮǰǮ

ȫȠȜȑȜȠȞȓȏȡȓȠȟȭȝȓȞȓȝȖȟȎȠȪȘȜȒǻȎȝȞȖȚȓȞȚȜȔțȜțȎȝȖ
ȟȎȠȪȠȎȘȜȗȘȜȒ
turtle.digUp()
turtle.up()
turtle.digUp()
turtle.up()
turtle.digUp()
turtle.up()
turtle.digUp()

ȋȠȎȝȞȜȑȞȎȚȚȎȝȞȜȟȠȎȖȝȜțȭȠțȎțȜȟțȓȗȥȓȞȓȝȎȦȘȎ
ȚȜȔȓȠȞȡȏȖȠȪȠȜșȪȘȜȠȓȒȓȞȓȐȪȭȐȩȟȜȠȎȘȜȠȜȞȩȣȟȜȟȠȎȐșȭ
ȓȠȞȜȐțȜȥȓȠȩȞȓȏșȜȘȎdzȟșȖȔȓȠȩȣȜȥȓȦȪȥȠȜȏȩȥȓȞȓȝȎȦ
ȘȎȐȩȞȡȏȎșȎȒȓȞȓȐȪȭȞȎȕțȩȣȞȎȕȚȓȞȜȐȫȠȜȠȒȎșȓȘȜțȓȖȒȓ
ȎșȪțȩȗȘȜȒȝȞȖȒȓȠȟȭȝȓȞȓȝȖȟȎȠȪ
ǻȜȟțȎȥȎșȎȒȎȐȎȗȞȎȕȞȎȏȜȠȎȓȚȎșȑȜȞȖȠȚȒșȭȐȩȞȡȏȘȖ
ȒȓȞȓȐȪȓȐșȬȏȜȑȜȞȎȕȚȓȞȎǸȝȞȖȚȓȞȡȎșȑȜȞȖȠȚȚȜȔȓȠȟȜ
ȟȠȜȭȠȪȖȕȟșȓȒȡȬȧȖȣȦȎȑȜȐ
1. ȅȓȞȓȝȎȦȘȎȝȜȐȓȞțȡȠȎȭȐțȎȝȞȎȐșȓțȖȖȒȓȞȓȐȎȝȜȚȓ
ȧȎȓȠȟȭȡȓȑȜȜȟțȜȐȎțȖȭ
2. ȅȓȞȓȝȎȦȘȎȐȩȞȡȏȎȓȠțȖȔțȖȗȏșȜȘȒȓȞȓȐȎȞȎȟȝȜșȜ
ȔȓțțȩȗȝȞȭȚȜȝȓȞȓȒțȓȗ
3. ȅȓȞȓȝȎȦȘȎȒȐȖȔȓȠȟȭȝȜȒȒȓȞȓȐȜ
4. ǰȩȞȡȏȎȓȠȏșȜȘȞȎȟȝȜșȜȔȓțțȩȗțȎȒțȓȗȖȝȜȒțȖȚȎ
ȓȠȟȭȐȩȦȓȒȜȠȓȣȝȜȞȝȜȘȎțȎȒțȓȗțȓȜȟȠȎțȓȠȟȭȏșȜȘȜȐ
ȒȞȓȐȓȟȖțȩ
5. DzȐȖȔȓȠȟȭȐțȖȕȝȜȘȎțȓȐȓȞțȓȠȟȭțȎȕȓȚșȬ
6. ǿȠȜȝ
ȋȠȜȠȎșȑȜȞȖȠȚȝȜȕȐȜșȖȠȥȓȞȓȝȎȦȘȓȞȡȏȖȠȪȒȓȞȓȐȪȭșȬ
ȏȜȗȐȩȟȜȠȩdzȑȜȠȩȞȓȎșȖȕȡȓȦȪȐȝȞȜȑȞȎȚȚȓchoptree.

ĖĚĐěĜĚďĜČĘĘħ+078>ɉɪɨɝɪɚɦɦɚɜɵɪɭɛɤɢɞɟɪɟɜɶɟɜɗɥɚɋɜɟɣɝɚɪɬɚ
2. Chops down the tree in front of turtle.]]
3.
4. if not turtle.detect() then
HUURU &RXOGQRW¿QGWUHH
6. end
7.
8. print('Chopping tree...')
9.
LIQRWWXUWOHGLJ WKHQɜɵɪɭɛɤɚɨɫɧɨɜɚɧɢɹɞɟɪɟɜɚ
11.
error('Turtle needs a digging tool!')
12. end
13.
WXUWOHIRUZDUG ɩɟɪɟɦɟɳɟɧɢɟɩɨɞɞɟɪɟɜɨ
15. while turtle.compareUp() do
ɜɵɪɭɛɤɚɩɨɤɚɨɛɧɚɪɭɠɢɜɚɟɬɫɹɞɪɟɜɟɫɢɧɚ
17.
turtle.digUp()
18.
turtle.up()
19. end
20.
ɜɨɡɜɪɚɳɟɧɢɟɧɚɡɟɦɥɸ
22. while not turtle.detectDown() do
23.
turtle.down()
24. end
25.
26. print('Done chopping tree.')

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȝȜȟșȓȐȐȜȒȎȐȟȓȣȖțȟȠȞȡȘȤȖȗǻȎ
ȔȎȐȘșȎȐȖȦȡCtrlȜȠȘȞȜȗȚȓțȬǰȩȏȓȞȖȝȡțȘȠ[Save]Ȗ
țȎȔȚȖȘșȎȐȖȦȡEnterǵȎȠȓȚȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎțȎ
ȔȎȐȘșȎȐȖȦȡCtrlȐȩȏȞȎȐȝȡțȘȠ[Exit]ȖțȎȔȎȐȘșȎȐȖ
ȦȡEnter.

110

DZǹǮǰǮ

ēČěğĝĖěĜĚďĜČĘĘħ+078>ɉɪɨɝɪɚɦɦɚɜɵɪɭɛɤɢɞɟɪɟɜɶɟɜɗɥɚɋɜɟɣɝɚɪɬɚ
2. Chops down the tree in front of turtle.]]
3.
4. if not turtle.detect() then

ȂȡțȘȤȖȭturtle.detect()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrue
ȓȟșȖȘȎȘȜȗșȖȏȜȏșȜȘțȎȣȜȒȖȠȟȭȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗȖșȖ
falseȓȟșȖȝȓȞȓȒțȓȗțȖȥȓȑȜțȓȠȂȡțȘȤȖȭȠȎȘȔȓȐȜȕȐȞȎ
ȧȎȓȠȕțȎȥȓțȖȓfalseȓȟșȖȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗȐȜȒȎȖșȖșȎ
ȐȎȝȜȠȜȚȡȥȠȜȥȓȞȓȝȎȦȘȎȚȜȔȓȠȝȓȞȓȚȓȧȎȠȪȟȭȝȜȫȠȖȚȠȖ
ȝȎȚȏșȜȘȜȐ
ǽȜȒȜȏțȜȐȩȕȜȐȎȚturtle.digUp()Ȗturtle.digDown()
ȢȡțȘȤȖȖturtle.detectUp()Ȗturtle.detectDown()Ȝȏ
țȎȞȡȔȖȐȎȬȠȏșȜȘȖȐȩȦȓȖțȖȔȓȥȓȞȓȝȎȦȘȖȟȜȜȠȐȓȠȟȠȐȓț
țȜȃȜȠȭȢȡțȘȤȖȭturtle.detect()ȚȜȔȓȠȜȝȞȓȒȓșȖȠȪțȎ
ȣȜȒȖȠȟȭșȖȠȐȓȞȒȩȗȏșȜȘȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗȜțȎțȓȚȜȔȓȠ
ȡȕțȎȠȪȘȎȘȜȗȖȚȓțțȜȫȠȜȏșȜȘǽȞȜȑȞȎȚȚȓȝȞȖȣȜȒȖȠȟȭȝȜ
șȎȑȎȠȪȟȭțȎȠȜȥȠȜȝȜșȪȕȜȐȎȠȓșȪȝȜȚȓȟȠȖȠȥȓȞȓȝȎȦȘȡȝȓ
ȞȓȒȒȓȞȓȐȜȚ
ǽȓȞȓȒȢȡțȘȤȖȓȗturtle.detect()ȐȟȠȞȜȘȓțȎȣȜȒȖȠȟȭ
șȜȑȖȥȓȟȘȖȗȜȝȓȞȎȠȜȞnotȘȜȠȜȞȩȗȚȩȞȎȟȟȚȜȠȞȖȚȐȟșȓȒȡ
ȬȧȓȚȞȎȕȒȓșȓ

ėĚďĔģđĝĖĔĕĚěđĜČĞĚĜ67<
ǼȝȓȞȎȠȜȞnotȝȜȒȒȓȞȔȖȐȎȓȠȠȜșȪȘȜșȜȑȖȥȓȟȘȖȓȐȩȞȎȔȓ
țȖȭȐȜȕȐȞȎȧȎȭȕțȎȥȓțȖȓȝȞȜȠȖȐȜȝȜșȜȔțȜȓȎȞȑȡȚȓțȠȡȀȎ
ȘȖȚȜȏȞȎȕȜȚQRWWUXH²ȫȠȜIDOVHȎQRWIDOVH²ȫȠȜWUXHǰȜȏȜ
șȜȥȘȓ/XDȐȐȓȒȖȟșȓȒȡȬȧȖȓȘȜȚȎțȒȩ

112

DZǹǮǰǮ

lua> not true
false
lua> not false
true
lua> myAge = 8
lua> not (myAge > 5)
false

ǹȜȑȖȥȓȟȘȖȗȜȝȓȞȎȠȜȞnotȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪțȓȠȜșȪ
ȘȜȐȘȜțȟȠȞȡȘȤȖȭȣȠȖȝȎnot falsețȜȖȐșȬȏȩȣȒȞȡȑȖȣ
șȜȑȖȥȓȟȘȖȣȐȩȞȎȔȓțȖȭȣțȎȝȞȖȚȓȞnot (myAge > 5)ȋȠȜ
ȞȎȏȜȠȎȓȠȟșȓȒȡȬȧȖȚȜȏȞȎȕȜȚ
not (myAge > 5)
not (8 > 5)
not true
false

ǰȟȠȞȜȘȓȝȞȜȑȞȎȚȚȩchoptreeȜȝȓȞȎȠȜȞnotȖȕȚȓțȭ
ȓȠșȜȑȖȥȓȟȘȜȓȕțȎȥȓțȖȓȐȜȕȐȞȎȧȎȓȚȜȓȢȡțȘȤȖȓȗturtle.
detect()țȎȝȞȜȠȖȐȜȝȜșȜȔțȜȓdzȟșȖȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗ
țȓȠȏșȜȘȎȢȡțȘȤȖȭturtle.detect()ȐȓȞțȓȠfalseȎȜȝȓ
ȞȎȠȜȞnotȜȏȞȎȠȖȠȫȠȜȕțȎȥȓțȖȓȐtrueǿȠȞȜȘȡif not
turtle.detect() thenȚȜȔțȜȝȞȜȥȖȠȎȠȪȘȎȘ©ȓȟșȖȥȓȞȓ
ȝȎȦȘȎțȓȜȏțȎȞȡȔȖȐȎȓȠȏșȜȘȜțȎȐȩȝȜșțȭȓȠȟșȓȒȡȬȧȖȗ
ȏșȜȘȘȜȒȎªdzȟșȖȘȎȘȜȗșȖȏȜȏșȜȘȜȏțȎȞȡȔȓțȝȓȞȓȒȥȓȞȓ
ȝȎȦȘȜȗȐȩȝȜșțȭȓȠȟȭȏșȜȘȘȜȒȎȘȜȠȜȞȩȗȟșȓȒȡȓȠȕȎȖț
ȟȠȞȡȘȤȖȓȗif.
ǿȡȧȓȟȠȐȡȓȠȓȧȓȒȐȎșȜȑȖȥȓȟȘȖȣȜȝȓȞȎȠȜȞȎandȖorǺȩ
țȓȏȡȒȓȚȖȟȝȜșȪȕȜȐȎȠȪȖȣȐȝȞȜȑȞȎȚȚȓchoptreețȜȞȎȟ
ȟȚȜȠȞȖȚȘȎȘȜțȖȞȎȏȜȠȎȬȠȝȜȟȘȜșȪȘȡȜțȖȝȞȖȑȜȒȭȠȟȭȐ
ȒȞȡȑȖȣȝȞȜȑȞȎȚȚȎȣ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶǹdzǿǼǾȁǯǮ

113

ėĚďĔģđĝĖĔĕĚěđĜČĞĚĜ)6,
ǹȜȑȖȥȓȟȘȖȗ ȜȝȓȞȎȠȜȞandȜȤȓțȖȐȎȓȠȒȐȎșȜȑȖȥȓȟȘȖȣȕțȎȥȓ
țȖȭȖȐȜȕȐȞȎȧȎȓȠȞȓȕȡșȪȠȎȠtrueȓȟșȖȜțȖȜȏȎȖȟȠȖțțȩ
(true dzȟșȖȣȜȠȭȏȩȜȒțȜȖȕțȖȣșȜȔțȜ false ȠȜȖȜȝȓȞȎ
ȠȜȞȐȓȞțȓȠȕțȎȥȓțȖȓfalseǰȜȏȜșȜȥȘȓ/XDȐȐȓȒȖȟșȓȒȡȬ
ȧȖȓȖțȟȠȞȡȘȤȖȖ
lua> true and true
true
lua> true and false
false
lua> false and true
false
lua> false and false
false

ǽȜȞȭȒȜȘȞȎȟȝȜșȜȔȓțȖȭȜȤȓțȖȐȎȓȚȩȣȕțȎȥȓțȖȗțȓȐșȖȭ
ȓȠțȎȜȤȓțȘȡȐȩȞȎȔȓțȖȭȐȤȓșȜȚ
ȋȠȜȠȜȝȓȞȎȠȜȞȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪȖȐȟșȜȔțȩȣȐȩȞȎ
ȔȓțȖȭȣțȎȝȞȖȚȓȞȠȎȘ
lua> 4 < 5 and 5 < 6
true
lua> myName = 'Al'
lua> theirName = 'Alice'
lua> myName == 'Al' and theirName == 'Bob'
false

ǰȩȞȎȔȓțȖȓ4 < 5 and 5 < 6ȜȤȓțȖȐȎȓȠȟȭȟșȓȒȡȬȧȖȚ
ȜȏȞȎȕȜȚ
4 < 5 and 5 < 6
true and 5 < 6
true and true
true

114

DZǹǮǰǮ

ǽȜȟȘȜșȪȘȡȟȜȏȓȖȣȟȠȜȞȜțȜȝȓȞȎȠȜȞȎandȐȩȞȎȔȓțȖȭȖȟ
ȠȖțțȩȠȜȖȜȝȓȞȎȠȜȞȐȓȞțȓȠȕțȎȥȓțȖȓtrue.
ǻȜȐȟȠȞȜȘȓmyName == 'Al' and theirName == 'Bob'
ȐȩȞȎȔȓțȖȭȟȜȏȓȖȣȟȠȜȞȜțȜȝȓȞȎȠȜȞȎțȓȖȟȠȖțțȩ
myName

== 'Al' and theirName == 'Bob'

'Al' == 'Al' and theirName == 'Bob'

true and theirName == 'Bob'

true and 'Alice' == 'Bob'
true and false

false

ėĚďĔģđĝĖĔĕĚěđĜČĞĚĜ7:
ǹȜȑȖȥȓȟȘȖȗ ȜȝȓȞȎȠȜȞorȜȤȓțȖȐȎȓȠȒȐȎșȜȑȖȥȓȟȘȖȣȕțȎȥȓ
țȖȭȖȐȜȕȐȞȎȧȎȓȠȞȓȕȡșȪȠȎȠtrueȓȟșȖȜȒțȜȖȕțȖȣȖȟȠȖț
țȜdzȟșȖȜȏȎȕțȎȥȓțȖȭșȜȔțȩ false ȐȟȓȐȩȞȎȔȓțȖȓȝȞȖ
țȖȚȎȓȠȕțȎȥȓțȖȓfalseǰȐȓȒȖȐȜȏȜșȜȥȘȓ/XDȟșȓȒȡȬȧȖȓ
ȖțȟȠȞȡȘȤȖȖ
lua> true or true
true
lua> true or false
true
lua> false or true
true
lua> false or false
false

ǰȜȠșȖȥȖȓȜȠȜȝȓȞȎȠȜȞȎandȜȝȓȞȎȠȜȞorȐȓȞțȡșȕțȎȥȓ
țȖȓfalseȠȜșȪȘȜȐȝȜȟșȓȒțȓȚȟșȡȥȎȓ
ȋȠȜȠȜȝȓȞȎȠȜȞȠȎȘȔȓȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪȐȟșȜȔțȩȣȐȩ
ȞȎȔȓțȖȭȣțȎȝȞȖȚȓȞȠȎȘ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶǹdzǿǼǾȁǯǮ

115

lua> 10 > 5 or 'Hello' == 'Hello'
true
lua> myName = 'Al'
lua> myAge = 8
lua> myName == 'Zophie' or myAge < 10
true
lua> myName == 'Zophie' or myAge ~= 8
false

ǰȩȞȎȔȓțȖȓmyName == 'Zophie' or myAge < 10ȜȤȓ
țȖȐȎȓȠȟȭȟșȓȒȡȬȧȖȚȜȏȞȎȕȜȚ
myName == 'Zophie' or myAge < 10

'Al' == 'Zophie' or myAge < 10

false or myAge < 10

false or 8 < 10
false or true

true

ǰȞȎȟȟȚȎȠȞȖȐȎȓȚȜȗȟȠȞȜȘȓȜȒțȎȥȎȟȠȪșȜȔțȎȎȒȞȡȑȎȭȖȟ
ȠȖțțȎȖȐȩȞȎȔȓțȖȓȐȤȓșȜȚȜȤȓțȖȐȎȓȠȟȭȘȎȘȖȟȠȖțțȜȓǻȜ
myName == 'Zophie' or myAge ~= 8 ȐȟȠȞȜȘȓmyName == 'Zophie' or myAge ~= 8
șȜȔțȩȜȏȓȥȎȟȠȖȐȩȞȎȔȓ
'Al' == 'Zophie' or myAge ~= 8
țȖȭ
false or myAge ~= 8
false or 8 ~= 8
false or false

false

116

DZǹǮǰǮ

ǽȜ ȫ Ƞ ȜȚ ȡ Ȑ ȟ ȭ ȟ Ƞ Ȟ ȜȘ Ȏ
Ȑ Ȝ ȕ ȐȞ Ȏ ȧ Ȏȓ Ƞ  Ȟ ȓ ȕ ȡș ȪȠ ȎȠ
false.
ǸȎȘȜȝȓȞȎȠȜȞandȠȎȘ
ȖȜȝȓȞȎȠȜȞorȝȞȖȚȓțȖ
Ț ȩ Ȑ Ȑȩ ȞȎ Ȕ ȓț Ȗ ȭ ȣ  Ȗȟ
ȝȜșȪȕȡȬȧȖȣȞȎȕțȩȓȠȖ
ȝȩȒȎțțȩȣ

ǹȜȑȖȥȓȟȘȖȓȜȝȓȞȎȠȜȞȩandorȖnotȝȜȕȐȜșȭȬȠȟȜȕȒȎ
ȐȎȠȪȏȜșȓȓȟșȜȔțȩȓȡȟșȜȐȖȭȒșȭȖțȟȠȞȡȘȤȖȗifelseifȖ
while.

ēČĎđĜĤđęĔđěĜĚďĜČĘĘĝěĚĘĚĥĨĪ
ĠğęĖĢĔĔ-::7:
ǰȓȞțȓȚȟȭȘȝȞȜȑȞȎȚȚȓchoptreedzȟșȖȝȞȖȕȎȝȡȟȘȓȝȞȜ
ȑȞȎȚȚȩȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗțȓȠȘȎȘȜȑȜșȖȏȜȏșȜȘȎȠȜȓȟȠȪ
ȡȟșȜȐȖȓnot turtle.detect()ȐȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠȕțȎ
ȥȓțȖȓfalseȝȞȜȑȞȎȚȚȎȒȜșȔțȎȕȎȐȓȞȦȖȠȪȟȭȟȟȜȜȏȧȓ
țȖȓȚȜȏȜȦȖȏȘȓǼȏȩȥțȜȝȞȜȑȞȎȚȚȩȕȎȐȓȞȦȎȬȠȞȎȏȜȠȡ
ȝȜȒȜȟȠȖȔȓțȖȖȝȜȟșȓȒțȓȗȟȠȞȜȘȖȘȜȒȎǻȜȠȩȚȜȔȓȦȪȐȩ
ȕȐȎȠȪȢȡțȘȤȖȬerror()ȟȜȟȠȞȜȘȜȐȩȚȎȞȑȡȚȓțȠȜȚȥȠȜȏȩ
ȕȎȐȓȞȦȖȠȪȝȞȜȑȞȎȚȚȡȞȎțȪȦȓȖȜȠȜȏȞȎȕȖȠȪȟȜȜȏȧȓțȖȓȜȏ
ȜȦȖȏȘȓdzȟșȖȐȩȕȐȎȠȪȢȡțȘȤȖȬerror()ȏȓȕȝȓȞȓȒȎȥȖȓȗ
ȟȠȞȜȘȜȐȜȑȜȎȞȑȡȚȓțȠȎȝȞȜȑȞȎȚȚȎȝȞȜȟȠȜȝȞȓȘȞȎȧȎȓȠȖȟ
ȝȜșțȓțȖȓțȓȜȠȜȏȞȎȔȎȭțȖȘȎȘȜȑȜȟȜȜȏȧȓțȖȭ
ǻȎȚțȡȔțȜȐȩȐȓȟȠȖȟȜȜȏȧȓțȖȓȜȏȜȦȖȏȘȓȓȟșȖȥȓȞȓ
ȝȎȦȘȎțȓȝȜȐȓȞțȡȠȎȘȒȓȞȓȐȡȝȜȫȠȜȚȡȐȟȠȞȜȘȓȚȩȝȓȞȓ
ȒȎȓȚȢȡțȘȤȖȖerror()ȟȠȞȜȘȜȐȩȗȎȞȑȡȚȓțȠ
choptree
4. if not turtle.detect() then
HUURU &RXOGQRW¿QGWUHH
6. end

dzȟșȖȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗțȓȠȏșȜȘȎȝȞȜȑȞȎȚȚȎȕȎȐȓȞ
ȦȎȓȠȞȎȏȜȠȡȖȐȩȐȜȒȖȠȐȖțȠȓȞȢȓȗȟȓȥȓȞȓȝȎȦȘȖȟȜȜȏȧȓ
țȖȓchoptree:5:Could not ¿QG tree!ǵțȎȥȓțȖȓchoptree:5ȒȜȏȎȐșȓțȜȖțȠȓȞȝȞȓȠȎȠȜȞȜȚ/XDǼțȜȡȘȎȕȩȐȎȓȠ
ȥȠȜȜȦȖȏȘȡȐȩȕȐȎșȎȟȠȞȜȘȎȝȞȜȑȞȎȚȚȩchoptreeǰȞȓ
ȕȡșȪȠȎȠȓȓȟșȖȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗțȓȠȒȓȞȓȐȎȒșȭȐȩȞȡȏȘȖ
ȝȞȜȑȞȎȚȚȎȝȞȓȘȞȎȧȎȓȠȞȎȏȜȠȡ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶǹdzǿǼǾȁǯǮ

117

ĎħĜğčĖČĐĜđĎđĝĔęħĝěĚĘĚĥĨĪ
ģđĜđěČĤĖĔ
dzȟșȖȡȟșȜȐȖȓnot turtle.detect()ȐȟȠȞȜȘȓȘȜȒȎȐȜȕ
ȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseȠȓȥȓȞȓȝȎȦȘȎȜȏțȎȞȡȔȖȐȎȓȠ
ȝȓȞȓȒȟȜȏȜȗȏșȜȘȢȡțȘȤȖȭerror()ȐȩȕȐȎțȎțȓȏȡȒȓȠ
ǰȚȓȟȠȜȫȠȜȑȜȝȞȜȑȞȎȚȚȎchoptreeȐȩȞȡȏȎȓȠțȖȔțȖȗ
ȏșȜȘȐȩȕȩȐȎȭȢȡțȘȤȖȬturtle.dig()ȎȕȎȠȓȚȝȓȞȓȚȓ
ȧȎȓȠȥȓȞȓȝȎȦȘȡȝȜȒȒȓȞȓȐȜDzȜȏȩȠȩȗȏșȜȘȝȜȚȓȧȎȓȠȟȭ
ȐȠȓȘȡȧȡȬȭȥȓȗȘȡ ȖșȖȒȞȡȑȡȬȭȥȓȗȘȡȓȟșȖȠȓȘȡȧȎȭȕȎ
țȭȠȎ ǸȜȒȐȟȠȞȜȘȎȣ²ȐȩȐȜȒȖȠȟȜȜȏȧȓțȖȓȜȠȜȚȥȠȜ
ȝȞȜȑȞȎȚȚȎȕȎȝȡȧȓțȎȐȩȞȡȏȎȓȠȏșȜȘȖȝȓȞȓȚȓȧȎȓȠȥȓȞȓ
ȝȎȦȘȡȝȜȒȒȓȞȓȐȜ
choptree
8. print('Chopping tree...')
9.
LIQRWWXUWOHGLJ WKHQɜɵɪɭɛɤɚɨɫɧɨɜɚɧɢɹɞɟɪɟɜɚ
11.
error('Turtle needs a digging tool!')
12. end
13.
WXUWOHIRUZDUG ɩɟɪɟɦɟɳɟɧɢɟɩɨɞɞɟɪɟɜɨ

ǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȡȥȓȞȓȝȎȦȘȖȒȜșȔțȎȏȩȠȪȘȖȞȘȎ
ȖțȎȥȓȢȡțȘȤȖȭturtle.dig()țȓȟȞȎȏȜȠȎȓȠȖȐȓȞțȓȠȕțȎ
ȥȓțȖȓfalsedzȟșȖȫȠȜȝȞȜȖȕȜȗȒȓȠȥȓȞȓȝȎȦȘȎțȓȟȚȜȔȓȠ
ȐȩȞȡȏȖȠȪȒȓȞȓȐȜdzȟșȖȢȡțȘȤȖȭturtle.dig()ȐȜȕȐȞȎȧȎ
ȓȠȕțȎȥȓțȖȓfalseȡȟșȜȐȖȓnot turtle.dig()ȝȞȖțȖȚȎȓȠ
ȕțȎȥȓțȖȓtrueȝȜȫȠȜȚȡȘȜȒȐȟȠȞȜȘȓȜȟȠȎțȜȐȖȠȝȞȜȑȞȎȚ
ȚȡȖȜȠȜȏȞȎȕȖȠȟȜȜȏȧȓțȖȓȜȏȜȦȖȏȘȓchoptree:11:Turtle
needs a digging tool!.
ȂȡțȘȤȖȖturtle.digUp()Ȗturtle.digDown()ȝȜȒȜȏțȜ
ȐȩȕȜȐȡturtle.dig()ȠȎȘȔȓȒȜȏȩȐȎȬȠȏșȜȘȖțȜțȓȝȓȞȓȒ
ȥȓȞȓȝȎȦȘȜȗȎȐȩȦȓȖșȖțȖȔȓȓȓȟȜȜȠȐȓȠȟȠȐȓțțȜ

118

DZǹǮǰǮ

ĝĜČĎęđęĔđčėĚĖĚĎĝěĚĘĚĥĨĪ
ĠğęĖĢĔĕĝĜČĎęđęĔī
ȂȡțȘȤȖȭturtle.compare()ȟȞȎȐțȖȐȎȓȠȏșȜȘȘȘȜȠȜȞȜȚȡ
ȝȜȐȓȞțȡȠȎȥȓȞȓȝȎȦȘȎȟȏșȜȘȜȚȐȓȓȠȓȘȡȧȜȗȭȥȓȗȘȓdzȟșȖ
ȜțȖȖȒȓțȠȖȥțȩȢȡțȘȤȖȭturtle.compare()ȐȓȞțȓȠȕțȎ
ȥȓțȖȓtruedzȟșȖȜțȖȞȎȕșȖȥțȩȢȡțȘȤȖȭturtle.compare()ȐȓȞțȓȠȕțȎȥȓțȖȓfalseȂȡțȘȤȖȖturtle.compareUp()Ȗturtle.compareDown()ȐȩȝȜșțȭȬȠȎțȎșȜȑȖȥțȩȓ
ȒȓȗȟȠȐȖȭȕȎȖȟȘșȬȥȓțȖȓȚȠȜȑȜȥȠȜȜțȖȟȞȎȐțȖȐȎȬȠȏșȜȘ
ȐȩȦȓȖșȖțȖȔȓȥȓȞȓȝȎȦȘȖȟȜȜȠȐȓȠȟȠȐȓțțȜ
ǽȜȟȘȜșȪȘȡȝȓȞȐȎȭȥȎȟȠȪȝȞȜȑȞȎȚȚȩȐȩȞȡȏȎȓȠȟȎȚȩȗ
țȖȔțȖȗȏșȜȘȒȓȞȓȐȎȝȓȞȓȒțȎȥȎșȜȚȝȓȞȓȚȓȧȓțȖȭȥȓȞȓ
ȝȎȦȘȖȐȐȓȞȣȝȜȒȓȞȓȐȡȐȓȓȠȓȘȡȧȓȗȭȥȓȗȘȓȡȔȓȒȜșȔȓț
ȏȩȠȪȏșȜȘǻȎȚțȡȔțȜȝȞȜȐȓȞȖȠȪȖȒȓțȠȖȥȓțșȖȏșȜȘțȎȒ
ȥȓȞȓȝȎȦȘȜȗȏșȜȘȡȐȓȓȠȓȘȡȧȓȗȭȥȓȗȘȓȝȜȫȠȜȚȡȒȜȕȎȝȡȟȘȎ
ȝȞȜȑȞȎȚȚȩȐȎȔțȜȡȏȓȒȖȠȪȟȭȥȠȜȠȓȘȡȧȎȭȭȥȓȗȘȎȝȡȟȠȎ
DzșȭȫȠȜȑȜȚȩȖȟȝȜșȪȕȡȓȚȢȡțȘȤȖȬturtle.compareUp().
ȋȠȎȢȡțȘȤȖȭȝȞȜȐȓȞȭȓȠȏșȜȘțȎȒȥȓȞȓȝȎȦȘȜȗȎțȓȝȓȞȓȒ
țȓȗȖȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrueȓȟșȖțȎȒȥȓȞȓȝȎȦȘȜȗȜȏ
țȎȞȡȔȓțȏșȜȘȒȞȓȐȓȟȖțȩ
choptree
15. while turtle.compareUp() do
ɜɵɪɭɛɤɚɩɨɤɚɨɛɧɚɪɭɠɟɧɚɞɪɟɜɟɫɢɧɚ
17.
turtle.digUp()
18.
turtle.up()
19. end

ȄȖȘșwhileȏșȜȘȘȜȒȎȘȜȠȜȞȜȑȜțȎȥȖțȎȓȠȟȭȐȟȠȞȜȘȓ
ȖȟȝȜșȪȕȡȓȠȐȟȐȜȓȚȡȟșȜȐȖȖȕțȎȥȓțȖȓȘȜȠȜȞȜȓȐȜȕȐȞȎȧȎȓȠ
ȢȡțȘȤȖȭturtle.compareUp()ȀȜȓȟȠȪȝȜȘȎțȎȒȥȓȞȓȝȎȦ
ȘȜȗȓȟȠȪȒȓȞȓȐȜȫȠȜȠȤȖȘșȏȡȒȓȠȐȩȝȜșțȭȠȪȟȭǸȜȒȐȟȠȞȜȘȓ
ȐȩȞȡȏȎȓȠȏșȜȘțȎȒȥȓȞȓȝȎȦȘȜȗȎȘȜȒȐȟȠȞȜȘȓȝȓȞȓ
ȚȓȧȎȓȠȓȓȐȐȓȞȣȄȖȘșȜȟȠȎțȎȐșȖȐȎȓȠȟȭȘȜȑȒȎȢȡțȘȤȖȭ
turtle.compareUp()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalse²ȫȠȜȝȞȜ
ȖȟȣȜȒȖȠȘȜȑȒȎȟȠȐȜșȒȓȞȓȐȎȕȎȘȎțȥȖȐȎȓȠȟȭ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶǹdzǿǼǾȁǯǮ

119

ǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȐȟȖȠȡȎȤȖȭȣȘȜȑȒȎȫȠȜȐȜȕȚȜȔ
țȜȚȜȔțȜȠȎȘȔȓȖȟȝȜșȪȕȜȐȎȠȪȢȡțȘȤȖȬturtle.compareDown()ȒșȭȝȞȜȐȓȞȘȖȏșȜȘȜȐȝȜȒȥȓȞȓȝȎȦȘȜȗ

ĎĚēĎĜČĥđęĔđęČēđĘėĪ
ȄȖȘșwhileȕȎȐȓȞȦȎȓȠȟȭȘȜȑȒȎțȎȒȥȓȞȓȝȎȦȘȜȗȏȜșȪȦȓ
țȓȠȒȞȓȐȓȟȖțȩȝȜȟșȓȥȓȑȜȜțȎȒȜșȔțȎȐȓȞțȡȠȪȟȭțȎȕȓȚșȬ
choptree
ɜɨɡɜɪɚɳɟɧɢɟɧɚɡɟɦɥɸ
22. while not turtle.detectDown() do
23.
turtle.down()
24. end
25.
26. print('Done chopping tree.')

ǸȜȒȐȟȠȞȜȘȓțȎȥȖțȎȓȠțȜȐȩȗȤȖȘșwhileȐȡȟșȜȐȖȖ
ȘȜȠȜȞȜȑȜȖȟȝȜșȪȕȡȓȠȟȭȐȩȞȎȔȓțȖȓnot turtle.detectDown()ȄȖȘșȝȞȜȒȜșȔȎȓȠȟȭȒȜȠȓȣȝȜȞȝȜȘȎȥȓȞȓȝȎȦȘȎțȓ
ȜȏțȎȞȡȔȖȠȏșȜȘȝȜȒȟȜȏȜȗȠȜȓȟȠȪȝȜȘȎȡȟșȜȐȖȓȐȜȕȐȞȎȧȎ
ȓȠȕțȎȥȓțȖȓtrueȐȩȕȩȐȎȓȠȟȭȢȡțȘȤȖȭturtle.down().
ǸȜȑȒȎȤȖȘșȕȎȐȓȞȦȖȠȟȭȖȥȓȞȓȝȎȦȘȎȐȓȞțȓȠȟȭțȎȕȓȚșȬ
ȝȞȜȑȞȎȚȚȎȐȩȐȓȒȓȠȟȜȜȏȧȓțȖȓDone chopping tree.
ȥȠȜȏȩȖȑȞȜȘȕțȎșȥȠȜȝȞȖȦșȜȐȞȓȚȭȕȎȏȞȎȠȪȥȓȞȓȝȎȦȘȡ
ȐȚȓȟȠȓȟȟȜȏȞȎțțȜȗȒȞȓȐȓȟȖțȜȗ 

ēČěğĝĖěĜĚďĜČĘĘĔĠğęĖĢĔī
;0-44:=6
ǽȞȜȑȞȎȚȚȡchoptreeȏȡȒȓȠȝȞȜȧȓȖȟȝȜșȪȕȜȐȎȠȪȓȟșȖȟȒȓ
șȎȠȪȠȎȘȥȠȜȏȩȜțȎȕȎȝȡȟȘȎșȎȟȪȟȞȎȕȡȔȓȘȎȘȠȜșȪȘȜȥȓ
ȞȓȝȎȦȘȎȜȘȎȔȓȠȟȭȝȓȞȓȒȒȓȞȓȐȜȚǺȩȚȜȔȓȚȫȠȜȟȒȓșȎȠȪ
ȖȟȝȜșȪȕȡȭȟȝȓȤȖȎșȪțȡȬȝȞȜȑȞȎȚȚȡstartupȘȜȠȜȞȎȭȏȡ
ȒȓȠȕȎȝȡȟȘȎȠȪȟȭȝȞȖȜȠȘȞȩȠȖȖȑȞȎȢȖȥȓȟȘȜȑȜȖțȠȓȞȢȓȗȟȎ
ȥȓȞȓȝȎȦȘȖȘȜȑȒȎȠȎȟȠȜȖȠȝȓȞȓȒȒȓȞȓȐȜȚDzȎȐȎȗțȎȝȖȦȓȚ
ȠȎȘȡȬȝȞȜȑȞȎȚȚȡ

120

DZǹǮǰǮ

ǵȎȝȡȟȠȖ ȠȓȘȟȠȜȐȩȗ ȞȓȒȎȘȠȜȞ ȐȐȓȒȭ ȘȜȚȎțȒȡ e d it
startupȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖǰȠȓȘȟȠȜȐȜȚȞȓȒȎȘ
ȠȜȞȓȐȐȓȒȖȟșȓȒȡȬȧȡȬȟȠȞȜȘȡȘȜȒȎ
startup
shell.run('choptree')

ȂȡțȘȤȖȭshell.run()ȕȎȝȡȟȠȖȠȟȠȞȜȘȡȘȜȒȎȘȜȠȜȞȡȬ
ȠȩȓȗȝȓȞȓȒȎȦȪȘȎȘȓȟșȖȏȩȠȩȐȐȓșȓȓȐȜȏȜșȜȥȘȓȘȜȚȎțȒ
țȜȗȟȠȞȜȘȖǰțȎȦȓȚȟșȡȥȎȓȝȞȖȝȓȞȐȜȚȜȠȘȞȩȠȖȖȑȞȎȢȖ
ȥȓȟȘȜȑȜȖțȠȓȞȢȓȗȟȎȥȓȞȓȝȎȦȘȖȏȡȒȓȠȕȎȝȡȧȓțȎȝȞȜȑȞȎȚ
ȚȎstartupȘȜȠȜȞȎȭȐȟȐȜȬȜȥȓȞȓȒȪȕȎȝȡȟȠȖȠȝȞȜȑȞȎȚȚȡ
choptreeȖțȓțȡȔțȜȐȐȜȒȖȠȪțȎȕȐȎțȖȓȝȞȜȑȞȎȚȚȩchoptreeȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȂȡțȘȤȖȭshell.run()
ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrueȓȟșȖȜțȎȚȜȔȓȠȡȟȝȓȦțȜȕȎȝȡ
ȟȠȖȠȪȝȞȜȑȞȎȚȚȡȖȕțȎȥȓțȖȓfalseȓȟșȖțȓȚȜȔȓȠțȎȗȠȖ
ȡȘȎȕȎțțȡȬȝȞȜȑȞȎȚȚȡȖșȖȕȎȝȡȟȘȝȞȜȑȞȎȚȚȩȐȩȕȩȐȎȓȠ
ȜȦȖȏȘȡ²ȢȡțȘȤȖȬerror().
ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"ĖĢđęĞĜğēđĘėĔ

Создай программу, с помощью которой черепашка выроет глубокую дыру, а не срубит дерево. Это можно сделать,
вызывая в цикле функции turtle.digDown() и turtle.
down(). Затем создай цикл, вызывающий функцию turtle.
up(), столько же раз, сколько функцию turtle.down() до
этого. Этот цикл вернет черепашку на поверхность. Ты же не
хочешь, чтобы она остановилась на дне шахты?

ģĞĚĘħğēęČėĔ
ǺȩȕȎȝȞȜȑȞȎȚȚȖȞȜȐȎșȖȥȓȞȓȝȎȦȘȡșȓȟȜȞȡȏȎȥȠȜȏȩȡȟȘȜ
ȞȖȠȪȒȜȏȩȥȡȒȞȓȐȓȟȖțȩȝȞȖșȓȟȜȕȎȑȜȠȜȐȘȎȣǽȞȜȑȞȎȚȚȡ
choptreeȚȜȔțȜȕȎȑȞȡȕȖȠȪȐțȓȟȘȜșȪȘȜȥȓȞȓȝȎȦȓȘȁȟȠȎ
țȜȐȖȜȒțȡȥȓȞȓȝȎȦȘȡȝȓȞȓȒȒȓȞȓȐȜȚȖȝȜȘȎȜțȎȒȜȏȩȐȎȓȠ
ȒȞȓȐȓȟȖțȡȝȜȟȠȎȐȪȒȞȡȑȡȬȥȓȞȓȝȎȦȘȡȝȓȞȓȒȒȞȡȑȖȚȒȓȞȓ
ȐȜȚȖȠȒȀȎȘȖȚȜȏȞȎȕȜȚȠȩȟȚȜȔȓȦȪȝȜșȡȥȖȠȪȜȑȞȜȚțȜȓ
ȘȜșȖȥȓȟȠȐȜȒȞȓȐȓȟȖțȩȐȘȞȎȠȥȎȗȦȖȓȟȞȜȘȖ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶǹdzǿǼǾȁǯǮ

121

DzȞȓȐȓȟȖțȡȘȜȠȜȞȡȬȒȜȏȩȐȎȬȠȥȓȞȓȝȎȦȘȖȚȜȔțȜȖȟ
ȝȜșȪȕȜȐȎȠȪȐȘȎȥȓȟȠȐȓȠȜȝșȖȐȎȥȠȜȏȩ©ȘȜȞȚȖȠȪªȟȎȚȖȣȥȓ
ȞȓȝȎȦȓȘǼȏȭȕȎȠȓșȪțȜȡȏȓȒȖȟȪȥȠȜȖȕȘȎȔȒȜȑȜȏșȜȘȎȒȞȓ
ȐȓȟȖțȩȏȡȒȓȠȖȕȑȜȠȜȐșȓțȜȥȓȠȩȞȓȏșȜȘȎȒȜȟȜȘȝȜȠȜȚȡȥȠȜ
ȒȜȟȘȖȘȎȘȖȒȞȓȐȓȟȖțȎȜȏȓȟȝȓȥȖȐȎȬȠȥȓȞȓȝȎȦȘȡȓȒȖ
țȖȤȎȚȖȠȜȝșȖȐȎ
ȅȓȞȓȝȎȦȘȎșȓȟȜȞȡȏ²ȫȠȜȣȜȞȜȦȓȓȝȜȒȟȝȜȞȪȓțȜȐȟȓȓȧȓ
țȡȔțȜȚțȜȑȜȝȜȠȞȡȒȖȠȪȟȭȥȠȜȏȩȟȠȎȐȖȠȪȘȎȔȒȡȬȥȓȞȓȝȎȦ
ȘȡȡȜȟțȜȐȎțȖȭȒȓȞȓȐȎǰȟșȓȒȡȬȧȖȣțȓȟȘȜșȪȘȖȣȑșȎȐȎȣȠȩ
ȡȕțȎȓȦȪȘȎȘȚțȜȑȜȘȞȎȠțȜȖȟȝȜșȪȕȜȐȎȠȪȓȒȖțȜȔȒȩțȎȝȖ
ȟȎțțȩȗȘȜȒȖȘȎȘȟȜȕȒȎȠȪȒȓȞȓȐȜȜȏȞȎȏȎȠȩȐȎȬȧȡȬȢȓȞȚȡ
ȝȞȜȑȞȎȚȚȖȞȡȭȥȓȞȓȝȎȦȓȘțȎȟȎȚȜȟȠȜȭȠȓșȪțȜȓȐȩȞȎȧȖȐȎ
țȖȓȖȐȩȞȡȏȘȡȒȓȞȓȐȪȓȐ

7
ĝĚēĐČęĔđĘĚĐğėđĕ
ĐėīĘęĚďĚĖĜČĞęĚďĚ
ĔĝěĚėĨēĚĎČęĔīĖĚĐČ
ǽȜȚȓȞȓȠȜȑȜȘȎȘȝȞȜȑȞȎȚȚȩȟȠȎțȜȐȭȠȟȭȏȜ
șȓȓȟșȜȔțȩȚȖȐȜȕțȖȘȎȓȠȔȓșȎțȖȓȟȫȘȜțȜ
ȚȖȠȪȐȞȓȚȭȖȝȜȐȠȜȞțȜȖȟȝȜșȪȕȜȐȎȠȪȡȔȓțȎ
ȝȖȟȎțțȩȗȘȜȒȋȠȜȚȜȔțȜȜȞȑȎțȖȕȜȐȎȠȪȓȟșȖ
ȖȟȝȜșȪȕȜȐȎȠȪȚȜȒȡșȖ²ȝȞȜȑȞȎȚȚȩȟȜȒȓȞȔȎ
ȧȖȓȢȡțȘȤȖȖȘȜȠȜȞȩȓȚȜȑȡȠȏȩȠȪȐȩȕȐȎțȩȠȐȜȖ
ȚȖȝȞȖșȜȔȓțȖȭȚȖ
ǰȫȠȜȗȑșȎȐȓȠȩȡȕțȎȓȦȪȘȎȘȟȜȕȒȎȐȎȠȪȝȜșȪȕȜȐȎȠȓșȪ
ȟȘȖȓȢȡțȘȤȖȖȖȟȜȏȟȠȐȓțțȩȓȚȜȒȡșȖȀȩțȎȝȖȦȓȦȪȢȡțȘ
ȤȖȖȘȜȠȜȞȩȓȥȓȞȓȝȎȦȘȖȢȓȞȚȓȞȩ ȖȐȟȓȜȟȠȎșȪțȩȓȥȠȜȠȩ
ȟȜȕȒȎȦȪȐȝȜȟșȓȒȟȠȐȖȖ ȐȑșȎȐȓȏȡȒȡȠȕȎȑȞȡȔȎȠȪȖȕȚȜȒȡșȭ

ĝĚēĐČęĔđĠğęĖĢĔĕĝěĚĘĚĥĨĪ
ĔęĝĞĜğĖĢĔĔ.=6+ hellofunction
Start of the program.
Hello, world!
Hello, world!
End of the program.

ǿȠȞȜȘȎȐȩȐȜȒȖȠȟȜȜȏȧȓțȖȓStart of the program.
ȘȜȠȜȞȜȓțȓȜȠțȜȟȖȠȟȭȘȢȡțȘȤȖȖǿȠȞȜȘȎȟȜȕȒȎȓȠȢȡțȘ
ȤȖȬhello()țȜȜȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȢȡțȘȤȖȭhello()
ȕȒȓȟȪțȓȕȎȝȡȟȘȎȓȠȟȭȐȚȓȟȠȜȫȠȜȑȜȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘ
ȟȠȞȜȘȓ
ǸȜȒȢȡțȘȤȖȖȝȞȖȓȓȟȜȕȒȎțȖȖțȓȖȟȝȜșțȭȓȠȟȭȜțȏȡȒȓȠ
ȖȟȝȜșțȓțȠȜșȪȘȜȝȞȖȓȓȐȩȕȜȐȓDzșȭȐȩȕȜȐȎȢȡțȘȤȖȖȐȝȞȜ
ȑȞȎȚȚȓȡȘȎȕȩȐȎȓȠȟȭȓȓȖȚȭȟȒȜȏȎȐșȓțȖȓȚȘȞȡȑșȩȣȟȘȜȏȜȘ
ȀȎȘȎȭȘȜțȟȠȞȡȘȤȖȭȟȜȜȏȧȎȓȠȝȞȜȑȞȎȚȚȓȥȠȜȟșȓȒȡȓȠȖȟ
ȝȜșțȖȠȪȘȜȒȟȜȒȓȞȔȎȧȖȗȟȭȐȢȡțȘȤȖȖȟȡȘȎȕȎțțȩȚȖȚȓ
țȓȚǿȠȞȜȘȎȐȩȕȩȐȎȓȠȢȡțȘȤȖȬhello()ȖȖȟȝȜșțȓțȖȓ
ȝȓȞȓȣȜȒȖȠȘȟȠȞȜȘȓȑȒȓȏȩșȎȟȜȕȒȎțȎȫȠȎȢȡțȘȤȖȭȋȠȎ
ȟȠȞȜȘȎȐȩȐȜȒȖȠțȎȫȘȞȎțȟȜȜȏȧȓțȖȓHello, world!.

124

DZǹǮǰǮ

ǸȜȑȒȎȐȩȕȜȐȢȡțȘȤȖȖȕȎȐȓȞȦȎȓȠȟȭȝȞȜȑȞȎȚȚȎȐȜȕȐȞȎ
ȧȎȓȠȟȭȘȟȠȞȜȘȓȘȜȠȜȞȎȭȐȩȕȩȐȎșȎȢȡțȘȤȖȬȖȝȞȜȒȜș
ȔȎȓȠȞȎȏȜȠȡǰțȎȦȓȚȟșȡȥȎȓȘȜȑȒȎȖȟȝȜșțȓțȖȓȒȜȟȠȖȑȎ
ȓȠȖțȟȠȞȡȘȤȖȖendȢȡțȘȤȖȖhello()ȜțȜȐȜȕȐȞȎȧȎȓȠȟȭȘ
ȟȠȞȜȘȓȑȒȓȏȩșȎȐȩȕȐȎțȎȢȡțȘȤȖȭȎȕȎȠȓȚȝȓȞȓȣȜȒȖȠȘ
ȟȠȞȜȘȓǿȠȞȜȘȎȠȎȘȔȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬhello()ȠȜ
ȓȟȠȪȖȟȝȜșțȓțȖȓȟțȜȐȎȐȜȕȐȞȎȧȎȓȠȟȭȟȠȞȜȘȓȖțȎȫȘȞȎț
ȓȧȓȞȎȕȐȩȐȜȒȖȠȟȭȟȜȜȏȧȓțȖȓHello, world!ǵȎȠȓȚȘȜȑ
ȒȎȖȟȝȜșțȓțȖȓȒȜȟȠȖȑȎȓȠȘȜțȤȎȢȡțȘȤȖȖhello()ȝȞȜȖȟ
ȣȜȒȖȠȐȜȕȐȞȎȠȘȟȠȞȜȘȓǻȎȘȜțȓȤȟȠȞȜȘȎȐȩȐȜȒȖȠȠȓȘȟȠ
End of the program.ȖȝȞȜȑȞȎȚȚȎȕȎȐȓȞȦȎȓȠȞȎȏȜȠȡ
ȂȡțȘȤȖȭhello()ȜȥȓțȪȝȞȜȟȠȎțȜȐȟȓȞȎȐțȜȝȞȜȧȓȐȩ
ȕȐȎȠȪȢȡțȘȤȖȬȥȓȚȒȐȎȞȎȕȎțȎȏȖȞȎȠȪȖțȟȠȞȡȘȤȖȬȐȩȕȜ
ȐȎȢȡțȘȤȖȖprint()ǽȜȚȓȞȓȡȟșȜȔțȓțȖȭȠȐȜȖȣȝȞȜȑȞȎȚȚ
ȜȢȜȞȚșȓțȖȓȘȜȒȎȐȐȖȒȓȢȡțȘȤȖȗȟȠȎțȓȠȏȜșȓȓȎȘȠȡȎșȪ
țȩȚȜȟȜȏȓțțȜȝȜȟșȓȠȜȑȜȘȎȘȠȩțȎȡȥȖȦȪȟȭȖȟȝȜșȪȕȜȐȎȠȪ
ȎȞȑȡȚȓțȠȩ

ČĜďğĘđęĞħĔěČĜČĘđĞĜħ
ǽȞȖȐȩȕȜȐȓȢȡțȘȤȖȗȖȚȚȜȔțȜȝȓȞȓȒȎȐȎȠȪȞȎȕșȖȥțȩȓȕțȎ
ȥȓțȖȭȋȠȖȕțȎȥȓțȖȭțȎȕȩȐȎȬȠȎȞȑȡȚȓțȠȎȚȖȎȝȓȞȓȚȓț
țȩȓȘȜȠȜȞȩȚȝȞȖȟȐȎȖȐȎȬȠȟȭȫȠȖȎȞȑȡȚȓțȠȩțȎȕȩȐȎȬȠȟȭ
ȝȎȞȎȚȓȠȞȎȚȖǼțȖȖȟȝȜșȪȕȡȬȠȟȭȐțȡȠȞȖȢȡțȘȤȖȖȠȎȘȔȓ
ȘȎȘȖȝȓȞȓȚȓțțȩȓ
ȅȠȜȏȩȡȕțȎȠȪȘȎȘȞȎȏȜȠȎȬȠȎȞȑȡȚȓțȠȩȖȝȎȞȎȚȓȠȞȩ
ȟȜȕȒȎȗțȜȐȡȬȝȞȜȑȞȎȚȚȡȐȩȝȜșțȖȐȘȜȚȎțȒȡedit sayhelloȖȐȐȓȒȭȘȜȒȝȞȖȐȓȒȓțțȩȗțȖȔȓǽȜȒȡȝȞȎȐșȓțȖȓȚȫȠȜȗ
ȝȞȜȑȞȎȚȚȩȥȓȞȓȝȎȦȘȎȐȩȐȜȒȖȠțȎȫȘȞȎțȝȞȖȐȓȠȟȠȐȓțțȜȓ
ȟȜȜȏȧȓțȖȓȒȞȡȑȜȗȥȓȞȓȝȎȦȘȓ
sayhello
IXQFWLRQVD\+HOOR QDPH QDPH±ɷɬɨɩɚɪɚɦɟɬɪ
2.
print('Hello, ' .. name)
3. end
4.
VD\+HOOR $UWHPLVLD  $UWHPLVLD ±ɷɬɨɚɪɝɭɦɟɧɬ
VD\+HOOR (OLVDEHWWD  (OLVDEHWWD ±ɷɬɨɚɪɝɭɦɟɧɬ

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

125

ǰȫȠȜȗȝȞȜȑȞȎȚȚȓȝȓȞȓȚȓțțȎȭnameȐȢȡțȘȤȖȖsayHello()ȐȟȠȞȜȘȓ²ȫȠȜȝȎȞȎȚȓȠȞǮȟȠȞȜȘȜȐȩȓȕțȎȥȓțȖȭ
'Artemisia'Ȗ'Elisabetta'ȐȟȠȞȜȘȎȣȖ²ȫȠȜȎȞȑȡ
ȚȓțȠȩ
ǰȟȠȞȜȘȓȟȜȕȒȎȓȠȟȭȢȡțȘȤȖȭsayHello()țȜȘȜȒȢȡțȘ
ȤȖȖȐȩȝȜșțȭȓȠȟȭȠȜșȪȘȜȠȜȑȒȎȘȜȑȒȎȝȞȜȖȟȣȜȒȖȠȐȩȕȜȐ
ȟȎȚȜȗȢȡțȘȤȖȖȠȜȓȟȠȪȘȜȑȒȎȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩȝȓ
ȞȓȣȜȒȖȠȘȟȠȞȜȘȓȋȠȎȟȠȞȜȘȎȟȜȒȓȞȔȖȠȐȩȕȜȐȢȡțȘȤȖȖ
sayHello()ǸȜȑȒȎȚȩȐȩȕȩȐȎȓȚȢȡțȘȤȖȬȝȜȒȜȏțȩȚȜȏȞȎ
ȕȜȚȘȎȘȐȟȠȞȜȘȓȚȩȑȜȐȜȞȖȚȥȠȜȝȓȞȓȒȎȓȚȎȞȑȡȚȓțȠȐ
ȐȩȕȜȐȢȡțȘȤȖȖǿȠȞȜȘȎȝȓȞȓȒȎȓȠȕțȎȥȓțȖȓ'Artemisia'
ȐȘȎȥȓȟȠȐȓȎȞȑȡȚȓțȠȎȢȡțȘȤȖȖsayHello()ȐȩȕȜȐȘȜȠȜ
ȞȜȗȐȜȕȐȞȎȧȎȓȠȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩȘȟȠȞȜȘȓǵȎȠȓȚ
ȝȓȞȓȚȓțțȜȗna meȘȜȠȜȞȎȭȭȐșȭȓȠȟȭȝȎȞȎȚȓȠȞȜȚȢȡțȘ
ȤȖȖȝȞȖȟȐȎȖȐȎȓȠȟȭȝȓȞȓȒȎțțȩȗȎȞȑȡȚȓțȠ'Artemisia'.
ǰȟȠȞȜȘȓȝȓȞȓȚȓțțȎȭna m eȖȟȝȜșȪȕȡȓȠȟȭȝȞȖȐȩȕȜȐȓ
ȢȡțȘȤȖȖprint()ȝȜȫȠȜȚȡȝȞȜȑȞȎȚȚȎȐȩȐȜȒȖȠȠȓȘȟȠHello, Artemisia.
ǸȜȑȒȎȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩȒȜȟȠȖȑȎȓȠȘȜțȤȎȢȡțȘȤȖȖ
sayHello()ȜțȜȐȜȕȐȞȎȧȎȓȠȟȭȘȟȠȞȜȘȓȎȕȎȠȓȚȝȓȞȓȣȜȒȖȠ
ȘȟȠȞȜȘȓǰțȓȗȟțȜȐȎȐȩȕȩȐȎȓȠȟȭȢȡțȘȤȖȭsayHello()
țȜțȎȫȠȜȠȞȎȕȐȘȎȥȓȟȠȐȓȎȞȑȡȚȓțȠȎȝȓȞȓȒȎȓȠȟȭȕțȎȥȓțȖȓ
'Elisabetta'ȖȝȓȞȓȚȓțțȜȗnameȝȞȖȟȐȎȖȐȎȓȠȟȭȫȠȜȕțȎȥȓ
țȖȓǽȜȫȠȜȚȡȘȜȑȒȎȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩȐțȜȐȪȐȜȕȐȞȎ
ȧȎȓȠȟȭȘȟȠȞȜȘȓțȎȫȘȞȎțȐȩȐȜȒȖȠȟȭȟȜȜȏȧȓțȖȓHello,
Elisabetta.
ǽȜȟșȓȖȟȝȜșțȓțȖȭȘȜȒȎȢȡțȘȤȖȖsayHello()ȝȞȜȑȞȎȚ
ȚȎȐȜȕȐȞȎȧȎȓȠȟȭȘȟȠȞȜȘȓǽȜȟȘȜșȪȘȡȟȠȞȜȘȘȜȒȎȏȜșȪȦȓ
țȓȠȝȞȜȑȞȎȚȚȎȕȎȐȓȞȦȎȓȠȟȭǵȎȝȡȟȠȖȝȞȜȑȞȎȚȚȡsayhelloȖȜțȎȜȠȜȏȞȎȕȖȠȟșȓȒȡȬȧȓȓ
> sayhello
Hello, Artemisia
Hello, Elisabetta

ȂȡțȘȤȖȭsayHello()ȏȡȒȓȠȝȓȥȎȠȎȠȪȟȠȞȜȘȖȐȟȜȜȠȐȓȠ
ȟȠȐȖȖȟȝȓȞȓȒȎțțȩȚȖȓȗȎȞȑȡȚȓțȠȎȚȖ

126

DZǹǮǰǮ

ĎĚēĎĜČĥČđĘħđēęČģđęĔī
ǰȩȕȜȐȩ Ȣȡ ț ȘȤ Ȗȗ ȝȜȥ Ƞ Ȗ ȐȟȓȑȒȎ Ȗ ȚȓȬȠ ȐȜȕȐȞȎ ȧȎȓȚȜȓ
ȕțȎȥȓțȖȓȘȜȠȜȞȜȓȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪȝȜȒȜȏțȜșȬȏȜȚȡ
ȒȞȡȑȜȚȡǻȎȝȞȖȚȓȞȐȩȕȜȐȩȢȡțȘȤȖȖȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪ
ȐȐȩȞȎȔȓțȖȭȣȘȎȘȝȓȞȓȚȓțțȩȓDzșȭȝȞȖȚȓȞȎȐȜȏȜșȜȥȘȓ
/XDȐȐȓȒȖȟșȓȒȡȬȧȡȬȖțȟȠȞȡȘȤȖȬ
lua> math.random(1, 6) + 1
5

ǰȩȕȜȐȢȡțȘȤȖȖmath.random(1, 6)ȐȜȕȐȞȎȧȎȓȠȟșȡ
ȥȎȗțȜȓȕțȎȥȓțȖȓȜȠ1ȒȜ6ǰȫȠȜȚȝȞȖȚȓȞȓȐȜȕȐȞȎȧȎȓȚȜȓ
ȕțȎȥȓțȖȓȞȎȐțȜ4ȝȜȫȠȜȚȡȐȟȓȐȩȞȎȔȓțȖȓȐȩȥȖȟșȭȓȠȟȭ
ȘȎȘ4 + 1ȐȩȒȎȐȎȭȕțȎȥȓțȖȓ5 ǰȓȞȜȭȠțȜȠȩȝȜșȡȥȖȦȪ
ȒȞȡȑȜȓȥȖȟșȜȠȎȘȘȎȘȢȡțȘȤȖȭmath.random()ȐȜȕȐȞȎȧȎȓȠ
ȟșȡȥȎȗțȜȓȥȖȟșȜ
ǽȞȖȟȜȕȒȎțȖȖȢȡțȘȤȖȖȐȜȕȐȞȎȧȎȓȚȜȓȕțȎȥȓțȖȓȡȘȎȕȩ
ȐȎȓȠȟȭȟȝȜȚȜȧȪȬȖțȟȠȞȡȘȤȖȖreturndzȓȟȖțȠȎȘȟȖȟȟȜȟȠȜ
ȖȠȖȕȘșȬȥȓȐȜȑȜȟșȜȐȎreturnȖȟșȓȒȡȬȧȓȑȜȕȎțȖȚȕțȎȥȓ
țȖȭȖșȖȐȩȞȎȔȓțȖȭȅȠȜȏȩȝȜȟȚȜȠȞȓȠȪțȎȝȞȎȘȠȖȘȓȘȎȘ
ȞȎȏȜȠȎȓȠȖțȟȠȞȡȘȤȖȭreturnȟȜȕȒȎȗțȜȐȡȬȝȞȜȑȞȎȚȚȡȐȩ
ȝȜșțȖȐȘȜȚȎțȒȡedit givecandyȖȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
givecandy
1. function candiesToGive(name)
2.
if name == 'Al' then
3.
return 10
4.
end
5.
6.
return 2
7. end
8.
9. lavCandy = candiesToGive('Lavinia')
10. alCandy = candiesToGive('Al')
11. print('Lavinia gets ' .. lavCandy .. ' pieces')
12. print('Al gets ' .. alCandy .. ' pieces')

ȂȡțȘȤȖȭcandiesToGive()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓ10ȖșȖ
2ȐȕȎȐȖȟȖȚȜȟȠȖȜȠȠȜȑȜȘȎȘȜȓȖȚȭȝȓȞȓȒȎȓȠȟȭȐȘȎȥȓȟȠȐȓȝȎ

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

127

ȞȎȚȓȠȞȎnamedzȟșȖȝȓȞȓȒȎȓȠȟȭȕțȎȥȓțȖȓ'Al'ȖțȟȠȞȡȘȤȖȭ
ifȐȟȠȞȜȘȓȝȞȖțȖȚȎȓȠȕțȎȥȓțȖȓtrueȠȜȑȒȎȖȟȝȜșțȓțȖȓ
ȝȓȞȓȣȜȒȖȠȘȟȠȞȜȘȓȖȐȩȕȜȐȢȡțȘȤȖȖȐȜȕȐȞȎȧȎȓȠȕțȎȥȓ
țȖȓ10dzȟșȖȢȡțȘȤȖȖȝȓȞȓȒȎȓȠȟȭȘȎȘȜȓșȖȏȜȒȞȡȑȜȓȕțȎȥȓ
țȖȓȖțȟȠȞȡȘȤȖȭifȝȞȖțȖȚȎȓȠȕțȎȥȓțȖȓfalseȖȟȝȜșțȓțȖȓ
ȝȓȞȓȣȜȒȖȠȘȟȠȞȜȘȓȖȢȡțȘȤȖȭȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓ2ǮȞ
ȑȡȚȓțȠȩȚȜȔțȜȞȎȟȟȚȎȠȞȖȐȎȠȪȘȎȘȐȣȜȒțȩȓȒȎțțȩȓȢȡțȘ
ȤȖȖȎȐȜȕȐȞȎȧȎȓȚȩȓȕțȎȥȓțȖȭȘȎȘȐȩȣȜȒțȩȓ
ǰȟȠȞȜȘȓȑȒȓȢȡțȘȤȖȖcandiesToGive()ȝȓȞȓȒȎȓȠȟȭ
ȕțȎȥȓțȖȓ'Lavinia'ȢȡțȘȤȖȭȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓ2Ƞȓ
ȝȓȞȓȚȓțțȜȗlavCandyȝȞȖȟȐȎȖȐȎȓȠȟȭȕțȎȥȓțȖȓ2ǰȟȠȞȜ
ȘȓȝȓȞȓȚȓțțȜȗalCandyȝȞȖȟȐȎȖȐȎȓȠȟȭȕțȎȥȓțȖȓ10
ȝȜȠȜȚȡȥȠȜȢȡțȘȤȖȭcandiesToGive()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓ
țȖȓ10ȓȟșȖȐȘȎȥȓȟȠȐȓȎȞȑȡȚȓțȠȎȓȗȝȓȞȓȒȎȓȠȟȭȕțȎȥȓ
țȖȓ'Al'ǽȓȞȓȚȓțțȩȓlavCandyȖalCandyȚȜȔțȜȖȟȝȜșȪ
ȕȜȐȎȠȪȝȞȖȐȩȕȜȐȓȢȡțȘȤȖȖprint()ȘȎȘȫȠȜȒȓșȎȓȠȟȭȐ
ȟȠȞȜȘȎȣȖȝȜȠȜȚȡȥȠȜȜȏȓȝȓȞȓȚȓțțȩȓȟȜȣȞȎțȭȬȠ
ȐȜȕȐȞȎȧȎȓȚȩȓȕțȎȥȓțȖȭ
dzȟșȖȠȩȕȎȝȡȟȠȖȦȪȫȠȡȝȞȜȑȞȎȚȚȡȠȜȡȐȖȒȖȦȪȟșȓȒȡȬ
ȧȓȓ
> givecandy
Lavinia gets 2 pieces
Al gets 10 pieces

ĝĚēĐČęĔđĘĚĐğėīĠğęĖĢĔĕ
ǰȚȓȟȠȜȠȜȑȜȥȠȜȏȩȐȘȎȔȒȜȗȝȞȜȑȞȎȚȚȓȕȎțȜȐȜȟȜȕȒȎȐȎȠȪ
ȢȡțȘȤȖȖȚȜȔțȜȜȒȖțȞȎȕțȎȝȖȟȎȠȪȖȣȖȝȜȚȓȟȠȖȠȪȐȚȜ
ȒȡșȪȀȜȑȒȎȝȞȜȑȞȎȚȚȎȘȜȠȜȞȎȭȕȎȑȞȡȕȖȠȠȎȘȜȗȚȜȒȡșȪ
ȟȚȜȔȓȠȐȜȟȝȜșȪȕȜȐȎȠȪȟȭȓȑȜȢȡțȘȤȖȭȚȖȋȠȜțȎȕȩȐȎȓȠȟȭ
ȚțȜȑȜȘȞȎȠțȩȚȖȟȝȜșȪȕȜȐȎțȖȓȚȘȜȒȎ.
ǺȜȒȡșȖȟȜȕȒȎȬȠȟȭȐȞȓȒȎȘȠȜȞȓȠȎȘȔȓȘȎȘȖȝȞȜȑȞȎȚ
ȚȩǽȜȟșȓȟȜȕȒȎțȖȭȠȩȚȜȔȓȦȪȖȚȝȜȞȠȖȞȜȐȎȠȪȚȜȒȡșȖȐ
ȒȞȡȑȖȓȝȞȜȑȞȎȚȚȩǰȫȠȜȗȑșȎȐȓȠȩȡȕțȎȓȦȪȘȎȘȟȜȕȒȎȐȎȠȪ
ȚȜȒȡșȖȎȐȟșȓȒȡȬȧȓȗȑșȎȐȓ²ȘȎȘȖȣȖȟȝȜșȪȕȜȐȎȠȪȐȟȐȜ
ȖȣȝȞȜȑȞȎȚȚȎȣDzȎȐȎȗȟȜȕȒȎȒȖȚȚȜȒȡșȪhareȖȒȎȒȖȚȐȜȕ

128

DZǹǮǰǮ

ȚȜȔțȜȟȠȪȐȟȓȚțȎȦȖȚȥȓȞȓȝȎȦȘȎȚȝȜșȪȕȜȐȎȠȪȟȭȓȑȜȐȟȠȞȜ
ȓțțȩȚȖȢȡțȘȤȖȭȚȖ
ȅȠȜȏȩȟȜȕȒȎȠȪȚȜȒȡșȪhareȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜ
ȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit hareȖȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
hare
>>Ɇɨɞɭɥɶɫɮɭɧɤɰɢɹɦɢɗɥɚɋɜɟɣɝɚɪɬɚ
2. Provides useful utility functions.]]
3.
ɮɭɧɤɰɢɹVHOHFW,WHP ɢɳɟɬɹɱɟɣɤɭ
±ɫɭɤɚɡɚɧɧɵɦɛɥɨɤɨɦɢɜɨɡɜɪɚɳɚɟɬ
WUXHɟɫɥɢɧɚɣɞɟɧɚɢIDOVHɟɫɥɢɧɟɬ
7. function selectItem(name)
ɩɪɨɜɟɪɤɚɜɫɟɯɹɱɟɟɤɢɧɜɟɧɬɚɪɹ
9.
local item
10.
for slot = 1, 16 do
11.
item = turtle.getItemDetail(slot)
12.
if item ~= nil and item['name'] == name then
13.
turtle.select(slot)
14.
return true
15.
end
16.
end
17.
UHWXUQIDOVHɛɥɨɤɧɟɧɚɣɞɟɧ
19. end
20.
21.
ɮɭɧɤɰɢɹVHOHFW(PSW\6ORW ɢɳɟɬ
ɩɭɫɬɭɸɹɱɟɣɤɭɢɜɨɡɜɪɚɳɚɟɬWUXH
ɟɫɥɢɧɚɯɨɞɢɬɢIDOVHɟɫɥɢɧɟɬ
25.function selectEmptySlot()
26
ɩɟɪɟɛɢɪɚɧɢɟɜɫɟɯɹɱɟɟɤ
28.
for slot = 1, 16 do
29.
if turtle.getItemCount(slot) == 0 then
30.
turtle.select(slot)
31.
return true
32.
end
33.
end
UHWXUQIDOVHɫɜɨɛɨɞɧɨɣɹɱɟɣɤɢɧɟɬ
35. end

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

129

ǸȜȒȫȠȜȑȜȚȜȒȡșȭȟȜȟȠȜȖȠȖȕȟȠȞȜȘțȜȖȣțȡȔțȜțȎ
ȏȞȎȠȪȠȜșȪȘȜȜȒȖțȞȎȕǯȓȕȫȠȜȑȜȚȜȒȡșȭȠȎȘȜȗȘȜȒȝȞȖ
ȒȓȠȟȭțȎȏȖȞȎȠȪȐȘȎȔȒȜȗȝȞȜȑȞȎȚȚȓȟȎțȎșȜȑȖȥțȩȚȖ
ȐȜȕȚȜȔțȜȟȠȭȚȖȘȜȠȜȞȡȬȠȩȕȎȣȜȥȓȦȪțȎȝȖȟȎȠȪǺȜȒȡșȖ
ȫȘȜțȜȚȭȠȚțȜȑȜȐȞȓȚȓțȖǰȟșȓȒȡȬȧȓȚȞȎȕȒȓșȓȚȩȝȜȫȘ
ȟȝȓȞȖȚȓțȠȖȞȡȓȚȟȢȡțȘȤȖȭȚȖȚȜȒȡșȭhareȐȜȏȜșȜȥȘȓ
/XD.
dzȟșȖȝȞȖȕȎȝȡȟȘȓȫȠȜȗȝȞȜȑȞȎȚȚȩȐȜȕțȖȘȎȬȠȜȦȖȏȘȖ
ȠȧȎȠȓșȪțȜȟȞȎȐțȖȟȐȜȗȘȜȒȟșȖȟȠȖțȑȜȚȐȫȠȜȗȘțȖȑȓȖȖȟ
ȝȞȎȐȪȐȟȓȜȝȓȥȎȠȘȖdzȟșȖȖȟȝȞȎȐȖȠȪȝȞȜȑȞȎȚȚȡțȓȡȒȎȓȠȟȭ
ȡȒȎșȖȢȎȗșȐȩȝȜșțȖȐȘȜȚȎțȒȡdelete hareȎȕȎȠȓȚȕȎ
ȑȞȡȕȖȚȜȒȡșȪȟȝȜȚȜȧȪȬȘȜȚȎțȒȩpastebin get wwzvaKuW
hare ǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȚȜȒȡșȪhareȘȜȠȜȞȩȗȠȩȕȎ
ȑȞȡȔȎȓȦȪȟȟȎȗȠȎSDVWHELQȟȜȒȓȞȔȖȠȐȟȓȢȡțȘȤȖȖȜȝȖȟȎț
țȩȓȐȘțȖȑȓȎțȓȠȜșȪȘȜȠȓȥȠȜȒȜȏȎȐșȓțȩȐȫȠȜȗȑșȎȐȓ

ēČďĜğēĖČĘĚĐğėīĝěĚĘĚĥĨĪĠğęĖĢĔĔ
7;47),)81
ǺȜȒȡșȪhareȟȜȒȓȞȔȖȠȒȐȓȢȡțȘȤȖȖselectItem()ȖselectEmptySlot()ȂȡțȘȤȖȭselectItem()ȐȩȏȖȞȎȓȠȭȥȓȗ
ȘȡȖțȐȓțȠȎȞȭȟȜȒȓȞȔȎȧȡȬȡȘȎȕȎțțȩȗȏșȜȘȖșȖȝȞȓȒȚȓȠ
ȎȢȡțȘȤȖȭselectEmptySlot()ȐȩȏȖȞȎȓȠȝȓȞȐȡȬȝȡȟȠȡȬ
ȭȥȓȗȘȡȖțȐȓțȠȎȞȭǼȏȓȢȡțȘȤȖȖȐȓȟȪȚȎȝȜșȓȕțȩȝȞȖȞȎȏȜ
ȠȓȟȖțȐȓțȠȎȞȓȚȥȓȞȓȝȎȦȘȖ
ǰȟȠȞȜȓțțȩȓȚȜȒȡșȖ/XD ȠȎȘȖȓȘȎȘmathȖos ȕȎȑȞȡ
ȔȎȬȠȟȭȎȐȠȜȚȎȠȖȥȓȟȘȖȒșȭȐȟȓȣȝȞȜȑȞȎȚȚȥȓȞȓȝȎȦȓȘțȜ
ȟȓȗȥȎȟȠȓȏȓțȡȔțȜȕȎȑȞȡȕȖȠȪȚȜȒȡșȪȟȜȕȒȎțțȩȗȠȜȏȜȗ
DzșȭȫȠȜȑȜȖȟȝȜșȪȕȡȓȠȟȭȢȡțȘȤȖȭos.load API()ǼȏȞȎȠȖ
ȐțȖȚȎțȖȓȥȠȜȐ&RPSXWHU&UDIWȚȜȒȡșȖȠȎȘȔȓțȎȕȩȐȎȬȠȟȭ
ȝȞȜȑȞȎȚȚțȩȚȖȖțȠȓȞȢȓȗȟȎȚȖ ($SSOLFDWLRQ 3URJUDPPLQJ ,Q
WHUIDFHV$3, ȅȠȜȏȩȖȟȝȜșȪȕȜȐȎȠȪȢȡțȘȤȖȬos.loadAPI()
ȝȓȞȓȒȎȗȓȗȐȐȖȒȓȟȠȞȜȘȜȐȜȑȜȕțȎȥȓțȖȭȖȚȭȚȜȒȡșȭȘȜ
ȠȜȞȩȗȠȩȣȜȥȓȦȪȕȎȑȞȡȕȖȠȪǻȎȝȞȖȚȓȞȥȠȜȏȩȖȟȝȜșȪȕȜ
ȐȎȠȪȐȟȐȜȓȗȝȞȜȑȞȎȚȚȓȚȜȒȡșȪharețȡȔțȜȐȐȓȟȠȖȘȜȒ
os.loadAPI('hare').
ȂȡțȘȤȖȭos.loadAPI()ȟȒȓșȎȓȠȢȡțȘȤȖȖȫȠȜȑȜȚȜȒȡșȭ
ȒȜȟȠȡȝțȩȚȖȒșȭȐȩȕȩȐȎȬȧȓȗȝȞȜȑȞȎȚȚȩȂȡțȘȤȖȭȐȓȞ

130

DZǹǮǰǮ

țȓȠȕțȎȥȓțȖȓtrueȓȟșȖȚȜȒȡșȪȏȩșțȎȗȒȓțȖȕȎȑȞȡȔȓțȖ
falseȓȟșȖȚȜȒȡșȪțȓȟȡȧȓȟȠȐȡȓȠ țȎȝȞȖȚȓȞȓȟșȖȠȩȟȒȓ
șȎșȜȝȓȥȎȠȘȡȐȜȠȠȎȘ²os.loadAPI('har') ǰȟșȓȒȡȬȧȓȚ
ȞȎȕȒȓșȓȠȩȕȎȑȞȡȕȖȦȪȚȜȒȡșȪhareȖȐȩȕȜȐȓȦȪțȓȘȜȠȜȞȩȓ
ȖȕȓȑȜȢȡțȘȤȖȗ

ĩĖĝěđĜĔĘđęĞħĝĘĚĐğėđĘ0):ȅȠȜȏȩȡȐȖȒȓȠȪȘȎȘȞȎȏȜȠȎȓȠȢȡțȘȤȖȭselectItem()ȜȠ
ȘȞȜȗȖțȠȓȞȢȓȗȟȥȓȞȓȝȎȦȘȖȖȝȜȚȓȟȠȖȐȖțȐȓțȠȎȞȪȏșȜȘȒȡ
ȏȜȐȜȗȒȞȓȐȓȟȖțȩȖțȓȟȘȜșȪȘȜȒȞȡȑȖȣȏșȜȘȜȐȘȎȘȝȜȘȎȕȎțȜ
țȎȞȖȟ

ˀ̛̭͘ϳ͘ϭ͘ʰ̸̡̨̨̡̨̨̛̛̛̦̖̦̯̬̖̬̖̪̹̭̖̬̙̯̣̱̜̬̖̖̭̦̼̏̌̽̌̔̍̔̍̏̔̏
̵̡̨̡̨̨̡̨̡̛̛̦̖̭̣̬̱̣͕̯̖̱̺̽̔̐̍̏̌́ʹ̸̡̖̜́̌ϭ

ǵȎȠȓȚȜȠȘȞȜȗȜȏȜșȜȥȘȡ/XDȖȒșȭȐȩȏȜȞȎȭȥȓȗȘȖȟȒȡȏȜ
ȐȜȗȒȞȓȐȓȟȖțȜȗȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
lua> os.loadAPI('hare')
true
lua> hare.selectItem('minecraft:log')
true

ǽȓȞȐȎȭȟȠȞȜȘȎȘȜȒȎȕȎȑȞȡȔȎȓȠȚȜȒȡșȪhareȎȐȠȜȞȎȭ²
ȐȩȏȖȞȎȓȠȭȥȓȗȘȡȖțȐȓțȠȎȞȭȟȒȡȏȜȐȜȗȒȞȓȐȓȟȖțȜȗȝȓȞȓȒȎ
ȐȎȭȢȡțȘȤȖȖselectItem()ȟȠȞȜȘȡ'minecraft:log'.

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

131

ǿȠȞȜȘȎ'minecraft:log'²ȫȠȜȖȒȓțȠȖȢȖȘȎȠȜȞ0LQHFUDIW
ȏșȜȘȎȒȡȏȜȐȜȗȒȞȓȐȓȟȖțȩǶȒȓțȠȖȢȖȘȎȠȜȞ²ȫȠȜȡțȖȘȎșȪ
țȎȭȟȠȞȜȘȎțȎȥȖțȎȬȧȎȭȟȭȟȜȕțȎȥȓțȖȭ'minecraft:'
ȘȜȠȜȞȎȭȐȖȑȞȓ0LQHFUDIWȖȟȝȜșȪȕȡȓȠȟȭȒșȭȘȜȒȖȞȜȐȎțȖȭ
șȬȏȩȣȏșȜȘȜȐȖȝȞȓȒȚȓȠȜȐǿȝȖȟȜȘȖȒȓțȠȖȢȖȘȎȠȜȞȜȐȚȜȔ
țȜțȎȗȠȖȐȞȎȕȒȓșȓ«ǿȝȖȟȜȘȖȒȓțȠȖȢȖȘȎȠȜȞȜȐȏșȜȘȜȐª
ȝȞȖșȜȔȓțȖȭǯǰȞȎȕȒȓșȓ«ǽȜșȡȥȓțȖȓȖțȢȜȞȚȎȤȖȖȜ
ȟȜȒȓȞȔȖȚȜȚȭȥȓȗȘȖªȒȎșȓȓȐȫȠȜȗȑșȎȐȓȠȩȡȕțȎȓȦȪȘȎȘ
ȖȕȐșȓȥȪȖȒȓțȠȖȢȖȘȎȠȜȞȏșȜȘȎȝȞȓȒȚȓȠȎȟȜȒȓȞȔȎȧȓȑȜȟȭ
ȐȭȥȓȗȘȓȟȝȜȚȜȧȪȬȢȡțȘȤȖȖturtle.getItemDetail()
ȐȚȓȟȠȜȠȜȑȜȥȠȜȏȩȖȟȘȎȠȪȓȑȜ
dzȟșȖȐȕȑșȭțȡȠȪțȎȖțȐȓțȠȎȞȪȥȓȞȓȝȎȦȘȖȝȜȟșȓȐȩ
ȕȜȐȎȢȡțȘȤȖȖhare.selectItem()ȠȩȡȐȖȒȖȦȪȥȠȜȐȩ
ȏȞȎ țȎ ȭ ȥȓȗ ȘȎ ȟ ȏșȜȘȜȚ Ȓ ȞȓȐȓȟȖ ț ȩ ȘȎ Ș ȝȜȘȎȕȎ țȜ țȎ
ȞȖȟȋȠȎȢȡțȘȤȖȭȖȧȓȠȖȐȩȏȖȞȎȓȠȭȥȓȗȘȡȟȒȞȓȐȓ
ȟȖțȜȗțȓȕȎȐȖȟȖȚȜȜȠȠȜȑȜȐȘȎȘȜȗȭȥȓȗȘȓȖțȐȓțȠȎȞȭțȎ
ȣȜȒȖȠȟȭȏșȜȘȒȞȓȐȓȟȖțȩǽȜȝȞȜȏȡȗȝȓȞȓȚȓȟȠȖȠȪȒȡȏȜȐȡȬ
ȒȞȓȐȓȟȖțȡȐȒȞȡȑȡȬȭȥȓȗȘȡȖȟțȜȐȎȐȩȕȜȐȖȢȡțȘȤȖȬhare.
selectItem('minecraft:log')ǯȡȒȓȠȐȩȏȞȎțȎȒȞȡȑȎȭ
ȭȥȓȗȘȎȟȒȞȓȐȓȟȖțȜȗȖȫȠȎȭȥȓȗȘȎȏȡȒȓȠȐȩȒȓșȓțȎȞȎȚȘȜȗ

ˀ̛̭͘ϳ͘Ϯ͘˔̸̴̶̡̨̨̨̡̛̛̛̛̖̜̭̬̖̖̭̦̜̼̖̣̖̦̪̭̣̖̼̪̣̦̖̦̱̦̌̔̏̏̔̌̏́hare.
selectItem('minecraft:log')

ȂȡțȘȤȖȭselectEmptySlot()ȐȩȏȖȞȎȓȠȝȓȞȐȡȬȝȡȟȠȡȬ
ȭȥȓȗȘȡȖțȐȓțȠȎȞȭȘȜȠȜȞȡȬȜȏțȎȞȡȔȖȐȎȓȠȋȠȎȢȡțȘȤȖȭ
ȝȜțȎȒȜȏȖȠȟȭȘȜȑȒȎȠȩȟȜȏȓȞȓȦȪȟȭȒȜȏȩȐȎȠȪȘȎȘȖȓșȖȏȜ

132

DZǹǮǰǮ

ȏșȜȘȖȠȎȘȘȎȘȒșȭȖȣȣȞȎțȓțȖȭȝȜțȎȒȜȏȖȠȟȭȝȡȟȠȎȭȭȥȓȗ
ȘȎǰȜȏȜșȜȥȘȓ/XDȐȩȝȜșțȖȟșȓȒȡȬȧȖȗȘȜȒ
lua> os.loadAPI('hare')
true
lua> hare.selectEmptySlot()
true

ǽȜȟșȓȐȩȕȜȐȎȢȡțȘȤȖȖhare.selectEmptySlot()ȏȡȒȓȠ
ȐȩȏȞȎțȎȝȓȞȐȎȭȝȡȟȠȎȭȭȥȓȗȘȎȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϳ͘ϯ͘ʦ̸̴̶̡̨̨̡̛̛̼̖̣̖̦̪̖̬̪̱̭̯̖̜̪̭̣̖̼̱̦̔̌̏̌́̌́́̌̏̏̌̚hare.selectEmptySlot()

ǼȏȓȫȠȖȢȡțȘȤȖȖȏȡȒȡȠȖȟȝȜșȪȕȜȐȎțȩȐȝȞȜȑȞȎȚȚȓșȓ
ȟȜȢȓȞȚȩȖȕȑșȎȐȩțȜȜțȖȚȜȑȡȠȝȞȖȑȜȒȖȠȪȟȭȖȐȜȚțȜȑȖȣ
ȒȞȡȑȖȣȝȞȜȑȞȎȚȚȎȣȒșȭȥȓȞȓȝȎȦȓȘDzȎȐȎȗȞȎȟȟȚȜȠȞȖȚȘȜȒ
ȖȕȘȜȠȜȞȜȑȜȟȜȟȠȜȖȠțȎȦȚȜȒȡșȪ

ĜČčĚĞČĝĔęĎđęĞČĜđĘģđĜđěČĤĖĔ
ǽȓȞȐȩȓȒȐȓȟȠȞȜȘȖȘȜȒȎȚȜȒȡșȭhareȟȜȒȓȞȔȎȠȜȏȧȖȗȘȜȚ
ȚȓțȠȎȞȖȗȘȝȞȜȑȞȎȚȚȓȎȝȜȟșȓȒȡȬȧȖȓȘȜȚȚȓțȠȎȞȖȖȝȜȭȟ
țȭȬȠȘȎȘȖȓȒȓȗȟȠȐȖȭȝȞȜȖȕȐȜȒȖȠȢȡțȘȤȖȭselectItem().
hare
>>Ɇɨɞɭɥɶɫɮɭɧɤɰɢɹɦɢɗɥɚɋɜɟɣɝɚɪɬɚ

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

133

ɞɥɹɪɟɲɟɧɢɹɩɨɥɟɡɧɵɯɡɚɞɚɱ@@
3.
ɎɭɧɤɰɢɹVHOHFW,WHP ɢɳɟɬɹɱɟɣɤɭ
ɫɭɤɚɡɚɧɧɵɦɛɥɨɤɨɦɢɜɨɡɜɪɚɳɚɟɬ
WUXHɟɫɥɢɧɚɣɞɟɧɢIDOVHɟɫɥɢɧɟɬ
7. function selectItem(name)

ǶțȟȠȞȡȘȤȖȭfunction selectItem()ȞȎȟȝȜșȜȔȓțȎȐȟȠȞȜ
ȘȓǵȎȝȜȚțȖȥȠȜȏșȜȘȘȜȒȎȝȜȟșȓȖțȟȠȞȡȘȤȖȖfunctionȖȟ
ȝȜșțȭȓȠȟȭȘȎȔȒȩȗȞȎȕȘȜȑȒȎȢȡțȘȤȖȭȐȩȕȩȐȎȓȠȟȭǯșȜȘ
ȘȜȒȎțȓȖȟȝȜșțȭȓȠȟȭȓȟșȖȖțȟȠȞȡȘȤȖȭfunctionȐȟȠȞȓȥȎȓȠ
ȟȭȐȝȓȞȐȩȓȅȠȜȏȩȝȜțȭȠȪȘȜȒȢȡțȘȤȖȖselectItem()Ƞȓȏȓ
ȟțȎȥȎșȎțȡȔțȜȖȕȡȥȖȠȪțȓȘȜȠȜȞȩȓȢȡțȘȤȖȖȘȜȠȜȞȩȓȖȟ
ȝȜșȪȕȡȬȠȟȭȒșȭȞȎȏȜȠȩȟȖțȐȓțȠȎȞȓȚȥȓȞȓȝȎȦȘȖ
ǸȎȔȒȎȭȥȓȞȓȝȎȦȘȎȖȚȓȓȠȖțȐȓțȠȎȞȪȟȜȟȠȜȭȧȖȗȖȕ
ȭȥȓȓȘȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

ˀ̛̭͘7.4͘ʻ̶̸̸̡̡̛̛̛̱̥̖̬̖̖̦̖̦̯̬̖̬̖̪̹̌́́̏̌́̌

ȁȥȓȞȓȝȎȦȓȘȓȟȠȪȠȞȖȐȟȠȞȜȓțțȩȓȢȡțȘȤȖȖȘȜȠȜȞȩȓȝȜ
ȕȐȜșȭȬȠȐȕȎȖȚȜȒȓȗȟȠȐȜȐȎȠȪȟȖțȐȓțȠȎȞȓȚȟȝȜȚȜȧȪȬțȜȚȓ
ȞȜȐȭȥȓȓȘturtle.select()turtle.getItemCount()Ȗturtle.getItemDetail()DzȎȐȎȗȞȎȟȟȚȜȠȞȖȚȘȎȘȜțȖȞȎȏȜȠȎȬȠ

ĎħčĚĜīģđĕĖĔĔęĎđęĞČĜī
ȀȩȚȜȔȓȦȪȐȩȏȞȎȠȪȠȓȘȡȧȡȬȭȥȓȗȘȡȖȟȝȜșȪȕȡȭȢȡțȘȤȖȬ
turtle.select()ȖȝȓȞȓȒȎȐȓȗțȜȚȓȞȔȓșȎȓȚȜȗȭȥȓȗȘȖǻȜ
ȚȓȞȎȭȥȓȓȘȝȜȘȎȕȎțȩțȎȞȖȟȅȠȜȏȩȝȜȟȚȜȠȞȓȠȪȘȎȘȞȎ

134

DZǹǮǰǮ

ȏȜȠȎȓȠȫȠȎȢȡțȘȤȖȭȐȜȏȜșȜȥȘȓ/XDȐȐȓȒȖȟșȓȒȡȬȧȖȓȟȠȞȜ
ȘȖȘȜȒȎ
lua> turtle.select(2)
true
lua> turtle.select(16)
true

ǽȜȟșȓȐȩȕȜȐȎȢȡțȘȤȖȖȜȏȞȎȠȖȐțȖȚȎțȖȓțȎȠȜșȟȠȡȬ
ȞȎȚȘȡȘȜȠȜȞȎȭȜȏȜȕțȎȥȎȓȠȠȓȘȡȧȡȬȭȥȓȗȘȡǺțȜȑȖȓȢȡțȘ
ȤȖȖȥȓȞȓȝȎȦȘȖȖȟȝȜșȪȕȡȬȠȖȚȓțțȜȠȓȘȡȧȡȬȭȥȓȗȘȡȝȜ
ȫȠȜȚȡȐȓȟȪȚȎȝȜșȓȕțȜȕțȎȠȪȘȎȘȓȓȐȩȏȞȎȠȪȅȎȟȠȜȏȩȐȎȓȠ
țȡȔțȜȐȩȏȞȎȠȪȠȓȘȡȧȓȗȜȝȞȓȒȓșȓțțȡȬȭȥȓȗȘȡțȎȝȞȖȚȓȞ
ȟȜȒȓȞȔȎȧȡȬȘȎȘȜȗșȖȏȜțȡȔțȩȗȏșȜȘȖșȖȝȞȓȒȚȓȠ

ěĚĐĝģđĞĖĚėĔģđĝĞĎČěĜđĐĘđĞĚĎĎīģđĕĖđ
dzȟșȖȠȩȕȎȣȜȥȓȦȪȡȕțȎȠȪȟȘȜșȪȘȜȝȞȓȒȚȓȠȜȐȏșȜȘȜȐțȎȣȜ
ȒȖȠȟȭȐȭȥȓȗȘȓȖțȐȓțȠȎȞȭȐȩȕȜȐȖȢȡțȘȤȖȬturtle.getItemCount()ȖȝȓȞȓȒȎȗȓȗțȜȚȓȞȭȥȓȗȘȖǰȜȏȜșȜȥȘȓ/XD
ȐȐȓȒȖȟșȓȒȡȬȧȖȓȟȠȞȜȘȖȘȜȒȎ
lua> turtle.getItemCount(1)
1
lua> turtle.getItemCount(16)
0

dzȟșȖȠȩțȓȝȓȞȓȒȎȦȪȢȡțȘȤȖȖturtle.getItemCount()
ȎȞȑȡȚȓțȠȟțȜȚȓȞȜȚȭȥȓȗȘȖȢȡțȘȤȖȭȝȞȜȐȓȞȖȠȠȓȘȡȧȡȬ
ȭȥȓȗȘȡȋȠȎȢȡțȘȤȖȭȜȥȓțȪȝȞȜȟȠȎȜțȎȐȜȕȐȞȎȧȎȓȠȘȜșȖ
ȥȓȟȠȐȜȫșȓȚȓțȠȜȐȐȭȥȓȗȘȓȖțȐȓțȠȎȞȭțȜțȖȥȓȑȜțȓȟȜȜȏȧȎ
ȓȠȜȠȜȚȥȠȜȖȚȓțțȜȐȭȥȓȗȘȓțȎȣȜȒȖȠȟȭȅȠȜȏȩȝȜșȡȥȖȠȪ
ȝȜȒȞȜȏțȡȬȖțȢȜȞȚȎȤȖȬȜȟȜȒȓȞȔȖȚȜȚȭȥȓȗȘȖȠȓȏȓȝȜțȎ
ȒȜȏȖȠȟȭȢȡțȘȤȖȭturtle.getItemDetail().

ěĚėğģđęĔđĔęĠĚĜĘČĢĔĔĚĝĚĐđĜĒĔĘĚĘ
īģđĕĖĔ
ȀȩȚȜȔȓȦȪȝȜșȡȥȖȠȪȖțȢȜȞȚȎȤȖȬȜȠȜȚȥȠȜȟȜȒȓȞȔȖȠȟȭȐ
ȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖȐȩȕȐȎȐȢȡțȘȤȖȬturtle.getItem-

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

135

Detail()ȖȝȓȞȓȒȎȐȓȗțȜȚȓȞȭȥȓȗȘȖȘȜȠȜȞȡȬȠȩȣȜȥȓȦȪ
ȝȞȜȐȓȞȖȠȪǽȜȚȓȟȠȖȏșȜȘȒȞȓȐȓȟȖțȩȐȭȥȓȗȘȡȎȕȎȠȓȚȐ
ȜȏȜșȜȥȘȓ/XDȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
lua> turtle.getItemDetail(1)
{
count = 1,
name = «minecraft:log»,
damage = 0,
}

ǵțȎȥȓțȖȓȐȜȕȐȞȎȧȎȓȚȜȓȢȡțȘȤȖȓȗturtle.getItemDetail()ȡȘȎȕȩȐȎȓȠțȎȠȜȥȠȜȐȭȥȓȗȘȓțȎȣȜȒȖȠȟȭȜȒȖț
ȏșȜȘȒȞȓȐȓȟȖțȩȏȓȕȝȜȐȞȓȔȒȓțȖȗ ȎȘȠȡȎșȪțȜȒșȭȖțȟȠȞȡ
ȚȓțȠȜȐȜȞȡȔȖȭȖȏȞȜțȖ dzȟșȖȡȘȎȕȎțțȎȭȭȥȓȗȘȎȝȡȟȠȎ
ȢȡțȘȤȖȭturtle.getItemDetail()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓ
nildzȟșȖȢȡțȘȤȖȖturtle.getItemDetail()țȓȝȓȞȓȒȎ
ȐȎȠȪȎȞȑȡȚȓțȠȜțȎȐȓȞțȓȠȖțȢȜȞȚȎȤȖȬȜȠȓȘȡȧȓȗȭȥȓȗȘȓ
ǰȜȕȐȞȎȧȎȓȚȜȓȫȠȜȗȢȡțȘȤȖȓȗȕțȎȥȓțȖȓȝȞȖțȤȖȝȖȎșȪ
țȜȜȠșȖȥȎȓȠȟȭȜȠȕțȎȥȓțȖȗȘȜȠȜȞȩȓȠȩȐȖȒȓșȒȜȫȠȜȑȜȝȜ
ȠȜȚȡȥȠȜȫȠȜȕțȎȥȓțȖȓȠȎȏșȖȥțȜȑȜȠȖȝȎ

ĞČčėĔģęħđēęČģđęĔī
ȀȎȏșȖȥțȩȓȒȎțțȩȓȚȜȑȡȠȏȩȠȪȝȞȓȒȟȠȎȐșȓțȩȕțȎȥȓțȖȭȚȖ
ȟȎȚȩȣȞȎȕțȩȣȠȖȝȜȐǽȜȒȜȏțȜȠȜȚȡȘȎȘȟȠȞȜȘȜȐȩȓȕțȎȥȓ
țȖȭțȎȥȖțȎȬȠȟȭȖȕȎȘȎțȥȖȐȎȬȠȟȭȘȎȐȩȥȘȎȚȖȠȎȏșȖȥțȩȓ
ȕțȎȥȓțȖȭțȎȥȖțȎȬȠȟȭȖȕȎȘȎțȥȖȐȎȬȠȟȭȢȖȑȡȞțȩȚȖȟȘȜȏ
ȘȎȚȖ{}ȃȞȎțȭȧȖȓȟȭȐȠȎȏșȖȤȓȒȎțțȩȓȜȏȞȎȕȡȬȠȝȎȞȩ
ȘșȬȥȕțȎȥȓțȖȓȘȜȠȜȞȩȓȕȎȝȖȟȩȐȎȬȠȟȭȐȜȒțȡȟȠȞȜȘȡȖ
ȫȠȖȟȠȞȜȘȖȟȝȎȞȎȚȖȜȠȒȓșȭȬȠȟȭȕȎȝȭȠȩȚȖȅȠȜȏȩȟȜȕȒȎȠȪ
țȜȐȡȬȠȎȏșȖȤȡȖȝȜȟȚȜȠȞȓȠȪȘȎȘȐȩȑșȭȒȭȠȝȎȞȩȘșȬȥ
ȕțȎȥȓțȖȓȐȜȏȜșȜȥȘȓ/XDȐȐȓȒȖȟșȓȒȡȬȧȡȬȟȠȞȜȘȡȘȜȒȎ
lua> myStuff = {logs=5, stone=4, arrows=10}

ȋȠȎȟȠȞȜȘȎȝȞȖȟȐȎȖȐȎȓȠȝȓȞȓȚȓțțȜȗmyStuffȠȎȏșȖȥțȜȓ
ȕțȎȥȓțȖȓ{logs = 5, stone = 4, arrows = 10}ȀȞȖ
ȥȖȟșȜȐȩȣȕțȎȥȓțȖȭ²54Ȗ10ȫȠȜȕțȎȥȓțȖȭȖȕȝȎȞȩȘșȬȥ
ȕțȎȥȓțȖȓȎȖȒȓțȠȖȢȖȤȖȞȜȐȎȠȪȖȣȚȜȔțȜȝȜȟȜȜȠȐȓȠȟȠȐȡȬ

136

DZǹǮǰǮ

ȧȖȚȘșȬȥȎȚ: 'logs''stone'Ȗ'arrows'ǰȚȓȟȠȓȘșȬȥȖ
ȕțȎȥȓțȖȓȜȏȞȎȕȡȬȠȝȎȞȡȘșȬȥȕțȎȥȓțȖȓțȎȝȞȖȚȓȞlogs
= 5ȑȒȓȟțȎȥȎșȎȡȘȎȕȩȐȎȓȠȟȭȘșȬȥȕȎȠȓȚȕțȎȘȞȎȐȓțȟȠȐȎ
(= ȎȕȎȠȓȚȕțȎȥȓțȖȓǸșȬȥȖȖȕțȎȥȓțȖȭȚȜȑȡȠȏȩȠȪȝȞȓȒ
ȟȠȎȐșȓțȩȝȞȎȘȠȖȥȓȟȘȖșȬȏȩȚȖȠȖȝȎȚȖȒȎțțȩȣțȎȝȞȖ
ȚȓȞȘșȬȥȚȜȔȓȠȏȩȠȪȤȓșȩȚȥȖȟșȜȚȎȕțȎȥȓțȖȓ²ȟȠȞȜȘȜȗ
dzȒȖțȟȠȐȓțțȜȓȖȟȘșȬȥȓțȖȓȟȜȟȠȜȖȠȐȠȜȚȥȠȜȘșȬȥȠȎȏșȖ
ȤȩțȓȚȜȔȓȠȏȩȠȪȕțȎȥȓțȖȓȚnil.
ȅȠȜȏȩȝȜșȡȥȖȠȪȒȜȟȠȡȝȘȜȠȒȓșȪțȩȚȕțȎȥȓțȖȭȚȐțȡȠȞȖ
ȠȎȏșȖȤȩȡȘȎȔȖȝȓȞȓȚȓțțȡȬmyStuffȎȕȎȠȓȚȐȘȐȎȒȞȎȠ
țȩȣȟȘȜȏȘȎȣ[]ȘșȬȥȀȎȘȜȓȐȩȞȎȔȓțȖȓȐȓȞțȓȠȕțȎȥȓțȖȓ
ȠȎȏșȖȤȩȟȐȭȕȎțțȜȓȟȫȠȖȚȘșȬȥȜȚǻȎȝȞȖȚȓȞȒșȭȒȜȟȠȡ
ȝȎȘȕțȎȥȓțȖȬȠȎȏșȖȤȩȘȜȠȜȞȡȬȚȩȟȜȕȒȎșȖȐȜȏȜșȜȥȘȓ
/XDȐȐȓȒȖȟșȓȒȡȬȧȓȓ
lua> myStuff['logs']
5
lua> 'I have ' .. myStuff['stone'] .. ' stone.'
I have 4 stone.
lua> 'I need ' .. (12 - myStuff['arrows']) .. ' more
arrows to have a dozen.'
I need 2 more arrows to have a dozen.

ǽȓȞȐȎȭȟȠȞȜȘȎȘȜȒȎȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓȟȐȭȕȎțțȜȓȟ
ȘșȬȥȜȚ'log'ȫȠȜȥȖȟșȜ5ǽȜȟȘȜșȪȘȡȐȩȞȎȔȓțȖȓȐȩȥȖȟșȭ
ȓȠȕțȎȥȓțȖȓȓȑȜȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪȠȎȘȔȓȘȎȘȖșȬȏȜȓ
ȒȞȡȑȜȓȕțȎȥȓțȖȓțȎȝȞȖȚȓȞȝȞȖȘȜțȘȎȠȓțȎȤȖȖȟȠȞȜȘȖșȖ
ȝȞȖȐȩȝȜșțȓțȖȖȚȎȠȓȚȎȠȖȥȓȟȘȖȣȒȓȗȟȠȐȖȗ ȓȟșȖȫȠȜȕțȎ
ȥȓțȖȓȭȐșȭȓȠȟȭȥȖȟșȜȚ 

ĚčēĚĜĞČčėĔĢħĎĚēĎĜČĥČđĘĚĕĠğęĖĢĔđĕ
item['name']
OXDDWWHPSWWRLQGH[" DQLOYDOXH

ȅȠȜȏȩȫȠȎȜȦȖȏȘȎțȓȐȜȕțȖȘȎșȎȟșȓȒȡȓȠȖȟȝȜșȪȕȜȐȎȠȪ
ȖțȟȠȞȡȘȤȖȬifȖȡȏȓȒȖȠȪȟȭȥȠȜȝȓȞȓȚȓțțȜȗitemțȓȝȞȖ
ȟȐȜȓțȜȕțȎȥȓțȖȓnilȃȜȠȭȫȠȜȠȘȜȒȚȩȖțȓȏȡȒȓȚȖȟȝȜșȪ
ȕȜȐȎȠȪȐȫȠȜȗȑșȎȐȓȐȏȡȒȡȧȖȣȝȞȜȑȞȎȚȚȎȣȜțțȎȚȝȞȖȑȜ
ȒȖȠȟȭ
local item = turtle.getItemDetail(16)
if item ~= nil then
print(item['name'])
end

ǿȝȜȚȜȧȪȬȫȠȜȑȜȘȜȒȎȐȩȕȜȐitem['name']ȖȟȝȜșțȭȓȠ
ȟȭȠȜșȪȘȜȐȠȜȚȟșȡȥȎȓȓȟșȖȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗitemțȓ
ȞȎȐțȜ ~= nil.

ďėĚčČėĨęČīĔėĚĖČėĨęČīĚčėČĝĞĔ
ĎĔĐĔĘĚĝĞĔ
ȂȡțȘȤȖȭselectItem()ȒȜșȔțȎțȎȗȠȖȐȖțȐȓțȠȎȞȓȥȓȞȓ
ȝȎȦȘȖȏșȜȘȖșȖȝȞȓȒȚȓȠȖȚȭȘȜȠȜȞȜȑȜȟȜȜȠȐȓȠȟȠȐȡȓȠȟȠȞȜ
ȘȓȝȓȞȓȒȎȐȎȓȚȜȗȝȎȞȎȚȓȠȞȜȚnameȢȡțȘȤȖȖȂȡțȘȤȖȭȐ
ȟȠȞȜȘȓȜȏȨȭȐșȭȓȠșȜȘȎșȪțȡȬȝȓȞȓȚȓțțȡȬȟȖȚȓțȓȚitem.

138

DZǹǮǰǮ

ȋȠȎșȜȘȎșȪțȎȭȝȓȞȓȚȓțțȎȭȟȡȧȓȟȠȐȡȓȠȠȜșȪȘȜȐțȡȠȞȖ
ȢȡțȘȤȖȖselectItem()ȖțȓȚȜȔȓȠȏȩȠȪȖȟȝȜșȪȕȜȐȎțȎȐ
ȘȎȘȜȚșȖȏȜȒȞȡȑȜȚȚȓȟȠȓȘȜȒȎȝȞȜȑȞȎȚȚȩ
hare
7. function selectItem(name)
ɩɪɨɜɟɪɤɚɜɫɟɯɹɱɟɟɤɢɧɜɟɧɬɚɪɹ
9.
local item

ȀȩȡȔȓȐȟȠȞȓȥȎșȟȭȟȘșȬȥȓȐȩȚȟșȜȐȜȚlocalȐȞȎȕȒȓșȓ
«ǹȜȑȖȥȓȟȘȖȓȠȖȝȩȒȎțțȩȣªȑșȎȐȩțȜȠȩȓȧȓțȓȕțȎ
ȓȦȪȜȏȜȏșȎȟȠȖȐȖȒȖȚȜȟȠȖ. ǼȏșȎȟȠȪȐȖȒȖȚȜȟȠȖ²ȫȠȜȥȎȟȠȪ
ȝȞȜȑȞȎȚȚȩȐȘȜȠȜȞȜȗȚȜȔȓȠȖȟȝȜșȪȕȜȐȎȠȪȟȭȝȓȞȓȚȓțțȎȭ
ǰȭȕȩȘȓ/XDȝȞȓȒȡȟȚȜȠȞȓțȜȒȐȎȠȖȝȎȜȏșȎȟȠȖȐȖȒȖȚȜȟȠȖ
ȝȓȞȓȚȓțțȩȣȑșȜȏȎșȪțȎȭȖșȜȘȎșȪțȎȭ
ǽȓȞȓȚȓț ț ȩȓ Ȝȏ Ȩ ȭ Ȑșȓț ț ȩȓ Ȑ ȑșȜȏȎ ș ȪțȜȗ ȜȏșȎȟ Ƞ Ȗ
ȐȖȒȖȚȜȟȠȖȟȡȧȓȟȠȐȡȬȠȐțȓȘȎȘȜȗșȖȏȜȢȡțȘȤȖȖȖȒȜȟȠȡȝ
țȩȐȜȐȟȓȣȥȎȟȠȭȣȝȞȜȑȞȎȚȚȩȋȠȜȚȜȔȓȠȐȩȕȐȎȠȪȝȞȜȏșȓ
ȚȩȓȟșȖȠȩȏȡȒȓȦȪțȓȜȟȚȜȠȞȖȠȓșȪțȜȖȟȝȜșȪȕȜȐȎȠȪȖȚȭȠȎ
ȘȜȗȝȓȞȓȚȓțțȜȗȝȜȠȜȚȡȥȠȜȟȜȒțȜȗȟȠȜȞȜțȩȝȞȜȑȞȎȚȚȎ
ȏȡȒȓȠȝȜȚțȖȠȪȕțȎȥȓțȖȓȫȠȜȗȝȓȞȓȚȓțțȜȗȝȞȖȟȐȜȓțțȜȓȓȗ
ȐȒȞȡȑȜȚȚȓȟȠȓȟȒȞȡȑȜȗȟȠȜȞȜțȩȏȡȒȓȠȝȜȕȐȜșȭȠȪșȬȏȩȚ
ȢȡțȘȤȖȭȚȝȓȞȓȕȎȝȖȟȩȐȎȠȪȐȫȠȡȝȓȞȓȚȓțțȡȬțȜȐȩȓȕțȎȥȓ
țȖȭȅȠȜȏȩȠȎȘȖȣȝȞȜȏșȓȚțȓȐȜȕțȖȘȎșȜȚȜȔțȜȟȜȕȒȎȐȎȠȪ
ȝȓȞȓȚȓțțȩȓȐșȜȘȎșȪțȜȗȜȏșȎȟȠȖȐȖȒȖȚȜȟȠȖȀȎȘȖȓȝȓȞȓ
ȚȓțțȩȓȟȜȕȒȎȬȠȟȭȘȎȔȒȩȗȞȎȕȝȞȖȜȏȞȎȧȓțȖȖȘȢȡțȘȤȖȖ
ǸȜȑȒȎȝȓȞȓȚȓțțȎȭȜȏȨȭȐșȭȓȠȟȭșȜȘȎșȪțȜȜțȎȟȡȧȓȟȠȐȡȓȠ
ȠȜșȪȘȜȐțȡȠȞȖȢȡțȘȤȖȖȖȝȓȞȓȟȠȎȓȠȟȡȧȓȟȠȐȜȐȎȠȪȝȜȟșȓȓȓ
ȕȎȐȓȞȦȓțȖȭ
ǶȟȝȜșȪȕȡȭșȜȘȎșȪțȩȓȝȓȞȓȚȓțțȩȓȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪ
țȓȟȘȜșȪȘȜȝȓȞȓȚȓțțȩȣȟȜȒȖțȎȘȜȐȩȚȖȚȓțȓȚȓȟșȖȜțȖȏȡ
ȒȡȠȟȡȧȓȟȠȐȜȐȎȠȪȐȞȎȕțȩȣȜȏșȎȟȠȭȣȐȖȒȖȚȜȟȠȖǽȜȟȘȜșȪȘȡ
ȐȏȡȒȡȧȓȚȠȩȒȜȏȎȐȖȦȪȐȚȜȒȡșȪhareȏȜșȪȦȓȢȡțȘȤȖȗȚȩ
ȜȏȨȭȐȖȚȝȓȞȓȚȓțțȡȬitemșȜȘȎșȪțȜȠȜșȪȘȜȒșȭȢȡțȘȤȖȖ
selectItem()DzȎȔȓȓȟșȖȠȓȏȓȝȜțȎȒȜȏȖȠȟȭȝȓȞȓȚȓțțȎȭȘ
ȘȜȠȜȞȜȗȚȜȔțȜȝȜșȡȥȖȠȪȒȜȟȠȡȝȐȝȞȜȟȠȞȎțȟȠȐȓȐȟȓȗȝȞȜ
ȑȞȎȚȚȩȐȟȓȞȎȐțȜșȡȥȦȓȜȏȨȭȐșȭȠȪȝȓȞȓȚȓțțȩȓșȜȘȎșȪțȜ
ȐȘȎȔȒȜȗȢȡțȘȤȖȖȫȠȜȝȜȕȐȜșȖȠȖȕȏȓȔȎȠȪȝȞȜȏșȓȚ

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

139

ǽȓȞȓȚȓțțȩȓȖȟȝȜșȪȕȡȓȚȩȓȐȤȖȘșȓforȠȎȘȖȓȘȎȘȝȓȞȓ
ȚȓțțȎȭiȐȐȩȞȎȔȓțȖȖfor i = 1, 4 doȭȐșȭȬȠȟȭșȜ
ȘȎșȪțȩȚȖȝȓȞȓȚȓțțȩȚȖȐȤȖȘșȓforȋȠȖȝȓȞȓȚȓțțȩȓțȓ
ȏȡȒȡȠȟȡȧȓȟȠȐȜȐȎȠȪȐțȓȤȖȘșȎȠȎȘȔȓȘȎȘșȜȘȎșȪțȩȓȝȓȞȓ
ȚȓțțȩȓȢȡțȘȤȖȗțȓȏȡȒȡȠȟȡȧȓȟȠȐȜȐȎȠȪȐțȓȫȠȖȣȢȡțȘȤȖȗ

ěĚĔĝĖěĜđĐĘđĞČĝěĚĘĚĥĨĪ
ĢĔĖėČ.7:
ǽȜȟșȓȜȏȨȭȐșȓțȖȭȐȟȓȣȝȓȞȓȚȓțțȩȣȐȟȠȞȜȘȓȟȜȕȒȎȓȠ
ȟȭȓȧȓȜȒțȎȝȓȞȓȚȓțțȎȭȟȖȚȓțȓȚslotȘȜȠȜȞȎȭȭȐșȭȓȠȟȭ
șȜȘȎșȪțȜȗȒșȭȤȖȘșȎfor.
hare
10.
for slot = 1, 16 do
11.
item = turtle.getItemDetail(slot)
12.
if item ~= nil and item['name'] == name then
13.
turtle.select(slot)
14.
return true
15.
end
16.
end
17.
UHWXUQIDOVHɛɥɨɤɧɟɧɚɣɞɟɧ
19. end

ǽȓȞȓȚȓțțȎȭslotȐȐȩȞȎȔȓțȖȖfor slot = 1, 16 doțȓ
ȏȡȒȓȠȟȡȧȓȟȠȐȜȐȎȠȪȝȜȟșȓȕȎȐȓȞȦȓțȖȭȤȖȘșȎȠȓȝȜȟșȓȐȩ
ȝȜșțȓțȖȭȖțȟȠȞȡȘȤȖȖendȄȖȘșforȝȓȞȓȏȖȞȎȓȠȐȟȓțȜȚȓ
ȞȎȭȥȓȓȘȜȠȒȜǰțȡȠȞȖȤȖȘșȎȐȟȠȞȜȘȓȝȓȞȓȚȓțțȜȗ
itemȝȞȖȟȐȎȖȐȎȓȠȟȭȠȎȏșȖȥțȜȓȕțȎȥȓțȖȓȐȜȕȐȞȎȧȎȓȚȜȓ
ȢȡțȘȤȖȓȗturtle.getItemDetail(slot)ǸȜȒȐȟȠȞȜȘȓ
ȝȞȜȐȓȞȭȓȠȥȠȜȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗitemțȓȞȎȐțȜnilȎ
ȠȎȘȔȓȝȞȜȐȓȞȭȓȠȟȜȐȝȎȒȎȓȠșȖȖȚȭȝȞȓȒȚȓȠȎȏșȜȘȎȟȝȎȞȎ
ȚȓȠȞȜȚnameǿȜȐȝȎȒȓțȖȓȜȕțȎȥȎȓȠțȎȣȜȔȒȓțȖȓȖȟȘȜȚȜȑȜ
ȫșȓȚȓțȠȎǿȠȞȜȘȎȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrueȠȎȘȖȚȜȏ
ȞȎȕȜȚȟȜȜȏȧȎȭȝȞȜȑȞȎȚȚȓȥȠȜȢȡțȘȤȖȭselectItem()Ȑȩ
ȒȓșȖșȎȭȥȓȗȘȡȟȖȟȘȜȚȩȚȝȞȓȒȚȓȠȜȚȏșȜȘȜȚ
ǶțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȘȜțȟȠȞȡȘȤȖȬif
ȎȖțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȐȓȟȪȤȖȘșdzȟșȖ

140

DZǹǮǰǮ

ȖȟȝȜșțȓțȖȓȟȜȐȓȞȦȖșȜȐȟȓȖȠȓȞȎȤȖȖȤȖȘșȎforȖțȓȜȏțȎ
ȞȡȔȖșȜȝȞȓȒȚȓȠȏșȜȘȟȟȜȜȠȐȓȠȟȠȐȡȬȧȖȚȖȚȓțȓȚȢȡțȘ
ȤȖȭȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalse ȘȜȒȐȟȠȞȜȘȓ ǻȎȘȜțȓȤ
ȖțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȢȡțȘȤȖȬ

ĎħčĚĜěğĝĞĚĕīģđĕĖĔĔęĎđęĞČĜī
ȂȡțȘȤȖȭselectEmptySlot()ȝȩȠȎȓȠȟȭțȎȗȠȖȝȡȟȠȡȬȭȥȓȗ
ȘȡȐȖțȐȓțȠȎȞȓǰȟȠȞȓȠȖȐȝȓȞȐȡȬȝȡȟȠȡȬȭȥȓȗȘȡȢȡțȘȤȖȭ
ȐȩȏȖȞȎȓȠȓȓȝȞȖȝȜȚȜȧȖȐȩȕȜȐȎturtle.select()ȖȐȜȕȐȞȎ
ȧȎȓȠȕțȎȥȓțȖȓtruedzȟșȖȖțȐȓțȠȎȞȪȥȓȞȓȝȎȦȘȖȝȜșțȜ
ȟȠȪȬȕȎȝȜșțȓțȢȡțȘȤȖȭȐȓȞțȓȠȕțȎȥȓțȖȓfalseǸȎȘȖselectItem()ȢȡțȘȤȖȭselectEmptySlot()ȟȜȒȓȞȔȖȠȤȖȘș
forȘȜȠȜȞȩȗȝȞȜȐȓȞȭȓȠȭȥȓȗȘȖȟȝȜȄȖȘșforȐȫȠȜȗ
ȢȡțȘȤȖȖȠȎȘȔȓȜȏȨȭȐșȭȓȠȝȓȞȓȚȓțțȡȬslotȐȟȠȞȜȘȓ
ȋȠȜȐȜȕȚȜȔțȜȝȜȟȘȜșȪȘȡȫȠȎȝȓȞȓȚȓțțȎȭslotȖȝȓȞȓȚȓț
țȎȭslotȜȏȨȭȐșȓțțȎȭȐȟȠȞȜȘȓȟȡȧȓȟȠȐȡȬȠȐȞȎȕțȩȣ
șȜȘȎșȪțȩȣȜȏșȎȟȠȭȣȐȖȒȖȚȜȟȠȖ
hare
25. function selectEmptySlot()
26
ɩɟɪɟɛɢɪɚɧɢɟɜɫɟɯɹɱɟɟɤ
28.
for slot = 1, 16 do
29.
if turtle.getItemCount(slot) == 0 then
30.
turtle.select(slot)
31.
return true
32.
end
33.
end
UHWXUQIDOVHɫɜɨɛɨɞɧɨɝɨɦɟɫɬɚɧɟɬ
35. end

ǰțȡȠȞȖȤȖȘșȎȘȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬturtle.
getItemCount()ȥȠȜȏȩȝȞȜȐȓȞȖȠȪȞȎȐțȜșȖțȡșȬȘȜșȖȥȓȟȠȐȜ
ȝȞȓȒȚȓȠȜȐȏșȜȘȜȐȐȝȞȜȐȓȞȭȓȚȜȗȭȥȓȗȘȓǸȜȑȒȎȘȜȒȐȟȠȞȜȘȓ
țȎȣȜȒȖȠȝȓȞȐȡȬȝȡȟȠȡȬȭȥȓȗȘȡȘȜȒȐȟȠȞȜȘȓȐȩȏȖȞȎȓȠ
ȫȠȡȭȥȓȗȘȡȎȘȜȒȐȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrue.
dzȟșȖȐȩȝȜșțȓțȩȐȟȓȖȠȓȞȎȤȖȖȤȖȘșȎforȎȟȐȜȏȜȒțȎȭ
ȭȥȓȗȘȎțȓȜȏțȎȞȡȔȓțȎȘȜȒȐȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠȕțȎȥȓ
țȖȓfalse.

ǿǼǵDzǮǻǶdzǺǼDzȁǹdzǷDzǹȍǺǻǼDZǼǸǾǮȀǻǼDZǼǶǿǽǼǹȊǵǼǰǮǻǶȍǸǼDzǮ

141

ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"ĘĚĐğėĨ
ĞČęĢđĎČėĨęħġĐĎĔĒđęĔĕ

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

ģĞĚĘħğēęČėĔ
ǰȫȠȜȗȑșȎȐȓȠȩȡȕțȎșȘȎȘȟȜȕȒȎȐȎȠȪȚȜȒȡșȖȖȟȐȜȖȟȜȏ
ȟȠȐȓțțȩȓȢȡțȘȤȖȖȝȞȖȝȜȚȜȧȖȖțȟȠȞȡȘȤȖȖfunction.
ȂȡțȘȤȖȖȚȜȑȡȠȖȚȓȠȪȐȣȜȒțȩȓȒȎțțȩȓȖșȖȝȎȞȎȚȓȠȞȩȘȜ
ȠȜȞȩȓȝȓȞȓȒȎȬȠȟȭȐȘȎȥȓȟȠȐȓȎȞȑȡȚȓțȠȜȐȂȡțȘȤȖȖȠȎȘȔȓ
ȚȜȑȡȠȐȜȕȐȞȎȧȎȠȪȕțȎȥȓțȖȓȝȞȜȑȞȎȚȚȓȘȜȠȜȞȎȭȓȓȐȩȕȐȎșȎ
ǽȞȖȘȎȔȒȜȚȐȩȕȜȐȓȢȡțȘȤȖȖȟȜȕȒȎȓȠȟȭțȜȐȎȭșȜȘȎșȪ
țȎȭȜȏșȎȟȠȪȐȖȒȖȚȜȟȠȖǸȜȑȒȎȢȡțȘȤȖȭȕȎȐȓȞȦȎȓȠȟȭȫȠȎ
ȜȏșȎȟȠȪȐȖȒȖȚȜȟȠȖȝȓȞȓȟȠȎȓȠȟȡȧȓȟȠȐȜȐȎȠȪȐȚȓȟȠȓȟȜȐȟȓ
ȚȖȝȓȞȓȚȓțțȩȚȖȐțȓȗȋȠȜȕțȎȥȖȠȥȠȜȝȓȞȓȚȓțțȩȓȚȜȑȡȠ
ȖȚȓȠȪȜȒțȜȖȠȜȔȓȖȚȭȓȟșȖȜțȖȜȏȨȭȐșȭȬȠȟȭȐȞȎȕțȩȣ
ȜȏșȎȟȠȭȣȐȖȒȖȚȜȟȠȖǽȓȞȓȚȓțțȎȭȤȖȘșȎforȠȎȘȔȓȟȡȧȓ
ȟȠȐȡȬȠȠȜșȪȘȜȐȟȐȜȓȗșȜȘȎșȪțȜȗȜȏșȎȟȠȖȐȖȒȖȚȜȟȠȖȐțȡ
ȠȞȖȤȖȘșȎȂȡțȘȤȖȖȠȐȜȓȑȜȚȜȒȡșȭhareȐȩȕȩȐȎȬȠȒȞȡȑȖȓ
ȢȡțȘȤȖȖ&RPSXWHU&UDIW: turtle.select()turtle.getItemDetail()Ȗturtle.getItemCount().
ȀȩȚȜȔȓȦȪȞȎȕȚȓȧȎȠȪȢȡțȘȤȖȖȘȜȠȜȞȩȓȝȖȦȓȦȪȐțȡ
ȠȞȖȚȜȒȡșȓȗȥȠȜȏȩȒȞȡȑȖȓȝȞȜȑȞȎȚȚȩȚȜȑșȖȖȣȖȟȝȜșȪȕȜ
ȐȎȠȪǿȜȕȒȎțȖȓȟȜȏȟȠȐȓțțȩȣȢȡțȘȤȖȗȖȚȜȒȡșȓȗ²ȫȠȜȚȓ
ȠȜȒȝȞȜȑȞȎȚȚȖȞȜȐȎțȖȭȘȜȠȜȞȩȗȝȜȕȐȜșȭȓȠȞȎȕȞȎȏȎȠȩȐȎȠȪ
ȏȜșȓȓȟșȜȔțȩȓȝȞȜȑȞȎȚȚȩǰȑșȎȐȓȠȩȏȡȒȓȦȪȖȟȝȜșȪȕȜ
ȐȎȠȪȚȜȒȡșȪhareȝȞȖȟȜȕȒȎțȖȖșȓȟȜȢȓȞȚȩțȎȘȜȠȜȞȜȗȐȩ
ȞȎȧȓțțȩȓȒȓȞȓȐȪȭȏȡȒȡȠȐȩȞȡȏȎȠȪȟȭȥȓȞȓȝȎȦȘȎȚȖȐȎȐȠȜ
ȚȎȠȖȥȓȟȘȜȚȞȓȔȖȚȓ

8
ēČěğĝĖČĎĞĚĘČĞĔēĔĜĚĎČęęĚĕ
ėđĝĚĠđĜĘħ
ǰȑșȎȐȓȚȩȕȎȝȞȜȑȞȎȚȚȖȞȜȐȎșȖȥȓȞȓȝȎȦ
Șȡ țȎ ȞȡȏȘȡ ȒȓȞȓȐȪȓȐ țȜ ȝȓȞȓȒ ȕȎȝȡȟȘȜȚ
ȝȞȜȑȞȎȚȚȩȖȑȞȜȘȡȝȞȖȣȜȒȖșȜȟȪȐȞȡ ȥțȡȬ
ȟȠȎȐȖȠȪȥȓȞȓȝȎȦȘȡȝȓȞȓȒȘȎȔȒȩȚȒȓȞȓȐȜȚ
ȁȟȠȎțȜȐȘȎȥȓȞȓȝȎȦȘȖȝȓȞȓȒȘȎȔȒȩȚȒȓȞȓȐȜȚ
ȘȜȠȜȞȜȓȠȩȣȜȥȓȦȪȟȞȡȏȖȠȪțȓțȎȚțȜȑȜȫȢȢȓȘ
ȠȖȐțȓȓȥȓȚȞȡȏȖȠȪȒȓȞȓȐȪȭȐȞȡȥțȡȬǻȜȞȡȥțȜȗȠȞȡȒ
ȚȜȔțȜȖȟȘșȬȥȖȠȪȖȝȜșțȜȟȠȪȬȎȐȠȜȚȎȠȖȕȖȞȜȐȎȠȪȐȓȟȪ
ȝȞȜȤȓȟȟȝȞȜȖȕȐȜȒȟȠȐȎȒȞȓȐȓȟȖțȩȎȕȎȜȒțȜȕȎȝȞȜȑȞȎȚȚȖ
ȞȜȐȎȠȪȥȓȞȓȝȎȦȘȡțȎȝȜȟȎȒȘȡȟȎȔȓțȤȓȐȖȐȩȞȎȧȖȐȎțȖȓ
ȒȓȞȓȐȪȓȐȀȎȘȎȭȥȓȞȓȝȎȦȘȎȏȡȒȓȠȐȩȟȎȔȖȐȎȠȪȟȎȔȓțȓȤ
ȟȞȡȏȎȠȪȒȓȞȓȐȜȘȜȑȒȎȜțȜȐȩȞȎȟȠȓȠȖȟȎȔȎȠȪțȜȐȩȗȟȎȔȓ
țȓȤǰȓȟȪȫȠȜȠȝȞȜȤȓȟȟȜțȎȒȜșȔțȎȝȜȐȠȜȞȭȠȪȏȓȕȘȎȘȜȑȜ
șȖȏȜȐȚȓȦȎȠȓșȪȟȠȐȎȟȜȟȠȜȞȜțȩȥȓșȜȐȓȘȎȅȠȜȏȩȟȒȓșȎȠȪ
ȫȠȜȚȩțȎȝȖȦȓȚȝȞȜȑȞȎȚȚȡȝȜȒțȎȕȐȎțȖȓȚfarmtrees.
ȀȜȑȒȎȠȩȟȚȜȔȓȦȪțȎȟȠȞȜȖȠȪțȓȟȘȜșȪȘȜȥȓȞȓȝȎȦȓȘțȎȐȩ
ȞȎȧȖȐȎțȖȓșȓȟȎȖȕȎȑȜȠȜȐȘȡȒȞȓȐȓȟȖțȩȘȎȘȝȜȘȎȕȎțȜțȎ
ȞȖȟ
ǺȩȐȜȕȪȚȓȚȚȜȒȡșȪ hare ȖȕȑșȎȐȩ ȥȠȜȏȩȝȜȐȠȜȞțȜ
ȖȟȝȜșȪȕȜȐȎȠȪȡȔȓțȎȝȖȟȎțțȩȗȘȜȒȖȝȞȜȑȞȎȚȚȡchoptree

ǵǮǽȁǿǸǮǰȀǼǺǮȀǶǵǶǾǼǰǮǻǻǼǷǹdzǿǼȂdzǾǺȉ

143

ȖȕȑșȎȐȩ ȀȎȘȡțȎȟțȓȏȡȒȓȠțȓȜȏȣȜȒȖȚȜȟȠȖȝȓȞȓȝȖȟȩ
ȐȎȠȪȐȓȟȪȫȠȜȠȘȜȒ

ˀ̛̭͘ϴ͘ϭ͘ʤ̴̸̨̨̨̨̡̛̛̛̛̯̥̯̬̦̦̣̖̭̖̬̥͕̭̣̱̙̖̥̖̬̖̪̹̥̏̌̏̌̌́̌̍̏̌̌́̌̌̚
̨̨̛̪̱̪̬̣̖̦̖̥̪̬̬̥̥̼̔̌̏̐̌farmtrees

ěĜĚđĖĞĔĜĚĎČęĔđěĜĚďĜČĘĘħ
ėđĝĚĠđĜĘħ
ǶȕȏȎȐȖȚȟȭȜȠțȓȜȏȣȜȒȖȚȜȟȠȖȟȠȎȐȖȠȪȥȓȞȓȝȎȦȘȡȝȓȞȓȒȘȎȔ
ȒȩȚȒȓȞȓȐȜȚǼȟȠȎȐȖȚȓȓțȎȜȒțȜȚȚȓȟȠȓȖȕȎȝȞȜȑȞȎȚȚȖȞȡ
ȓȚȟȎȚȜȟȠȜȭȠȓșȪțȜȟȎȔȎȠȪȖȐȩȞȎȧȖȐȎȠȪȟȎȔȓțȤȩȎȠȎȘȔȓ
ȖȟȝȜșȪȕȜȐȎȠȪȘȜȟȠțȡȬȚȡȘȡȥȠȜȏȩȡȟȘȜȞȖȠȪȖȣȞȜȟȠǵȎȠȓȚ
ȘȎȘȠȜșȪȘȜȟȎȔȓțȓȤȝȞȓȐȞȎȠȖȠȟȭȐȒȓȞȓȐȜȥȓȞȓȝȎȦȘȎȟȞȡȏȖȠ
ȓȑȜȖȝȜȚȓȟȠȖȠȕȎȑȜȠȜȐșȓțțȡȬȒȞȓȐȓȟȖțȡȐȟȡțȒȡȘ
ǰȜȠțȓȟȘȜșȪȘȜȦȎȑȜȐȘȜȠȜȞȩȓȒȜșȔțȎȐȩȝȜșțȭȠȪȝȞȜ
ȑȞȎȚȚȎșȓȟȜȕȎȑȜȠȜȐȘȖ
1. ȁȏȓȒȖȠȪȟȭȥȠȜȚȜȒȡșȪhareȖȝȞȜȑȞȎȚȚȎchoptree
ȟȡȧȓȟȠȐȡȬȠ
2. ǰȩȏȞȎȠȪȟȎȔȓțȤȩȒȓȞȓȐȪȓȐȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖ
ǵȎȘȞȩȠȪȝȞȜȑȞȎȚȚȡȓȟșȖȟȎȔȓțȤȓȐțȓȠ
3. ǽȜȟȎȒȖȠȪȟȎȔȓțȓȤ
4. ǽȜȟȎȔȓțțȩȗȟȎȔȓțȓȤȝȓȞȖȜȒȖȥȓȟȘȖȡȒȜȏȞȭȠȪȘȜȟȠțȜȗ
ȚȡȘȜȗȝȜȘȎȜțțȓȐȩȞȎȟȠȓȠ
5. ǵȎȝȡȟȠȖȠȪȝȞȜȑȞȎȚȚȡchoptree.

144

DZǹǮǰǮ

6. ǽȜȚȓȟȠȖȠȪȟȜȏȞȎțțȡȬȒȞȓȐȓȟȖțȡȐȟȡțȒȡȘ
7. ǽȜȐȠȜȞȖȠȪȐȓȟȪȝȞȜȤȓȟȟ
ȅȓȞȓȝȎȦȘȎȏȡȒȓȠȝȜȐȠȜȞȭȠȪȐȓȟȪȝȞȜȤȓȟȟȒȜȠȓȣȝȜȞȝȜȘȎ
țȓȕȎȘȜțȥȎȠȟȭȟȎȔȓțȤȩȒȓȞȓȐȪȓȐȖșȖȘȜȟȠțȎȭȚȡȘȎȀȓȝȓȞȪ
ȘȜȑȒȎȚȩȕțȎȓȚȥȠȜȒȜșȔȓțȒȓșȎȠȪȘȜȒȒȎȐȎȗțȎȝȖȦȓȚ
ȓȑȜ

ĖĚĐěĜĚďĜČĘĘħ.):5 0 then
41.
print('All furnaces full. Sleeping...')
RVVOHHS  ɩɚɭɡɚɜɦɢɧɭɬ

ǿȀǾǼǶȀdzǹȊǿȀǰǼDZdzǻdzǾǮȀǼǾǮǯȁǹȉǴǻǶǸǮ

165

43.
end
44.
end
45. end

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȝȜȟșȓȐȐȜȒȎȐȟȓȣȖțȟȠȞȡȘȤȖȗǻȎ
ȔȎȐȘșȎȐȖȦȡCtrlȜȠȘȞȜȗȚȓțȬǰȩȏȓȞȖȝȡțȘȠ[Save]Ȗ
țȎȔȚȖȘșȎȐȖȦȡEnterǵȎȠȓȚȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎțȎȔȎȐ
ȘșȎȐȖȦȡCtrlȐȩȏȞȎȐȝȡțȘȠ[Exit]ȖțȎȔȎȐȘșȎȐȖȦȡEnter.
ǸȞȜȚȓȠȜȑȜȠȓȏȓȝȜțȎȒȜȏȖȠȟȭȚȜȒȡșȪhareȘȜȠȜȞȩȗ
ȚȜȔțȜȟȘȎȥȎȠȪȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin get wwzvaKuW hare.

ēČěğĝĖěĜĚďĜČĘĘħ+7*516-:
ǿȜȕȒȎȐȑȓțȓȞȎȠȜȞȏȡșȩȔțȖȘȎȟȝȭȠȪȬȝȓȥȎȚȖȡȟȠȎțȜȐȖ
ȥȓȞȓȝȎȦȘȡȝȜȐȓȞțȡȐȓȓșȖȤȓȐȜȗȟȠȜȞȜțȜȗȘȏșȜȘȡȏȡșȩȔ
țȖȘȎȖȕȎȝȡȟȠȖȝȞȜȑȞȎȚȚȡcobminerȅȓȞȓȝȎȦȘȎțȎȥțȓȠ
ȒȜȏȩȐȎȠȪȏȡșȩȔțȖȘȝȜȘȎțȓțȎȏȓȞȓȠȟȠȓȘȐȏșȜȘȎȘȜȠȜ
ȞȩȗȕȎȠȓȚȕȎȑȞȡȕȖȠȐȝȓȥȖǽȜȘȎȠȩțȓȒȜȏȓȞȓȦȪȟȭȒȜȑșȎ
ȐȩȖțȓțȎȝȖȦȓȦȪȝȞȜȑȞȎȚȚȡbrickcrafterȕȎȑȞȡȔȎȠȪ
ȠȜȝșȖȐȜȐȝȓȥȖȖȖȕȐșȓȘȎȠȪȖȕțȖȣȝȓȞȓȝșȎȐșȓțțȩȓȘȎ
ȚȓțțȩȓȏșȜȘȖȝȞȖȒȓȠȟȭȐȞȡȥțȡȬȅȠȜȏȩȝȜșȡȥȖȠȪȠȜȝșȖȐȜ
ȒșȭȝȓȥȓȗȝȞȖȒȓȠȟȭȏȞȎȠȪȏșȜȘȖȒȞȓȐȓȟȖțȩȡȥȓȞȓȝȎȦȓȘ
șȓȟȜȞȡȏȜȐȖȝȓȞȓȔȖȑȎȠȪȫȠȖȏșȜȘȖȐȡȑȜșȪȐȜȠȒȓșȪțȩȣȝȓ
ȥȎȣDzȎȐȎȗȝȜȒȞȜȏțȜȞȎȟȟȚȜȠȞȖȚȘȎȔȒȡȬȥȎȟȠȪȝȞȜȑȞȎȚȚȩ
cobminer.
dzȟșȖȝȞȖȓȓȕȎȝȡȟȘȓȐȜȕțȖȘȎȬȠȜȦȖȏȘȖȠȧȎȠȓșȪțȜ
ȟȞȎȐțȖȟȐȜȗȘȜȒȟșȖȟȠȖțȑȜȚȐȫȠȜȗȘțȖȑȓȚȜȔȓȠȏȩȠȪȡ
ȠȓȏȭȐȜȕțȖȘșȖȜȝȓȥȎȠȘȖdzȟșȖȜȝȓȥȎȠȜȘțȓȠțȜȝȞȜȑȞȎȚȚȎ
ȐȟȓȞȎȐțȜțȓȞȎȏȜȠȎȓȠȡȒȎșȖȢȎȗșȐȩȝȜșțȖȐȘȜȚȎțȒȡdelete cobminerȎȕȎȠȓȚȕȎȑȞȡȕȖȘȜȒȕȎțȜȐȜȐȩȝȜșțȖȐȘȜ
ȚȎțȒȡpastebin get YhvSiw7e cobminer.

ęČĝĞĜĚĕĖČěĜĚďĜČĘĘħ
ĔĐĚčČĎėđęĔđĖĚęĝĞČęĞ
ǽȓȞȐȩȓȒȐȓȟȠȞȜȘȖȝȞȜȑȞȎȚȚȩȟȜȒȓȞȔȎȠȜȏȩȥțȩȗȘȜȚȚȓț
ȠȎȞȖȗȘȜȠȜȞȩȗȜȝȖȟȩȐȎȓȠȥȠȜȫȠȜȕȎȝȞȜȑȞȎȚȚȎ

166

DZǹǮǰǮ

cobminer
>>ɉɪɨɝɪɚɦɦɚɝɟɧɟɪɚɬɨɪɚɛɭɥɵɠɧɢɤɚɗɥɚɋɜɟɣɝɚɪɬɚ
Ⱦɨɛɵɱɚɛɭɥɵɠɧɢɤɚɫɩɨɦɨɳɶɸɝɟɧɟɪɚɬɨɪɚɱɟɪɟɩɚɲɤɚɢɡ
2]]
3.
RVORDG$3, KDUH ɡɚɝɪɭɡɤɚɦɨɞɭɥɹKDUH
5. local numToDrop

ǸȜȒȐȟȠȞȜȘȓȕȎȑȞȡȔȎȓȠȚȜȒȡșȪhareȘȜȠȜȞȩȗȝȞȜ
ȑȞȎȚȚȎȟȚȜȔȓȠȐȩȕȐȎȠȪȟȝȜȚȜȧȪȬȢȡțȘȤȖȖhare.selectItem()ǰȟȠȞȜȘȓȜȏȨȭȐșȭȓȠȟȭȝȓȞȓȚȓțțȎȭȟȖȚȓțȓȚnumToDropȘȜȠȜȞȎȭȏȡȒȓȠȖȟȝȜșȪȕȜȐȎȠȪȟȭȝȜȕȔȓ
ǰȟȠȞȜȘȓȜȏȨȭȐșȭȓȠȟȭȝȓȞȓȚȓțțȎȭNUM _ FURNACESȘȜ
ȠȜȞȎȭȟȜȒȓȞȔȖȠȤȓșȜȓȥȖȟșȜȟȜȜȠȐȓȠȟȠȐȡȬȧȓȓȘȜșȖȥȓȟȠȐȡ
ȝȓȥȓȗȞȎȟȝȜșȜȔȓțțȩȣȕȎȥȓȞȓȝȎȦȘȜȗ
cobminer
6. local NUM_FURNACES = 5

ǰțȎȦȓȚȝȞȖȚȓȞȓȝȓȥȓȗȝȭȠȪțȜȠȩȚȜȔȓȦȪȡȟȠȎțȜȐȖȠȪ
ȖȣȟȘȜșȪȘȜȕȎȣȜȥȓȦȪǰșȬȏȜȚȟșȡȥȎȓȝȓȞȓȚȓțțȜȗNUM _
FURNACESȟșȓȒȡȓȠȝȞȖȟȐȜȖȠȪȕțȎȥȓțȖȓȞȎȐțȜȓȘȜșȖȥȓȟȠȐȡ
ȡȟȠȎțȜȐșȓțțȩȣȝȓȥȓȗ.
ǶȚȭȝȓȞȓȚȓțțȜȗNUM _ FURNACES ȡȘȎȕȎțȜȝȞȜȝȖȟțȩȚȖ
ȏȡȘȐȎȚȖȝȜȠȜȚȡȥȠȜȫȠȜȢȖȘȟȖȞȜȐȎțțȎȭȝȓȞȓȚȓțțȎȭțȎ
ȕȩȐȎȓȚȎȭȘȜțȟȠȎțȠȜȗȋȠȜȕțȎȥȖȠȥȠȜȓȓȕțȎȥȓțȖȓțȓȖȕ
ȚȓțȭȓȠȟȭȐȝȞȜȤȓȟȟȓȖȟȝȜșțȓțȖȭȝȞȜȑȞȎȚȚȩǵȎȝȖȟȪȖȚȓț
ȘȜțȟȠȎțȠȐȐȓȞȣțȓȚȞȓȑȖȟȠȞȓ²ȫȠȜȝȞȜȟȠȜȝȞȎȐȖșȜȜȢȜȞȚșȓ
țȖȭǸȜțȟȠȎțȠȩ²ȟȎȚȖȝȜȟȓȏȓȜȏȩȥțȩȓȝȓȞȓȚȓțțȩȓȎȖȚȭ
ȝȞȜȝȖȟțȩȚȖȏȡȘȐȎȚȖȝȞȜȟȠȜțȎȝȜȚȖțȎȓȠȥȠȜțȓȟșȓȒȡȓȠ
ȝȖȟȎȠȪȘȜȒȘȜȠȜȞȩȗȖȕȚȓțȭȓȠȕțȎȥȓțȖȓȫȠȜȗȝȓȞȓȚȓțțȜȗ
ǶȟȝȜșȪȕȜȐȎțȖȓȝȓȞȓȚȓțțȜȗȕțȎȥȓțȖȓȘȜȠȜȞȜȗțȖȘȜȑȒȎțȓ
ȚȓțȭȓȠȟȭȚȜȔȓȠȝȜȘȎȕȎȠȪȟȭȟȠȞȎțțȩȚțȜȘȜțȟȠȎțȠȩȒȓșȎ
ȬȠȘȜȒȏȜșȓȓȝȜțȭȠțȩȚȖȡȝȞȜȧȎȬȠȐțȓȟȓțȖȓȖȕȚȓțȓțȖȗȐ
ȏȡȒȡȧȓȚ
ǿȚȜȠȞȖDzȜȝȡȟȠȖȚȐȘȜȒȓțȡȔțȜȡȘȎȕȎȠȪȘȜșȖȥȓȟȠȐȜ
ȝȓȥȓȗǻȜȓȟșȖȠȩȖȟȝȜșȪȕȡȓȦȪȥȖȟșȜȐȚȓȟȠȜȘȜțȟȠȎțȠȩȐȜ
ȐȟȓȚȘȜȒȓȎȕȎȠȓȚȖȕȚȓțȖȦȪȘȜșȖȥȓȟȠȐȜȝȓȥȓȗȠȓȏȓȝȞȖ
ȒȓȠȟȭȜȏțȜȐșȭȠȪȐȟȓȐȣȜȔȒȓțȖȭȑȒȓȖȟȝȜșȪȕȡȓȠȟȭȫȠȜȥȖȟ
șȜdzȟșȖȔȓȖȟȝȜșȪȕȜȐȎȠȪȘȜțȟȠȎțȠȡȠȖȝȎNUM _ FURNACES

ǿȀǾǼǶȀdzǹȊǿȀǰǼDZdzǻdzǾǮȀǼǾǮǯȁǹȉǴǻǶǸǮ

167

ȠȜȘȜȒțȓțȡȔțȜȜȏțȜȐșȭȠȪ³ȒȜȟȠȎȠȜȥțȜȖȕȚȓțȖȠȪȕțȎȥȓ
țȖȓȐȖțȟȠȞȡȘȤȖȖȝȞȖȟȐȎȖȐȎțȖȭ ȠȓȜȒțȡȟȠȞȜȘȡȘȜȒȎȑȒȓ
ȠȩȝȞȖȟȐȎȖȐȎȓȦȪȘȜțȟȠȎțȠȓȕțȎȥȓțȖȓ ȘȜȠȜȞȎȭȐțȎȦȓȚ
ȟșȡȥȎȓțȎȣȜȒȖȠȟȭȐȟȠȞȜȘȓǸȜțȟȠȎțȠȩȒȓșȎȬȠȘȜȒȝȜțȭȠ
țȩȚȖȡȝȞȜȧȎȬȠȓȑȜȖȕȚȓțȓțȖȓ

ĐĚčħģČčğėħĒęĔĖČĔēďđęđĜČĞĚĜČ
ǿȜȟȠȞȜȘȖțȎȥȖțȎȓȠȟȭȤȖȘșwhileȋȠȜȜȟțȜȐțȜȗȤȖȘș
ȝȞȜȑȞȎȚȚȩȐȘȜȠȜȞȜȚȥȓȞȓȝȎȦȘȎȒȜȏȩȐȎȓȠȏȡșȩȔțȖȘȝȓ
ȞȓȚȓȧȎȓȠȟȭȐȒȜșȪȝȓȥȓȗȖȕȎȑȞȡȔȎȓȠȏȡșȩȔțȖȘȐȝȓȥȖ
cobminer
8. print('Starting mining program...')
9. while true do
ɞɨɛɵɱɚɛɭɥɵɠɧɢɤɚ
11.
if turtle.detect() then
12.
print('Cobblestone detected. Mining...')
WXUWOHGLJ ɞɨɛɵɱɚɛɭɥɵɠɧɢɤɚ

ǽȓȞȐȎȭȥȎȟȠȪȤȖȘșȎȜȠȐȓȥȎȬȧȎȭȕȎȒȜȏȩȥȡȏȡșȩȔ
țȖȘȎțȎȥȖțȎȓȠȟȭȐȟȠȞȜȘȓȂȡțȘȤȖȭturtle.detect()
ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrueȓȟșȖȏșȜȘȏȡșȩȔțȖȘȎțȎȣȜ
ȒȖȠȟȭȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗǰȫȠȜȚȟșȡȥȎȓȝȞȜȑȞȎȚȚȎȐȩȐȜ
ȒȖȠȟȜȜȏȧȓțȖȓ'Cobblestone detected. Mining...'Ȗ
ȐȩȕȩȐȎȭȢȡțȘȤȖȬturtle.dig()ȐȟȠȞȜȘȓȒȜȏȩȐȎȓȠȏȡ
șȩȔțȖȘ
ǻȜȓȟșȖȏȡșȩȔțȖȘȎțȓȠȝȜȠȜȚȡȥȠȜȜțȓȧȓțȓȡȟȝȓșȜȏ
ȞȎȕȜȐȎȠȪȟȭȝȜȟșȓȒȜȏȩȥȖȏșȜȘȎȢȡțȘȤȖȭturtle.detect()
ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseȀȜȑȒȎȡȟșȜȐȖȓȖțȟȠȞȡȘȤȖȖif
ȝȞȖțȖȚȎȓȠȕțȎȥȓțȖȓfalseȖȐȩȝȜșțȭȓȠȟȭȏșȜȘȘȜȒȎȝȜȟșȓ
ȖțȟȠȞȡȘȤȖȖelseȞȎȟȝȜșȜȔȓțțȜȗȐȟȠȞȜȘȓ
cobminer
14.
else
15.
print('No cobblestone. Sleeping...')
RVVOHHS  ɩɚɭɡɚɜɩɨɥɫɟɤɭɧɞɵ
17.
end

ȋȠȜȠȘȜȒȜȠȜȏȞȎȔȎȓȠȟȜȜȏȧȓțȖȓ'No cobblestone.
Sleeping...'ȖȐȩȕȩȐȎȓȠȢȡțȘȤȖȬos.sleep(0.5)ȒșȭȝȞȖ

168

DZǹǮǰǮ

ȜȟȠȎțȜȐȘȖȖȟȝȜșțȓțȖȭȝȞȜȑȞȎȚȚȩțȎȝȜșȟȓȘȡțȒȩȥȓȑȜȒȜ
ȟȠȎȠȜȥțȜȒșȭȢȜȞȚȖȞȜȐȎțȖȭțȜȐȜȑȜȏșȜȘȎǼțȏȡȒȓȠȒȜȏȩȠ
ȘȜȑȒȎȝȞȜȑȞȎȚȚȎȐȜȕȜȏțȜȐȖȠȞȎȏȜȠȡǸȜȑȒȎȥȓȞȓȝȎȦȘȎțȎ
ȏȓȞȓȠȝȜșțȩȗȟȠȓȘȏȡșȩȔțȖȘȎ ȏșȜȘȎ ȓȗȏȡȒȓȠțȡȔțȜ
ȝȓȞȓȝșȎȐȖȠȪȓȑȜȐȝȓȥȎȣ

ĎēČĔĘĚĐđĕĝĞĎĔđĝěđģČĘĔ
ǶțȠȓȞȢȓȗȟȝȓȥȖȟȜȒȓȞȔȖȠȠȞȖȭȥȓȗȘȖȠȜȝșȖȐțȡȬȒșȭ
ȕȎȑȞȡȕȘȖȠȜȝșȖȐȎțȎȝȞȖȚȓȞȡȑșȭȐȐȜȒțȡȬȒșȭȕȎȑȞȡȕ
ȘȖȟȩȞȪȭțȎȝȓȞȓȝșȎȐȘȡȖȐȩȐȜȒțȡȬȑȒȓȞȓȕȡșȪȠȎȠȝȓ
ȞȓȝșȎȐȘȖȟȜȣȞȎțȭȓȠȟȭȒȜȠȓȣȝȜȞȝȜȘȎȖȑȞȜȘțȓȕȎȏȓȞȓȠ
ȏșȜȘȖǽȜșȜȔȓțȖȓȥȓȞȓȝȎȦȘȖȜȠțȜȟȖȠȓșȪțȜȝȓȥȖȜȝȞȓȒȓ
șȭȓȠȐȜȕȚȜȔțȩȓȒȓȗȟȠȐȖȭȥȓȞȓȝȎȦȘȖțȎȝȞȖȚȓȞȕȎȑȞȡȕ
ȘȡȠȜȝșȖȐȎȐȝȓȥȪȕȎȑȞȡȕȘȡȟȩȞȪȭȒșȭȝȓȞȓȝșȎȐȘȖȖșȖ
ȟȏȜȞȑȜȠȜȐȜȑȜȝȞȜȒȡȘȠȎdzȟșȖȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭȟȏȜȘȡ
ȜȠȝȓȥȖȜțȎȚȜȔȓȠȕȎȑȞȡȔȎȠȪȖșȖȜȥȖȧȎȠȪȠȜȝșȖȐțȡȬ
ȭȥȓȗȘȡdzȟșȖȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭțȎȒȝȓȥȪȬȜțȎȚȜȔȓȠ
ȕȎȑȞȡȔȎȠȪȖșȖȜȥȖȧȎȠȪȐȐȜȒțȡȬȭȥȓȗȘȡȝȓȥȖdzȟșȖȥȓ
ȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭțȖȔȓȝȓȥȖȜțȎȚȜȔȓȠȖȕȐșȓȘȎȠȪȞȓ
ȕȡșȪȠȎȠȝȓȞȓȝșȎȐȘȖǻȎȞȖȟȝȜȘȎȕȎțȩȫȠȖȝȜșȜȔȓțȖȭ
ȥȓȞȓȝȎȦȘȖ

Вводная ячейка
Печь
Топливная
ячейка

Выводная
ячейка

ˀ̛̭͘ϵ͘ϰ͘ʿ̸̸̸̨̨̡̨̡̡̨̡̨̨̛̛̛̣̙̖̦̖̖̬̖̪̹̪̬̖̖̣̖̯͕̭̜̖̜̜̪̖̦̌̔́̌́̌
̨̛̥̖̜̭̯̱̖̯̏̌̔̏̚

ȀȓȝȓȞȪȥȓȞȓȝȎȦȘȎȕȎȑȞȡȕȖȠȏșȜȘȖȏȡșȩȔțȖȘȎȐȝȓȥȖ

ǿȀǾǼǶȀdzǹȊǿȀǰǼDZdzǻdzǾǮȀǼǾǮǯȁǹȉǴǻǶǸǮ

169

ğėğģĤđęĔđĖĚĐČĝěĚĘĚĥĨĪĖĚęĝĞČęĞ
ȁȏȓȒȖȐȦȖȟȪȥȠȜȟȡȧȓȟȠȐȡȓȠȏșȜȘȏȡșȩȔțȖȘȎȒșȭȒȜȏȩȥȖ
ȝȞȜȑȞȎȚȚȎȝȞȜȐȓȞȭȓȠȘȜșȖȥȓȟȠȐȜȡȔȓȟȜȏȞȎțțȩȣȥȓȞȓȝȎȦ
ȘȜȗȏșȜȘȜȐȒȜȟȠȖȑșȜșȖȜțȜȚȎȘȟȖȚȎșȪțȜȑȜȕțȎȥȓțȖȭ²
dzȟșȖȚȎȘȟȖȚȡȚȒȜȟȠȖȑțȡȠȥȓȞȓȝȎȦȘȎȑȜȠȜȐȖȠȟȭȕȎȑȞȡȕȖȠȪ
ȏȡșȩȔțȖȘȐȝȓȥȖȒșȭȥȓȑȜȝȞȜȐȓȞȭȓȠȒȜȟȠȎȠȜȥțȜșȖȡțȓȓ
ȠȜȝșȖȐȎȒșȭȝȓȞȓȚȓȧȓțȖȭȘȝȓȥȎȚȖȜȏȞȎȠțȜȘȑȓțȓȞȎȠȜȞȡ
ȏȡșȩȔțȖȘȎ
cobminer
ɩɪɨɜɟɪɤɚɩɨɥɨɧɥɢɫɬɟɤɛɭɥɵɠɧɢɤɚ
20.
hare.selectItem('minecraft:cobblestone')
21.
if turtle.getItemCount() == 64 then
ɩɪɨɜɟɪɤɚɡɚɩɪɚɜɥɟɧɚɥɢɬɨɩɥɢɜɨɦɱɟɪɟɩɚɲɤɚ
23.
if turtle.getFuelLevel() < (2 * NUM_FURNACES)
then
24.
error('Turtle needs more fuel!')
25.
end

ǽȞȜȑȞȎȚȚȎȟȝȜȚȜȧȪȬȢȡțȘȤȖȖhare.selectItem()Ȑ
ȟȠȞȜȘȓȜȏȞȎȧȎȓȠȟȭȘȥȓȞȓȝȎȦȘȓǸȜȒȐȟȠȞȜȘȓȐȩȕȩ
ȐȎȓȠȢȡțȘȤȖȬturtle.getItemCount()ȥȠȜȏȩȝȞȜȐȓȞȖȠȪ
ȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȏȡșȩȔțȖȘȎȟȜȏȞȎțțȩȣȥȓȞȓȝȎȦȘȜȗ
dzȟșȖȏșȜȘȜȐȏȡșȩȔțȖȘȎȐȜȏȧȓȗȟșȜȔțȜȟȠȖȝȞȜȑȞȎȚȚȎ
ȐȩȕȩȐȎȓȠȢȡțȘȤȖȬturtle.getFuelLevel()ȥȠȜȏȩȝȞȜȐȓ
ȞȖȠȪȡȞȜȐȓțȪȠȜȝșȖȐȎȥȓȞȓȝȎȦȘȖ
1

2

3

4

5

10

9

8

7

6

5

ˀ̛̭͘ϵ͘ϱ͘ʻ̵̸̸̨̨̨̡̨̨̨̨̡̨̛̛̛̛̖̥̖̣̖̭̯̯̪̣̬̣̹̖̣̖̭̯̍̔̏̏̌̏̔̏̌̌̌̍̽̏̌̚
̸̸̵̡̡̡̡̨̨̨̨̡̨̡̨̛̪̖̖̜͕̯̖̬̖̪̹̖̦̖̥̪̖̬̖̥̖̺̯̭̦̖̯̣̭̖̥̌̌̌̍̔̌̽́̽̏
̸̵̶̨̨̨̛̛̛̛̪̖̥͕̦̯̖̥̖̬̦̱̯̭̦̭̦̱̪̌̌̏̽́̌̔̀̀̚̚

170

DZǹǮǰǮ

ǸȜȒȐȟȠȞȜȘȓȝȞȜȐȓȞȭȓȠȥȠȜȏȩȡȞȜȐȓțȪȠȜȝșȖȐȎȥȓ
ȞȓȝȎȦȘȖȏȩșțȓȚȓțȓȓȥȓȚȞȓȕȡșȪȠȎȠȜȝȓȞȎȤȖȖ2 * NUM _
FURNACESȋȠȜȕțȎȥȓțȖȓȚȩȏȓȞȓȚȝȜȠȜȚȡȥȠȜȥȓȞȓȝȎȦȘȓ
ȠȞȓȏȡȓȠȟȭȠȜȝșȖȐȜȒșȭȝȓȞȓȚȓȧȓțȖȭȘȘȎȔȒȜȗȝȓȥȖȖȐȜȕ
ȐȞȎȧȓțȖȭȐȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ
dzȟșȖȡȥȓȞȓȝȎȦȘȖțȓȒȜȟȠȎȠȜȥțȜȠȜȝșȖȐȎȘȜȒȐȟȠȞȜȘȓ
ȐȩȕȩȐȎȓȠȢȡțȘȤȖȬerror()ȐȩȐȜȒȭȧȡȬȠȓȘȟȠ'Turtle
needs more fuel!'ǵȎȠȓȚȘȜȒȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȞȎȏȜ
ȠȡȝȞȜȑȞȎȚȚȩ

ēČďĜğēĖČčğėħĒęĔĖČĎěđģĔ
dzȟșȖȡȥȓȞȓȝȎȦȘȖțȎȘȜȝȖșȜȟȪȏșȜȘȎȏȡșȩȔțȖȘȎȖȖȚȓȓȠ
ȟȭȒȜȟȠȎȠȜȥțȜȓȘȜșȖȥȓȟȠȐȜȠȜȝșȖȐȎȒșȭȝȓȞȓȚȓȧȓțȖȭȝȜȝȓ
ȥȎȚȖȐȜȕȐȞȎȧȓțȖȭțȎȖȟȣȜȒțȡȬȝȜȕȖȤȖȬȜțȎȚȜȔȓȠțȎȥȎȠȪ
ȒȐȖȔȓțȖȓȖȕȎȑȞȡȕȘȡȏȡșȩȔțȖȘȎȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϵ͘ϲ͘ˋ̸̡̨̡̡̛̛̛̖̬̖̪̹̬̱̙̖̯̣̱̣̼̙̦̪̖̌̌̌̐̌̍̍̌̏̚

ȄȖȘșforȐȟȠȞȜȘȓțȓȚțȜȑȜȜȠșȖȥȎȓȠȟȭȜȠȤȖȘșȜȐfor
ȘȜȠȜȞȩȓȚȩȖȟȝȜșȪȕȜȐȎșȖȞȎțȓȓȆȎȑȤȖȘșȎforȚȜȔȓȠȞȎ
ȐȓțȐȟșȡȥȎȓȐȩȕȜȐȎfor i = 1, 10 doȀȩȠȎȘȔȓȚȜ
ȔȓȦȪȖȟȝȜșȪȕȜȐȎȠȪȦȎȑȒȞȡȑȜȗȐȓșȖȥȖțȩȡȘȎȕȎȐȓȑȜțȓȝȜ
ȟȞȓȒȟȠȐȓțțȜȝȞȖȐȩȕȜȐȓǰȚȓȟȠȜȒȜȏȎȐșȓțȖȭ1ȝȞȖȘȎȔȒȜȗ
ȖȠȓȞȎȤȖȖȤȖȘșforȒȜȏȎȐȖȠȥȖȟșȜȡȘȎȕȎțțȜȓȐȎȞȑȡȚȓțȠȓ
ȦȎȑȎdzȟșȖȖȟȝȜșȪȕȜȐȎȠȪȜȠȞȖȤȎȠȓșȪțȜȓȥȖȟșȜțȎȝȞȖȚȓȞ
for i = 10, 1, -1 doȟȥȓȠȥȖȘȤȖȘșȎȏȡȒȓȠȞȎȏȜȠȎȠȪțȎ
ȡȚȓțȪȦȓțȖȓ

ǿȀǾǼǶȀdzǹȊǿȀǰǼDZdzǻdzǾǮȀǼǾǮǯȁǹȉǴǻǶǸǮ

171

cobminer
ɡɚɝɪɭɡɤɚɛɭɥɵɠɧɢɤɚɜɩɟɱɢ
28.
print('Dropping off cobblestone...')
29.
for furnacesToFill = NUM_FURNACES, 1, -1 do
WXUWOHEDFN ɩɟɪɟɦɟɳɟɧɢɟɤɩɟɱɢ
QXP7R'URS PDWKÀRRU WXUWOHJHW,WHP&RXQW
furnacesToFill)
WXUWOHGURS'RZQ QXP7R'URS ɡɚɝɪɭɡɤɚ
ɛɭɥɵɠɧɢɤɚɜɩɟɱɢ
33.
end



ȄȖȘșforȐȟȠȞȜȘȓȟȜȑșȎȟțȜȕțȎȥȓțȖȬȘȜțȟȠȎțȠȩ
NUM _ FURNACES Ƞȓ5 ȜȝȞȓȒȓșȭȓȠȘȜșȖȥȓȟȠȐȜȝȓȞȓȚȓȧȓ
țȖȗȥȓȞȓȝȎȦȘȖțȎȕȎȒǶȠȎȘȘȎȘȜȠȟȥȓȠȝȞȜȖȕȐȜȒȖȠȟȭȜȠ
5ȒȜ1ȎțȓȜȠ1ȒȜ5ȚȩȚȜȔȓȚȖȟȝȜșȪȕȜȐȎȠȪȝȓȞȓȚȓțțȡȬ
furnacesToFillȤȖȘșȎforȐȟȠȞȜȘȓȥȠȜȏȩȞȎȟȟȥȖȠȎȠȪ
ȟȘȜșȪȘȜȏșȜȘȜȐȏȡșȩȔțȖȘȎțȡȔțȜȕȎȑȞȡȕȖȠȪȐȘȎȔȒȡȬ
ȝȓȥȪǰȫȠȜȚȐȩȥȖȟșȓțȖȖȖȟȝȜșȪȕȡȓȠȟȭȢȡțȘȤȖȭmath.
ÀRRU()DzȎȐȎȗȝȜȟȚȜȠȞȖȚȘȎȘȞȎȏȜȠȎȓȠȫȠȎȢȡțȘȤȖȭ

ĚĖĜğďėđęĔđģĔĝđėĝěĚĘĚĥĨĪĠğęĖĢĔĕ
5) math.ceil(4.9)
5
lua> math.ceil(10.5)
11
X lua> math.ceil(12.0)
12

ǽȓȞȓȒȎȥȎȒȞȜȏțȜȑȜȕțȎȥȓțȖȭȢȡțȘȤȖȖmath.floor()
ȝȞȖȐȜȒȖȠȘȜȠȜȏȞȎȔȓțȖȬȤȓșȜȗȥȎȟȠȖȥȖȟșȎȏȓȕȒȓȟȭȠȖȥ
țȜȑȜȞȎȕȒȓșȖȠȓșȭȠȜȑȒȎȘȎȘȝȓȞȓȒȎȥȎȠȎȘȜȑȜȔȓȕțȎȥȓțȖȭ
ȢȡțȘȤȖȖmath.ceil()ȜȘȞȡȑșȭȓȠȥȖȟșȜȒȜȟșȓȒȡȬȧȓȑȜȤȓ
șȜȑȜȥȖȟșȎdzȟșȖȝȓȞȓȒȎȠȪȢȡțȘȤȖȖmath.ceil()ȥȖȟșȜȟȜ
ȕțȎȥȓțȖȓȚ0ȜțȜȘȎȘȠȩȚȜȔȓȦȪȐȖȒȓȠȪȜȘȞȡȑșȭȓȠȟȭȒȜ
ȏșȖȔȎȗȦȓȑȜȤȓșȜȑȜȥȖȟșȎXȂȡțȘȤȖȖȜȘȞȡȑșȓțȖȭȝȜȚȜ
ȑȡȠțȎȚȞȎȟȝȞȓȒȓșȭȠȪȏȡșȩȔțȖȘȐȝȓȥȖȞȎȐțȜȚȓȞțȜ

ĎħģĔĝėđęĔđĖĚėĔģđĝĞĎČčğėħĒęĔĖČ
ĐėīēČďĜğēĖĔĎĖČĒĐğĪěđģĨ
ǰȖȑȞȓ0LQHFUDIWȐȐȜȒțȎȭȭȥȓȗȘȎȐȖțȠȓȞȢȓȗȟȓȝȓȥȖȚȜ
ȔȓȠȟȜȒȓȞȔȎȠȪțȓȏȜșȓȓȏșȜȘȜȐȒșȭȝȓȞȓȝșȎȐȘȖDzșȭ
ȒȜȟȠȖȔȓțȖȭȚȎȘȟȖȚȎșȪțȜȗȫȢȢȓȘȠȖȐțȜȟȠȖțȎȦȓȑȜȕȎȐȜ
ȒȖȘȎȚȩȣȜȠȖȚȥȠȜȏȩȐȟȓȝȓȥȖȝȓȞȓȝșȎȐșȭșȖȏȡșȩȔțȖȘ
ȜȒțȜȐȞȓȚȓțțȜȅȠȜȏȩȞȎȟȟȥȖȠȎȠȪȟȘȜșȪȘȜȏșȜȘȜȐȏȡșȩȔ
țȖȘȎțȡȔțȜȕȎȑȞȡȕȖȠȪȐȘȎȔȒȡȬȝȓȥȪȚȩȞȎȕȒȓșȖȚȘȜșȖ
ȥȓȟȠȐȜȏșȜȘȜȐȏȡșȩȔțȖȘȎȐȠȓȘȡȧȓȗȭȥȓȗȘȓțȎȕțȎȥȓțȖȓ
ȘȜțȟȠȎțȠȩNUM _ FURNACESǽȜȟȘȜșȪȘȡȐțȎȦȓȚȟșȡȥȎȓ
ȝȓȥȓȗȝȭȠȪ ȫȠȎȜȝȓȞȎȤȖȭȒȓșȓțȖȭțȓȚȜȔȓȠȝȞȖȐȓȟȠȖ
ȘȤȓșȜȚȡȥȖȟșȡȠȓȚȩȝȓȞȓȒȎȒȖȚȫȠȜȥȖȟșȜȢȡțȘȤȖȖ
math.ÀRRU()ȘȜȠȜȞȎȭȜȘȞȡȑșȖȠȕțȎȥȓțȖȓ12,8ȒȜ12ǵȎ
ȠȓȚȐȘȎȔȒȡȬȝȓȥȪȚȩȚȜȔȓȚȕȎȑȞȡȕȖȠȪȖȚȓțțȜȏșȜȘȜȐ
ȏȡșȩȔțȖȘȎȥȠȜȏȩȐȟȓȝȓȥȖȟȚȜȑșȖȝȓȞȓȝșȎȐșȭȠȪȏșȜȘȖ
ȜȒțȜȐȞȓȚȓțțȜ
ǻȜȠȡȠȐȜȕțȖȘȎȓȠțȓȟȘȜșȪȘȜȝȞȜȏșȓȚǻȎȝȞȖȚȓȞȓȟșȖȡ
țȎȟȓȟȠȪȏșȜȘȎȏȡșȩȔțȖȘȎȖȝȓȥȓȗȥȓȞȓȝȎȦȘȎȕȎȑȞȡ
ȕȖȠȝȜȏșȜȘȜȐȐȘȎȔȒȡȬȝȓȥȪȖȏșȜȘȎȜȟȠȎțȓȠȟȭȅȓȞȓ
ȝȎȦȘȎȚȜȔȓȠȒȜȏȩȐȎȠȪȏȡșȩȔțȖȘȏȩȟȠȞȓȓȥȓȚȝȓȥȖȚȜȑȡȠ
ȓȑȜȝșȎȐȖȠȪȎȘȎȔȒȎȭȝȓȥȪȚȜȔȓȠȟȜȒȓȞȔȎȠȪțȓȏȜșȓȓ
ȏșȜȘȜȐȐȐȐȜȒțȜȗȭȥȓȗȘȓDzșȭȘȎȔȒȜȗȕȎȝȜșțȓțțȜȗȝȓȥȖ
ȘȜȠȜȞȎȭțȓȚȜȔȓȠȏȜșȪȦȓȝȞȖțȖȚȎȠȪȏȡșȩȔțȖȘȥȓȞȓȝȎȦ

ǿȀǾǼǶȀdzǹȊǿȀǰǼDZdzǻdzǾǮȀǼǾǮǯȁǹȉǴǻǶǸǮ

173

ȘȎȏȡȒȓȠȟȜȣȞȎțȭȠȪȥȎȟȠȪȟȐȜȖȣȏșȜȘȜȐ²ȐțȎȦȓȚȟșȡȥȎȓ
ȅȠȜȏȩȞȓȦȖȠȪȫȠȡȝȞȜȏșȓȚȡȚȩȐȩȝȜșțȖȚȒȞȡȑȜȗȞȎȟ
ȥȓȠDzȎȐȎȗȞȎȟȟȚȜȠȞȖȚȟȠȞȜȘȖ²
cobminer
29.
for furnacesToFill = NUM_FURNACES, 1, -1 do
WXUWOHEDFN ɩɟɪɟɦɟɳɟɧɢɟɤɩɟɱɢ
QXP7R'URS PDWKÀRRU WXUWOHJHW,WHP&RXQW
furnacesToFill)
WXUWOHGURS'RZQ QXP7R'URS ɡɚɝɪɭɡɤɚ
ɛɭɥɵɠɧɢɤɚɜɩɟɱɢ
33.
end



ǿ ȝȜȚȜȧȪȬ ȝȓȞȓȚȓțțȜȗ numToDrop Ȑ ȟȠȞȜȘȓ 31 ȐȩȥȖȟ
șȭȓȠȟȭ ȘȜșȖȥȓȟȠȐȜ ȏșȜȘȜȐ ȏȡșȩȔțȖȘȎ Ȓșȭ ȘȎȔȒȜȗ ȝȓȥȖ²
QXP7R'URS PDWKÀRRU WXUWOHJHW,WHP&RXQW IXUnacesToFill). ǻȜȐȚȓȟȠȜȠȜȑȜȥȠȜȏȩȐȩȥȖȟșȖȠȪȜȒȖțȞȎȕ
ȘȜșȖȥȓȟȠȐȜȏȡșȩȔțȖȘȎȒșȭȕȎȑȞȡȕȘȖȐȜȒțȡȝȓȥȪȖȟȜȣȞȎ
țȖȠȪȫȠȜȥȖȟșȜȐȝȓȞȓȚȓțțȜȗnumToDropȓȓȕțȎȥȓțȖȓȝȓȞȓ
ȟȥȖȠȩȐȎȓȠȟȭȘȎȔȒȩȗȞȎȕȘȜȑȒȎȥȓȞȓȝȎȦȘȎȝȓȞȓȣȜȒȖȠȘ
ȟșȓȒȡȬȧȓȗȝȓȥȖ
ǰȠȎȏșȝȜȘȎȕȎțȜȘȎȘȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗnumToDropȐȩȥȖȟșȭȓȠȟȭȝȞȖȘȎȔȒȜȗȖȠȓȞȎȤȖȖȤȖȘșȎforȘȜȑȒȎ
ȐȟȓȝȓȥȖȝȡȟȠȩ
˃̣̌̍͘ϵ͘ϭ͘ʯ̸̨̛̦̖̦̪̖̬̖̥̖̦̦̜̌́numToDrop̸̛̛͕̖̭̣̭̖̪̖̪̱̭̯̼̏
ʰ̶̛̯̖̬̌́

PDWKÀRRU WXUWOH
getItemCount()/
furnacesToFill)

ʯ̸̛̦̖̦̖̌
ʶ̸̨̨̛̣̖̭̯̏
̨̪̖̬̖̥̖̦̦̜ ̨̡̨̣̣̍̏̔́
numToDrop ̡̛̬̱̌̐̏̚̚
̸̨̦̱̪̖̔̽

ʿ̖̬̏̌́

PDWKÀRRU 

12

12

ʦ̨̯̬̌́

PDWKÀRRU 

13

13

˃̬̖̯̽́

PDWKÀRRU 

13

13

ˋ̖̯̖̬̯̏̌́

PDWKÀRRU 

13

13

ʿ̯́̌́

PDWKÀRRU 

13

13
ʦ̨̭̖̐͗ϲϰ

174

DZǹǮǰǮ

ȀȓȝȓȞȪȝȞȖȠȐȜȞȖȚȟȭȥȠȜȐȠȜȞȎȭȝȓȥȪȕȎȝȜșțȓțȎȝȜȠȜȚȡ
ȥȠȜȖȑȞȜȘȟȏȞȜȟȖșȐțȓȓȥȎȟȠȪȒȜȏȩȠȜȑȜȏȡșȩȔțȖȘȎȀȎȘȖȚ
ȜȏȞȎȕȜȚȐȜȐȠȜȞȡȬȝȓȥȪȕȎȑȞȡȔȎȠȪȏȡșȩȔțȖȘțȓșȪȕȭǻȜ
ȝȜȟȘȜșȪȘȡȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗnumToDropȝȓȞȓȟȥȖȠȩȐȎ
ȓȠȟȭȝȞȖȘȎȔȒȜȗȖȠȓȞȎȤȖȖȤȖȘșȎforȝȞȜȑȞȎȚȚȎȎȐȠȜȚȎ
ȠȖȥȓȟȘȖȡȐȓșȖȥȖȠȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȏȡșȩȔțȖȘȎȝȞȓȒ
țȎȕțȎȥȓțțȩȣȒșȭȜȟȠȎșȪțȩȣȝȓȥȓȗǰȠȎȏșȝȜȘȎȕȎțȜ
ȘȎȘȐȫȠȜȚȟșȡȥȎȓȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗnumToDropȞȎȟȟȥȖ
ȠȩȐȎȓȠȟȭȝȞȖȘȎȔȒȜȗȖȠȓȞȎȤȖȖǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜțȎ
ȐȠȜȞȜȗȖȠȓȞȎȤȖȖȘȜșȖȥȓȟȠȐȜȝȜȝȎȒȎȬȧȖȣȐȝȓȥȪȏșȜȘȜȐ
ȞȎȐțȜȝȜȠȜȚȡȥȠȜȐȠȜȞȎȭȝȓȥȪȕȎȝȜșțȓțȎ
˃̣̌̍͘ϵ͘Ϯ͘ʯ̸̨̛̦̖̦̪̖̬̖̥̖̦̦̜̌́numToDrop̸̨̛͕̖̭̣̯̬̪̖̏̌́̽
̨̪̣̦̖̦̌̌̚
ʰ̶̛̯̖̬̌́ PDWKÀRRU WXUWOH ʯ̸̛̦̖̦̖̌
getItemCount()/
̨̪̖̬̖̥̖̦̦̜
furnacesToFill) numToDrop

ʶ̸̸̨̨̨̡̨̡̨̛̛̣̖̭̯̣̣̬̱̦̱̪̖̏̍̏̔́̌̐̏̔̽̚̚

ʿ̖̬̏̌́

PDWKÀRRU 

12

12

ʦ̨̯̬̌́

PDWKÀRRU 

13

0

˃̬̖̯̽́

PDWKÀRRU 

17

17

ˋ̖̯̖̬̯̏̌́ PDWKÀRRU 

17

17

ʿ̯́̌́

18

18

PDWKÀRRU 

ʦ̨̭̖̐͗ϲϰ
ǿȠȞȜȘȖȘȜȒȎ²ȝȜȘȎȕȩȐȎȬȠȥȠȜȓȟșȖțȓȚțȜȑȜȝȞȜ
ȒȡȚȎȠȪȘȜȒȠȜȝȓȥȖȚȜȔțȜȕȎȟȠȎȐȖȠȪȞȎȏȜȠȎȠȪȟȚȎȘȟȖ
ȚȎșȪțȜȗȫȢȢȓȘȠȖȐțȜȟȠȪȬǸȜȑȒȎȤȖȘșforȕȎȐȓȞȦȖȠȟȭȥȓ
ȞȓȝȎȦȘȎȏȡȒȓȠțȎȣȜȒȖȠȪȟȭȞȭȒȜȚȟȝȜȟșȓȒțȓȗȝȓȥȪȬȖȓȗ
țȡȔțȜȏȡȒȓȠȐȓȞțȡȠȪȟȭțȎȖȟȣȜȒțȡȬȝȜȕȖȤȖȬ

ĎĚēĎĜČĥđęĔđģđĜđěČĤĖĔ
ęČĔĝġĚĐęğĪěĚēĔĢĔĪ
ǿȠȞȜȘȖȘȜȒȎ²ȝȓȞȓȚȓȧȎȬȠȥȓȞȓȝȎȦȘȡțȎȕȎȒȝȜȘȎȜțȎ
țȓȜȘȎȔȓȠȟȭȝȓȞȓȒȏșȜȘȜȚȏȡșȩȔțȖȘȎ

ǿȀǾǼǶȀdzǹȊǿȀǰǼDZdzǻdzǾǮȀǼǾǮǯȁǹȉǴǻǶǸǮ

175

cobminer
ɜɨɡɜɪɚɬɤɝɟɧɟɪɚɬɨɪɭɛɭɥɵɠɧɢɤɚ
36.
for moves = 1, NUM_FURNACES do
37.
turtle.forward()
38.
end

ǻȎȫȠȜȚȫȠȎȝȓȝȞȜȐȓȞȭȓȠȟȭțȎșȖȥȖȓȏșȜȘȜȐȏȡșȩȔțȖȘȎ
ȡȥȓȞȓȝȎȦȘȖǻȎȝȜȚțȬȥȠȜȥȓȞȓȝȎȦȘȎȚȜȔȓȠȒȜȏȩȐȎȠȪȏȡ
șȩȔțȖȘȏȩȟȠȞȓȓȥȓȚȝȓȥȖȚȜȑȡȠȓȑȜȝȓȞȓȝșȎȐșȭȠȪǼȥȓțȪ
ȟȘȜȞȜȐȟȓȝȓȥȖȏȡȒȡȠȝȜșțȜȟȠȪȬȕȎȝȜșțȓțȩȎȡȥȓȞȓȝȎȦȘȖ
ȏȡȒȓȠȏșȜȘȎȏȡșȩȔțȖȘȎdzȟșȖȡȥȓȞȓȝȎȦȘȖȐȖțȐȓțȠȎȞȓ
ȜȟȠȎȓȠȟȭȏȡșȩȔțȖȘȎȐȟȓȝȓȥȖȝȜșțȩȠȜȥȓȞȓȝȎȦȘȎțȓȚȜ
ȔȓȠȕȎȑȞȡȕȖȠȪȏșȜȘȖȐȝȓȥȖ
cobminer
40.
if turtle.getItemCount() > 0 then
41.
print('All furnaces full. Sleeping...')
RVVOHHS  ɩɚɭɡɚɜɦɢɧɭɬ
43.
end
44.
end
45. end

ǸȜȒȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȏșȜȘȖțȟȠȞȡȘȤȖȖifțȎȥȖțȎ
ȬȧȖȗȟȭȐȟȠȞȜȘȓȘȜȒȐȟȠȞȜȘȓȕȎȘȎțȥȖȐȎȓȠȏșȜȘȖț
ȟȠȞȡȘȤȖȖifȘȜȠȜȞȩȗțȎȥȖțȎȓȠȟȭȐȟȠȞȜȘȓȎȘȜȒȐȟȠȞȜȘȓ
ȕȎȐȓȞȦȎȓȠȤȖȘșwhilețȎȥȖțȎȬȧȖȗȟȭȐȟȠȞȜȘȓǻȎ
ȘȜțȓȤȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩȐȜȕȐȞȎȧȎȓȠȟȭȘȟȠȞȜȘȓȖ
ȥȓȞȓȝȎȦȘȎȝȞȜȒȜșȔȎȓȠȒȜȏȩȐȎȠȪȏȡșȩȔțȖȘȖȕȎȝȜșțȭȠȪ
ȝȓȥȖȝȜȘȎțȓȕȎȘȜțȥȖȠȟȭȓȓȠȜȝșȖȐȜ
ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"ĐĚčħģČĖČĘęī
ĝčĚėĨĤĔĘĖĚėĔģđĝĞĎĚĘěđģđĕ

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

ǸȎȘȖȐȝȞȜȑȞȎȚȚȓșȓȟȜȢȓȞȚȩȖȕȑșȎȐȩȠȩȚȜȔȓȦȪ
ȞȎȟȦȖȞȖȠȪȟȐȜȓȝȞȜȖȕȐȜȒȟȠȐȜȝȜȟȠȞȜȖȐțȓȟȘȜșȪȘȜȑȓțȓ
ȞȎȠȜȞȜȐȏȡșȩȔțȖȘȎȀȩȠȎȘȔȓȚȜȔȓȦȪȒȜȏȎȐȖȠȪȏȜșȪȦȓ

176

DZǹǮǰǮ

ȝȓȥȓȗțȓȕȎȏȩȐȖȕȚȓțȖȠȪȕțȎȥȓțȖȓȘȜțȟȠȎțȠȩNUM _ FURNACES ǽȭȠȪȖșȖȦȓȟȠȪȝȓȥȓȗȐȝȜșțȓȒȜȟȠȎȠȜȥțȜȥȠȜȏȩȝȓ
ȞȓȝșȎȐșȭȠȪȏȡșȩȔțȖȘȖȕȜȒțȜȑȜȑȓțȓȞȎȠȜȞȎǶțȎȥȓȥȓȞȓ
ȝȎȦȘȎțȓȟȚȜȔȓȠȒȜȏȩȐȎȠȪȏȡșȩȔțȖȘȒȜȟȠȎȠȜȥțȜȏȩȟȠȞȜȖ
ȝȓȥȖȏȡȒȡȠȝȞȜȟȠȎȖȐȎȠȪ

ģĞĚĘħğēęČėĔ
ǰȫȠȜȗȑșȎȐȓȠȩȡȕțȎșȘȎȘȝȜȟȠȞȜȖȠȪȑȓțȓȞȎȠȜȞȏȡșȩȔțȖ
ȘȎȐȘȜȠȜȞȜȚȟȚȓȦȖȐȎȬȠȟȭȝȜȠȜȘȖșȎȐȩȖȐȜȒȩȒșȭȏȓȟ
ȘȜțȓȥțȜȑȜȝȞȜȖȕȐȜȒȟȠȐȎȏșȜȘȜȐȏȡșȩȔțȖȘȎȀȩȖȟȝȜșȪ
ȕȜȐȎșȝȞȜȑȞȎȚȚȡcobminerȥȠȜȏȩȥȓȞȓȝȎȦȘȎȟȜȏȖȞȎșȎ
ȏșȜȘȖȏȡșȩȔțȖȘȎȖȕȎȑȞȡȔȎșȎȖȣȐȝȓȥȖȒșȭȝȓȞȓȝșȎȐȘȖ
ȀȩȡȕțȎșȜȘȜțȟȠȎțȠȎȣ²ȝȓȞȓȚȓțțȩȣȘȜȠȜȞȩȓțȓȖȕȚȓțȭ
ȬȠȟȐȜȖȣȕțȎȥȓțȖȗȒȓșȎȭȘȜȒȏȜșȓȓȡȒȜȏțȩȚȒșȭȥȠȓțȖȭ
ǸȞȜȚȓȠȜȑȜȚȩȝȜȐȠȜȞȖșȖȥȠȜȦȎȑȎȞȑȡȚȓțȠȎȤȖȘșȎfor
ȚȜȔțȜȡȘȎȕȎȠȪȭȐțȜȖȤȖȘșforȚȜȔȓȠȜȠȟȥȖȠȩȐȎȠȪȟȭȐțȖȕ
ȎțȓȐȐȓȞȣǻȎȘȜțȓȤȠȩȡȕțȎșȘȎȘȢȡțȘȤȖȖmath.ÀRRU()
Ȗmath.ceil()ȚȜȑȡȠȜȘȞȡȑșȭȠȪȥȖȟșȜȐȚȓțȪȦȡȬȖșȖȏȜșȪ
ȦȡȬȟȠȜȞȜțȡȟȜȜȠȐȓȠȟȠȐȓțțȜ
ǰȑșȎȐȓȚȩȝȞȖȚȓțȖȚȝȞȜȑȞȎȚȚȡcobminerȒșȭȟȠȞȜȖ
ȠȓșȪȟȠȐȎȕȎȐȜȒȖȘȎȘȎȚȓțțȜȑȜȘȖȞȝȖȥȎȘȜȠȜȞȎȭȏȡȒȓȠȜȝȓȞȖ
ȞȜȐȎȠȪȡȔȓȒȐȡȚȭȥȓȞȓȝȎȦȘȎȚȖǺȩțȎȝȖȦȓȚȝȞȜȑȞȎȚȚȡ
ȘȜȠȜȞȎȭȝȜȞȡȥȖȠȒȞȡȑȜȗȥȓȞȓȝȎȦȘȓȐȩȠȎȟȘȖȐȎȠȪȝȓȞȓȝșȎȐ
șȓțțȩȓȘȎȚȓțțȩȓȏșȜȘȖȖȕȝȓȥȓȗȖȝȓȞȓȞȎȏȎȠȩȐȎȠȪȖȣȐȘȎ
ȚȓțțȩȗȘȖȞȝȖȥȟȝȜȚȜȧȪȬȝȞȜȑȞȎȚȚȩbrickcrafter.

10
ěĜĚĔēĎĚĐĝĞĎĚĖČĘđęęħġ
ĖĔĜěĔģđĕ
ȀȓȝȓȞȪȡȠȓȏȭȓȟȠȪȥȓȞȓȝȎȦȘȎȘȜȠȜȞȎȭȒȜȏȩ
ȐȎȓȠȏȡșȩȔțȖȘȖȕȑȓțȓȞȎȠȜȞȎȖȕȎȑȞȡȔȎȓȠ
ȏȡșȩȔțȖȘȐȝȓȥȖȒșȭȝȓȞȓȝșȎȐȘȖǽȞȜȤȓȟȟ
ȝȓȞȓȝșȎȐȘȖȎȐȠȜȚȎȠȖȕȖȞȜȐȎțțȜȒȜȟȠȎȐȎȠȪ
ȘȎȚȓțțȩȓȏșȜȘȖȖȕȝȓȥȓȗȒșȭȖȣȒȎșȪțȓȗȦȓȗ
ȝȓȞȓȞȎȏȜȠȘȖȝȞȖȣȜȒȖȠȟȭȐȞȡȥțȡȬǰȟȓȫȠȜȣȜȞȜ
ȦȜțȜțȓȒȜȠȭȑȖȐȎȓȠȒȜȝȜșțȜȤȓțțȜȑȜȕȎȐȜȒȖȘȎȝȜ
ȝȞȜȖȕȐȜȒȟȠȐȡȘȎȚȓțțȜȑȜȘȖȞȝȖȥȎǻȡȔțȜȕȎȝȞȜȑȞȎȚȚȖ
ȞȜȐȎȠȪȐȠȜȞȡȬȥȓȞȓȝȎȦȘȡȥȠȜȏȩȜțȎȐȩȠȎȟȘȖȐȎșȎȝȓȞȓ
ȝșȎȐșȓțțȩȗȘȎȚȓțȪȖȝȓȞȓȞȎȏȎȠȩȐȎșȎȓȑȜȐȘȎȚȓțțȩȓ
ȘȖȞȝȖȥȖǸȎȘȠȜșȪȘȜȏȡȒȓȠȝȜȒȑȜȠȜȐșȓțȎȘȜȚȎțȒȎȥȓȞȓ
ȝȎȦȓȘȘȎȘȫȠȜȝȜȘȎȕȎțȜțȎȞȖȟȚȜȔțȜȏȡȒȓȠȐȎȐ
ȠȜȚȎȠȖȥȓȟȘȜȚȞȓȔȖȚȓȝȜșȡȥȎȠȪȘȖȞȝȖȥȖȝȞȖȑȜȒțȩȓȒșȭ
ȟȠȞȜȖȠȓșȪȟȠȐȎ

178

DZǹǮǰǮ

ˀ̛̭͘ϭϬ͘ϭ͘ʿ̨̨̨̨̨̨̨̨̛̛̛̣̦̭̯̯̥̯̬̦̦̼̜̪̪̬̭̯̱̽̀̌̏̌̏̌̌̏̔̏̔̏̚̚̚
̸̡̨̨̡̛̛̥̖̦̦̬̪̌̐̌

ĜČēĜČčĚĞĖČěĜĚďĜČĘĘħ
ěĜĚĔēĎĚĐĝĞĎČĖČĘđęęĚďĚĖĔĜěĔģČ
ǽȓȞȐȎȭȥȓȞȓȝȎȦȘȎȞȎȏȜȠȎȬȧȎȭȝȜȝȞȜȑȞȎȚȚȓcobminer
ȞȎȟȝȜșȜȔȓțȎțȎȒȝȓȥȎȚȖǰȠȜȞȎȭȥȓȞȓȝȎȦȘȎȏȡȒȓȠȒȐȖ
ȑȎȠȪȟȭțȖȔȓȝȓȥȓȗȥȠȜȏȩȜțȎȚȜȑșȎȐȩȠȎȟȘȖȐȎȠȪȏșȜȘȖȖȕ
ȐȩȐȜȒțȩȣȭȥȓȓȘȝȓȥȓȗǻȎȝȜȚțȬȥȠȜȖȕȘȎȚțȭȖșȖȏȡșȩȔ
țȖȘȎȒȜȏȩȐȎȬȠȟȭȏșȜȘȖȏȡșȩȔțȖȘȎȘȜȠȜȞȩȓȕȎȠȓȚȕȎȑȞȡ
ȔȎȬȠȟȭȐȝȓȥȖȒșȭȝȓȞȓȝșȎȐȘȖǽȜșȡȥȓțțȩȓȐȞȓȕȡșȪȠȎȠȓ
ȝȓȞȓȝșȎȐȘȖȏșȜȘȖȘȎȚțȭȝȓȞȓȞȎȏȎȠȩȐȎȬȠȟȭȐȘȎȚȓțțȩȗ
ȘȖȞȝȖȥ
ǸȎȘȖcobminerȝȞȜȑȞȎȚȚȎȐȠȜȞȜȗȥȓȞȓȝȎȦȘȖȟțȎȥȎ
șȎȒȜșȔțȎȝȞȜȐȓȞȖȠȪȥȠȜȡȥȓȞȓȝȎȦȘȖȒȜȟȠȎȠȜȥțȜȠȜȝșȖ
ȐȎȒșȭȝȓȞȓȚȓȧȓțȖȭȐȒȜșȪȝȓȥȓȗȖȐȜȕȐȞȎȧȓțȖȭțȎȖȟȣȜȒ
țȡȬȝȜȕȖȤȖȬDzȐȖȑȎȭȟȪȐȒȜșȪȝȓȥȓȗȥȓȞȓȝȎȦȘȎȟȜȏȖȞȎȓȠ
ȏșȜȘȖȘȎȚțȭȘȜȠȜȞȩȓȏȩșȖȐȩȝșȎȐșȓțȩȖȕȏȡșȩȔțȖȘȎ
ǿȜȏȞȎȐȟȠȓȘȖȕȏșȜȘȜȐȜțȎȟȜȕȒȎȟȠȖȕțȖȣȘȎȚȓțțȩȣ
ȘȖȞȝȖȥȎȖȝȜȚȓȟȠȖȠȖȣȐȟȡțȒȡȘdzȟșȖȐȐȩȐȜȒțȜȗȭȥȓȗ
ȘȓȝȓȥȓȗȟȘȜȝȖșȜȟȪțȓȒȜȟȠȎȠȜȥțȜȘȎȚțȭȥȓȞȓȝȎȦȘȎȝȜ
ȒȜȔȒȓȠȒȐȓȚȖțȡȠȩȥȠȜȏȩȘȜșȖȥȓȟȠȐȜȝȓȞȓȝșȎȐșȓțțȜȑȜ
ȏȡșȩȔțȖȘȎȡȐȓșȖȥȖșȜȟȪǰȓȟȪȝȞȜȤȓȟȟȥȓȞȓȝȎȦȘȎȝȜȐȠȜ
ȞȭȓȠȤȖȘșȖȥȓȟȘȖ

ǽǾǼǶǵǰǼDzǿȀǰǼǸǮǺdzǻǻȉȃǸǶǾǽǶȅdzǷ

179

ĝĚēĐČęĔđĖĜČĠĞģđĜđěČĤĖĔ
DzșȭțȎȥȎșȎȥȓȞȓȝȎȦȘȡțȎȒȜțȎȡȥȖȠȪȖȕȑȜȠȎȐșȖȐȎȠȪȘȎ
ȚȓțțȩȓȘȖȞȝȖȥȖȖȕȘȎȚțȭȅȓȞȓȝȎȦȘȖȚȜȑȡȠȟȜȕȒȎȐȎȠȪ
ȞȎȕșȖȥțȩȓȏșȜȘȖȖȝȞȓȒȚȓȠȩȟȝȜȚȜȧȪȬȢȡțȘȤȖȖturtle.
craft()ǼȒțȎȘȜȥȠȜȏȩȕȎȒȓȗȟȠȐȜȐȎȠȪȫȠȡȢȡțȘȤȖȬȠȩ
ȒȜșȔȓțȜȟțȎȟȠȖȠȪȥȓȞȓȝȎȦȘȡȐȓȞȟȠȎȘȜȚȝȜȎțȎșȜȑȖȖȜȟ
țȎȧȓțȖȭȥȓȞȓȝȎȦȘȖȎșȚȎȕțȜȗȘȖȞȘȜȗǰȩȏȓȞȖȥȓȞȓȝȎȦȘȡ
ȠȜșȪȘȜțȓȠȡȘȜȠȜȞȎȭȡȔȓȞȎȏȜȠȎȓȠȟȝȞȜȑȞȎȚȚȜȗcobminer
ȎȓȧȓȜȒțȡȖȝȜȚȓȟȠȖȐȓȞȟȠȎȘȐȠȓȘȡȧȡȬȭȥȓȗȘȡȥȓȞȓȝȎȦ
ȘȖǵȎȠȓȚȐȜȏȜșȜȥȘȓ/XDȐȩȝȜșțȖȟșȓȒȡȬȧȖȗȘȜȒ
lua> turtle.equipLeft()

ȋȠȜȠȘȜȒȡȏȓȞȓȠȖȚȓȬȧȖȗȟȭțȎșȓȐȜȗȟȠȜȞȜțȓȥȓȞȓȝȎȦ
ȘȖȖțȟȠȞȡȚȓțȠȖȜȟțȎȟȠȖȠȓȓȐȓȞȟȠȎȘȜȚǾȖȟȒȓȚȜț
ȟȠȞȖȞȡȓȠȥȓȞȓȝȎȦȘȡȖȓȓȖțȐȓțȠȎȞȪȒȜȖȝȜȟșȓȕȎȝȡȟȘȎ
ȢȡțȘȤȖȖturtle.equipLeft().

ˀ̛̭͘ϭϬ͘Ϯ͘ˇ̶̡̛̱̦́turtle.equipLeft()̡̡̡̛̥̖̦̖̯̬̱̦̖̬̭̯̌́̌̏̌̚͘
ˋ̡̨̡̨̛̖̬̖̪̹̪̖̬̖̼̪̣̦̖̦̖̥̌̌̔̏̔̌;̭̣̖̏̌Ϳ̨̛̪̭̣̖;̭̪̬̌̏̌Ϳ

ȀȓȝȓȞȪȠȐȜȭȥȓȞȓȝȎȦȘȎȚȜȔȓȠȐȩȕȐȎȠȪȢȡțȘȤȖȬturtle.craft(). ǼțȎȏȜșȪȦȓțȓȚȜȔȓȠȜȏȞȎȧȎȠȪȟȭȘȢȡțȘȤȖȖ
turtle.dig()țȜțȎȚȫȠȜȖțȓțȡȔțȜ
ǽȞȖȚȓȥȎțȖȓ dzȟșȖȠȩȣȜȥȓȦȪȥȠȜȏȩȥȓȞȓȝȎȦȘȎȚȜȑșȎ
ȖȘȞȎȢȠȖȠȪȖȒȜȏȩȐȎȠȪȜȒțȜȐȞȓȚȓțțȜȠȩȚȜȔȓȦȪȜȟțȎȟȠȖȠȪȥȓȞȓȝȎȦȘȡȒȐȡȚȭȖțȟȠȞȡȚȓțȠȎȚȖDzșȭȫȠȜȑȜ

180

DZǹǮǰǮ

ȝȜțȎȒȜȏȭȠȟȭȒȐȓȢȡțȘȤȖȖtu r tle.e q u ipL eft() Ȓșȭ
ȞȎ ȕ Ț ȓȧ ȓțȖ ȭ ȜȒț ȜȑȜ Ȗț ȟȠȞȡȚ ȓțȠȎ ȟ ș ȓȐȜȗ ȟȠȜȞȜțȩ
ȥȓȞȓȝȎȦȘȖȖturtle.equipRight()ȥȠȜȏȩȫȘȖȝȖȞȜȐȎȠȪȓȓ
ȟȒȞȡȑȜȗȟȠȜȞȜțȩǻȎȞȖȟȝȜȘȎȕȎțȎȥȓȞȓȝȎȦȘȎȟȎșȚȎȕ
țȜȗȘȖȞȘȜȗȟșȓȐȎȖȐȓȞȟȠȎȘȜȚȟȝȞȎȐȎȀȎȘȎȭȥȓȞȓȝȎȦȘȎ
ȚȜȔȓȠȐȩȕȩȐȎȠȪȘȎȘȢȡțȘȤȖȬturtle.dig()ȠȎȘȖturtle.craft().

ˀ̛̭͘ϭϬ͘ϯ͘ˋ̡̨̡̡̨̨̨̨̛̖̬̖̪̹̭̣̥̦̜̬̜̦̣̖̜̭̯̬̦̖̌̌̌̌̌̏̚;̭̣̖̏̌Ϳ̛
̡̨̨̖̬̭̯̥̦̪̬̜̏̌̌̌̏;̭̪̬̌̏̌Ϳ

ȅȓȞȓȝȎȦȘȎȜȏȜȞȡȒȜȐȎțțȎȭȐȓȞȟȠȎȘȜȚȚȜȔȓȠȘȞȎȢȠȖȠȪ
ȠȜșȪȘȜȐȟȜȜȠȐȓȠȟȠȐȖȖȟȞȓȤȓȝȠȜȚȘȜȚȝȜțȓțȠȩȘȜȠȜȞȜ
ȑȜȟȜȏȞȎțȩȐȓȓȖțȐȓțȠȎȞȓǽȞȖȐȩȕȜȐȓȢȡțȘȤȖȖturtle.
craft()ȟȜȕȒȎțțȩȗȝȞȓȒȚȓȠȖșȖȏșȜȘȝȜȚȓȧȎȓȠȟȭȐȠȓȘȡ
ȧȡȬȭȥȓȗȘȡȖțȐȓțȠȎȞȭ
ǻȎȝȞȖȚȓȞȥȠȜȏȩȟȘȞȎȢȠȖȠȪȘȎȚȓțțȩȗȘȖȞȝȖȥȝȜȚȓ
ȟȠȖȥȓȠȩȞȓȘȎȚȓțțȩȣȏșȜȘȎȐȖțȐȓțȠȎȞȪȥȓȞȓȝȎȦȘȖȘȎȘ
ȝȜȘȎȕȎțȜțȎȞȖȟȁȏȓȒȖȟȪȥȠȜȐȟȓȜȟȠȎșȪțȩȓȭȥȓȗȘȖ
ȖțȐȓțȠȎȞȭȝȡȟȠȩȖȐȜȏȜșȜȥȘȓ/XDȐȩȝȜșțȖȘȜȚȎțȒȩturtle.select(16)Ȗturtle.craft():
lua> turtle.select(16)
true
lua> turtle.craft()
true

ǻȎȞȖȟȝȜȘȎȕȎțȑȞȎȢȖȥȓȟȘȖȗȖțȠȓȞȢȓȗȟȥȓȞȓȝȎȦȘȖ
ȒȜȖȝȜȟșȓȘȞȎȢȠȎȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗǼȏȞȎȠȖȐțȖȚȎțȖȓ

ǽǾǼǶǵǰǼDzǿȀǰǼǸǮǺdzǻǻȉȃǸǶǾǽǶȅdzǷ

181

ȥȠȜțȎȫȠȜȚȞȖȟȡțȘȓȐȘȎȥȓȟȠȐȓȠȓȘȡȧȓȗțȎȟȠȞȜȓțȎȭȥȓȗȘȎ
ȝȜȒțȜȚȓȞȜȚȖȟȜȕȒȎțțȩȗȏșȜȘȝȜȚȓȧȎȓȠȟȭȠȡȒȎ

ˀ̛̭͘ϭϬ͘ϰ͘ʰ̸̡̨̛̦̖̦̯̬̖̬̖̪̹̏̌̽̌̔;̭̣̖̏̌Ϳ̨̛̪̭̣̖;̭̪̬̌̏̌Ϳ̴̶̨̡̛̛̼̱̦̏̏̌̚
turtle.craft()

dzȟșȖȏșȜȘȖȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖțȓȏȡȒȡȠȟȜȜȠȐȓȠ
ȟȠȐȜȐȎȠȪȞȓȤȓȝȠȡ0LQHFUDIWȢȡțȘȤȖȭturtle.craft()ȐȓȞ
țȓȠȕțȎȥȓțȖȓfalseȖȠȩȡȐȖȒȖȦȪȟȜȜȏȧȓțȖȓȜȏȜȦȖȏȘȓ
lua> turtle.craft()
false
No matching recipes

ȀȓȝȓȞȪȘȜȑȒȎțȎȟȠȞȜȗȘȎȖȝȞȜȓȘȠȖȞȜȐȎțȖȓȝȞȜȑȞȎȚȚȩ
ȐȠȜȞȜȗȥȓȞȓȝȎȦȘȖȕȎȐȓȞȦȓțȩȝȞȖȟȠȡȝȖȚȘțȎȝȖȟȎțȖȬȘȜ
ȒȎǻȜȐȡȬȝȞȜȑȞȎȚȚȡțȎȕȜȐȓȚbrickcrafter.

ĖĚĐěĜĚďĜČĘĘħ*:1+3+:).>ɉɪɨɝɪɚɦɦɚɝɟɧɟɪɚɬɨɪɚɛɭɥɵɠɧɢɤɚɗɥɚɋɜɟɣɝɚɪɬɚ
Ʉɪɚɮɬɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣɢɡɤɚɦɧɹɜɩɟɱɚɯɱɟɪɟɩɚɲɤɚ
ɢɡ@@
3.
4. print('Starting stone brick crafting program...')
5.
6. local NUM_FURNACES = 5

182

DZǹǮǰǮ

7. local brickCount = 0
8. while true do
ɩɪɨɜɟɪɤɚɡɚɩɪɚɜɥɟɧɚɥɢɬɨɩɥɢɜɨɦɱɟɪɟɩɚɲɤɚ
10.
if turtle.getFuelLevel() < (2 * NUM_FURNACES) then
11.
error('Turtle needs more fuel!')
12.
end
13.
WXUWOHVHOHFW  ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜɹɱɟɣɤɭ
15.
ɫɛɨɪɤɚɦɧɹɢɡɩɟɱɟɣ
17.
for i = 1, NUM_FURNACES do
18.
turtle.suckUp(64 - turtle.getItemCount(1)) -get stone from furnace
19.
if turtle.getItemCount(1) == 64 then
EUHDNɨɫɬɚɧɨɜɤɚɟɫɥɢɫɨɛɪɚɧɨɛɥɨɤɚɤɚɦɧɹ
21.
end
22.
if i ~= NUM_FURNACES then
WXUWOHEDFN ɩɟɪɟɦɟɳɟɧɢɟɤɫɥɟɞɭɸɳɟɣɩɟɱɢ
24.
end
25.
end
26.
ɨɛɪɚɛɨɬɤɚɛɥɨɤɨɜɤɚɦɧɹ
28.
if turtle.getItemCount(1) == 64 then
WXUWOHWUDQVIHU7R  ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜ
ɹɱɟɣɤɭ
WXUWOHWUDQVIHU7R  ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜ
ɹɱɟɣɤɭ
WXUWOHWUDQVIHU7R  ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜ
ɹɱɟɣɤɭ
WXUWOHVHOHFW  ɩɨɦɟɳɟɧɢɟɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣ
ɜɹɱɟɣɤɭ
WXUWOHFUDIW ɤɪɚɮɬɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣ
34.
brickCount = brickCount + 64
35.
print('Total stone bricks: ' .. brickCount)
36.
else
37.
print('Not enough stone yet. Sleeping...')
RVVOHHS  ɨɠɢɞɚɧɢɟɦɢɧɭɬɵ
39.
end
40.
ɩɟɪɟɦɟɳɟɧɢɟɤɫɭɧɞɭɤɭ ɨɤɨɥɨɩɟɪɜɨɣɩɟɱɢ
42.
for i = 1, NUM_FURNACES - 1 do
43.
turtle.forward()

ǽǾǼǶǵǰǼDzǿȀǰǼǸǮǺdzǻǻȉȃǸǶǾǽǶȅdzǷ

183

44.
end
WXUWOHWXUQ/HIW ɩɨɜɨɪɨɬɥɢɰɟɜɨɣɫɬɨɪɨɧɨɣɤ
ɫɭɧɞɭɤɭ
WXUWOHVHOHFW  ɜɵɛɨɪɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣ
WXUWOHGURS ɩɨɦɟɳɟɧɢɟɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣɜ
ɫɭɧɞɭɤ
WXUWOHWXUQ5LJKW ɩɨɜɨɪɨɬɤɝɟɧɟɪɚɬɨɪɭ
49. end

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȝȜȟșȓȐȐȜȒȎȐȟȓȣȖțȟȠȞȡȘȤȖȗǻȎȔȎȐ
ȘșȎȐȖȦȡCtrlȜȠȘȞȜȗȚȓțȬǰȩȏȓȞȖȝȡțȘȠ[Save]ȖțȎȔȚȖ
ȘșȎȐȖȦȡEnterǵȎȠȓȚȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎțȎȔȎȐȘșȎȐȖȦȡ
CtrlȐȩȏȞȎȐȝȡțȘȠ[Exit]ȖțȎȔȎȐȘșȎȐȖȦȡEnter.

ēČěğĝĖěĜĚďĜČĘĘħ*:1+3+:).ɉɪɨɝɪɚɦɦɚɝɟɧɟɪɚɬɨɪɚɛɭɥɵɠɧɢɤɚɗɥɚɋɜɟɣɝɚɪɬɚ
Ʉɪɚɮɬɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣɢɡɤɚɦɧɹɜɩɟɱɚɯɱɟɪɟɩɚɲɤɚ
ɢɡ@@
3.
4. print('Starting stone brick crafting program...')
5.
6.local NUM_FURNACES = 5
7. local brickCount = 0

ǸȜțȟȠȎțȠȎNUM _ FURNACES ȐȫȠȜȗȝȞȜȑȞȎȚȚȓȐȩȝȜșțȭȓȠ
ȠȡȔȓȕȎȒȎȥȡȥȠȜȖȐȝȞȜȑȞȎȚȚȓcob m inerȖȕȑșȎȐȩ
 ǽȓȞȓȚȓț țȎȭ b r i c k C o u n t  Ȝ Ƞ ȟșȓȔȖ ȐȎȓ Ƞ ȘȜș Ȗ ȥȓȟ Ƞ ȐȜ
ȟȜȕȒȎțțȩȣȥȓȞȓȝȎȦȘȜȗȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗ

ěĜĚĎđĜĖČ®ĝħĞĚĝĞĔ¯ģđĜđěČĤĖĔ
ǿȜȟȠȞȜȘȖțȎȥȖțȎȓȠȟȭȏȓȟȘȜțȓȥțȩȗȤȖȘșȜȟțȜȐțȜȗȥȎȟȠȖ
ȝȞȜȑȞȎȚȚȩǼțȝȞȜȒȜșȔȎȓȠȟȭȒȜȠȓȣȝȜȞȝȜȘȎȡȥȓȞȓȝȎȦȘȖ
ȓȟȠȪȠȜȝșȖȐȜȖșȖȝȜȘȎȖȑȞȜȘțȓțȎȔȚȓȠȟȜȥȓȠȎțȖȓȘșȎȐȖȦ
Ctrl+TȥȠȜȏȩȕȎȐȓȞȦȖȠȪȝȞȜȑȞȎȚȚȡ
brickcrafter
8. while true do
ɩɪɨɜɟɪɤɚɡɚɩɪɚɜɥɟɧɚɥɢɬɨɩɥɢɜɨɦɱɟɪɟɩɚɲɤɚ
10.
if turtle.getFuelLevel() < (2 * NUM_FURNACES) then
11.
error('Turtle needs more fuel!')
12.
end

ǰȠȓșȓȫȠȜȑȜȤȖȘșȎȝȞȜȑȞȎȚȚȎȟțȎȥȎșȎȝȞȜȐȓȞȭȓȠȥȠȜ
ȡȥȓȞȓȝȎȦȘȖȒȜȟȠȎȠȜȥțȜȠȜȝșȖȐȎȥȠȜȏȩȒȜȏȞȎȠȪȟȭȒȜȘȎȔ
ȒȜȗȝȓȥȖȖȕȎȠȓȚȐȓȞțȡȠȪȟȭȘȟȡțȒȡȘȡǿȠȞȜȘȖȘȜȒȎ²

186

DZǹǮǰǮ

ȎțȎșȜȑȖȥțȩȟȠȞȜȘȎȚ²ȐȝȞȜȑȞȎȚȚȓcob m inerȖȕ
ȑșȎȐȩǸȜȒȟȠȞȜȘȖȝȞȜȐȓȞȭȓȠȥȠȜȘȜșȖȥȓȟȠȐȜȠȜȝșȖȐȎ ȡ
ȥȓȞȓȝȎȦȘȖȘȎȘȚȖțȖȚȡȚȐȒȐȜȓȏȜșȪȦȓȥȖȟșȎȝȓȥȓȗdzȟșȖ
ȫȠȜțȓȠȎȘȐȩȕȜȐȢȡțȘȤȖȖerror()ȐȟȠȞȜȘȓȕȎȐȓȞȦȖȠ
ȞȎȏȜȠȡȝȞȜȑȞȎȚȚȩ

ĝčĚĜĖČĘęīĔēěđģđĕ
dzȟșȖȡȥȓȞȓȝȎȦȘȖȒȜȟȠȎȠȜȥțȜȠȜȝșȖȐȎȥȠȜȏȩȝȞȜȗȠȖȝȜȒȜ
ȐȟȓȚȖȝȓȥȎȚȖȖȐȓȞțȡȠȪȟȭȜțȎȐȩȏȖȞȎȓȠȭȥȓȗȘȡȖțȐȓț
ȠȎȞȭȒșȭȣȞȎțȓțȖȭȟȜȏȞȎțțȩȣȏșȜȘȜȐȠȎȘȥȠȜȘȜȑȒȎȜțȎ
ȏȡȒȓȠȐȩțȖȚȎȠȪȘȎȚȓțȪȖȕȝȓȥȖȜțȏȡȒȓȠȞȎȕȚȓȧȓțȖȚȓțțȜ
ȐȫȠȜȗȭȥȓȗȘȓ
brickcrafter
14.

turtle.select(1) --

ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜɹɱɟɣɤɭ

ǵȎȠȓȚȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘȤȖȘșȡforȐȟȠȞȜȘȓ
ǻȎȘȎȔȒȜȗȖȠȓȞȎȤȖȖȤȖȘșȎȥȓȞȓȝȎȦȘȎȐȩȠȎȟȘȖȐȎȓȠȝȓ
ȞȓȝșȎȐșȓțțȩȗȘȎȚȓțȪȖȕȝȓȥȖȝȜȒȘȜȠȜȞȜȗțȎȣȜȒȖȠȟȭȖ
ȝȜȚȓȧȎȓȠȓȑȜȐȭȥȓȗȘȡǸȜȑȒȎȥȓȞȓȝȎȦȘȎȝȜșțȜȟȠȪȬȕȎ
ȝȜșțȖȠȭȥȓȗȘȡ ȏșȜȘȎ ȤȖȘșȕȎȐȓȞȦȖȠȟȭȥȠȜȏȩȚȜȔțȜ
ȏȩșȜȘȞȎȢȠȖȠȪȘȎȚȓțțȩȗȘȖȞȝȖȥȖȕȟȜȏȞȎțțȩȣȏșȜȘȜȐ
ǮȝȜȘȎȭȥȓȗȘȎȖțȐȓțȠȎȞȭțȓȕȎȝȜșțȓțȎȖȟȝȜșțȓțȖȓȤȖȘșȎ
ȝȞȜȒȜșȔȎȓȠȟȭȖȥȓȞȓȝȎȦȘȎȝȓȞȓȣȜȒȖȠȘȟșȓȒȡȬȧȓȗȝȓȥȖ
ȖȠȎȘȒȎșȓȓ
brickcrafter
16.
-- ɫɛɨɪɤɚɦɧɹɢɡɩɟɱɟɣ
17.
for i = 1, NUM_FURNACES do
18.
turtle.suckUp(64 - turtle.getItemCount(1)) -get stone from furnace
19.
if turtle.getItemCount(1) == 64 then
20.
break -- ɨɫɬɚɧɨɜɤɚɟɫɥɢɫɨɛɪɚɧɨɛɥɨɤɚ
ɤɚɦɧɹ
21.
end
22.
if i ~= NUM_FURNACES then
23.
turtle.back() -- ɩɟɪɟɦɟɳɟɧɢɟɤɫɥɟɞɭɸɳɟɣɩɟɱɢ
24.
end
25.
end

ǽǾǼǶǵǰǼDzǿȀǰǼǸǮǺdzǻǻȉȃǸǶǾǽǶȅdzǷ

187

ȂȡțȘȤȖȭturtle.suckUp()ȐȩțȖȚȎȓȠȘȎȚȓțțȩȓȏșȜ
ȘȖȖȕȝȓȥȖțȎȒȥȓȞȓȝȎȦȘȜȗȖȟȜȣȞȎțȭȓȠȖȣȐȐȩȏȞȎțțȜȗ
ȭȥȓȗȘȓǺȜȔțȜȝȓȞȓȒȎȠȪȫȠȜȗȢȡțȘȤȖȖȥȖȟșȜȖȜȑȞȎțȖȥȖȠȪ
ȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȝȜȚȓȧȎȓȚȩȣȐȐȩȏȞȎțțȡȬȭȥȓȗȘȡȥȓȞȓ
ȝȎȦȘȖȀȎȘȔȓȚȜȔțȜȐȜȟȝȜșȪȕȜȐȎȠȪȟȭȢȡțȘȤȖȭȚȖturtle.
suck() Ȗturtle.suckDown()ȥȠȜȏȩȝȞȖțȖȚȎȠȪȏșȜȘȖȖȕ
ȝȓȥȓȗȘȜȠȜȞȩȓțȎȣȜȒȭȠȟȭȝȓȞȓȒȖșȖȝȜȒȥȓȞȓȝȎȦȘȜȗȟȜȜȠ
ȐȓȠȟȠȐȓțțȜ
ǰțȎȦȓȚȟșȡȥȎȓȝȜȟȘȜșȪȘȡȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭȝȜȒ
ȝȓȥȎȚȖȜțȎȐȩȠȎȟȘȖȐȎȓȠȝȞȓȒȚȓȠȩȖȕȐȩȐȜȒțȜȗȭȥȓȗȘȖ
ȝȓȥȖȅȓȞȓȝȎȦȘȎȚȜȔȓȠȣȞȎțȖȠȪțȓȏȜșȓȓȘȎȚȓțțȩȣȏșȜ
ȘȜȐȐȭȥȓȗȘȓȖțȐȓțȠȎȞȭȝȜȫȠȜȚȡȥȠȜȏȩȖȟȘșȬȥȖȠȪȝȓȞȓ
ȝȜșțȓțȖȓȚȩȐȩȝȜșțȭȓȚțȓȘȜȠȜȞȩȓȚȎȠȓȚȎȠȖȥȓȟȘȖȓȐȩ
ȥȖȟșȓțȖȭȂȡțȘȤȖȭturtle.getItemCount(1)ȐȜȕȐȞȎȧȎȓȠ
ȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȘȜȠȜȞȩȓȡȔȓȓȟȠȪȐ ȭȥȓȗȘȓȖțȐȓțȠȎȞȭ.
ǽȜșȡȥȓțțȜȓȥȖȟșȜȚȩȐȩȥȖȠȎȓȚȖȕȥȠȜȏȩȝȜșȡȥȖȠȪȘȜ
șȖȥȓȟȠȐȜȏșȜȘȜȐȘȜȠȜȞȩȓȥȓȞȓȝȎȦȘȎȓȧȓȒȜșȔțȎȒȜȟȠȎȠȪ
ȖȕȝȓȥȓȗǻȎȝȞȖȚȓȞȓȟșȖȐȭȥȓȗȘȓȖțȐȓțȠȎȞȭȡȔȓȓȟȠȪ
ȘȎȚȓțțȩȣȏșȜȘȜȐȎȐȝȓȥȖțȎȣȜȒȖȠȟȭȘȎȚȓțțȩȣȏșȜ
ȘȎȥȓȞȓȝȎȦȘȎțȓȒȜșȔțȎȐȩțȖȚȎȠȪȐȟȓȏșȜȘȎǰȚȓȟȠȜ
ȫȠȜȑȜȜțȎȒȜșȔțȎȐȩțȡȠȪșȖȦȪ ȏșȜȘȎ
dzȟșȖȐȭȥȓȗȘȓȖțȐȓțȠȎȞȭțȎȣȜȒȖȠȟȭȏșȜȘȎȒȜ
ȏȎȐșȓțȖȓȏșȜȘȜȐȝȞȓȘȞȎȧȎȓȠȟȭǶțȟȠȞȡȘȤȖȭifȐȟȠȞȜȘȓ
ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrueȖȐȩȝȜșțȓțȖȓȤȖȘșȎfor
ȝȞȓȘȞȎȧȎȓȠȟȭ.
dzȟșȖȭȥȓȗȘȎȖțȐȓțȠȎȞȭȓȧȓțȓȕȎȝȜșțȓțȎȥȓȞȓȝȎȦ
ȘȎȝȞȜȒȜșȔȎȓȠȒȐȖȔȓțȖȓȖȝȓȞȓȣȜȒȖȠȘȟșȓȒȡȬȧȓȗȝȓȥȖ
ȀȎȘȝȞȜȒȜșȔȎȓȠȟȭȒȜȠȓȣȝȜȞȝȜȘȎȥȓȞȓȝȎȦȘȎțȓȒȜȟȠȖȑ
țȓȠȝȜȟșȓȒțȓȗȝȓȥȖȋȠȜȝȞȜȖȕȜȗȒȓȠȘȜȑȒȎi²ȝȓȞȓȚȓțțȎȭ
ȤȖȘșȎfor²ȟȠȎțȓȠȞȎȐțȎȕțȎȥȓțȖȬȘȜțȟȠȎțȠȩNUM _ FURNACESȀȎȘȖȚȜȏȞȎȕȜȚȖȟȝȜșțȓțȖȓȤȖȘșȎȝȞȜȒȜșȔȎȓȠ
ȟȭȝȜȘȎȐȩȝȜșțȭȓȠȟȭȡȟșȜȐȖȓȖțȟȠȞȡȘȤȖȖifȐȟȠȞȜȘȓ
ȓȟșȖȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗițȓȞȎȐțȜ ȕțȎȥȓțȖȬȘȜțȟȠȎțȠȩ
NUM _ FURNACESdzȟșȖȡȟșȜȐȖȓțȓȐȩȝȜșțȭȓȠȟȭȖȟȝȜșțȓ
țȖȓȤȖȘșȎȝȞȓȘȞȎȧȎȓȠȟȭ

188

DZǹǮǰǮ

ĔēďĚĞĚĎėđęĔđĖĔĜěĔģđĕ
ǸȜȑȒȎȥȓȞȓȝȎȦȘȎȟȜȏȓȞȓȠȘȎȚȓțțȩȣȏșȜȘȎȖȣțȡȔțȜȝȓ
ȞȓȞȎȏȜȠȎȠȪȐȘȖȞȝȖȥȖǻȎȝȜȚțȬȥȠȜȥȓȞȓȝȎȦȘȎȝȞȜȖȕȐȜ
ȒȖȠȘȎȚȓțțȩȓȘȖȞȝȖȥȖȝȞȖȚȓțȭȭȞȓȤȓȝȠȘȎȘȠȩȫȠȜȒȓșȎ
ȓȦȪțȎȐȓȞȟȠȎȘȓțȜȘȞȎȢȠȖȠȖȣȐȟȜȏȟȠȐȓțțȜȚȖțȐȓțȠȎȞȓ
DzșȭȝȓȞȓȞȎȏȜȠȘȖȘȎȚȓțțȩȣȏșȜȘȜȐȐȘȎȚȓțțȩȓȘȖȞȝȖȥȖ
țȡȔțȜȝȜȚȓȟȠȖȠȪȜȒȖțȎȘȜȐȜȓȘȜșȖȥȓȟȠȐȜȘȎȚȓțțȩȣȏșȜȘȜȐ
ȐȥȓȠȩȞȓȭȥȓȗȘȖȖțȐȓțȠȎȞȭȥȠȜȏȩȟȢȜȞȚȖȞȜȐȎȠȪȘȐȎȒȞȎȠ
ȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϬ͘ϳ͘ˀ̶̴̵̸̡̡̡̛̛̛̖̖̪̯̬̯̥̖̦̦̼̬̪̖̜̬̖̌̌̌̏̐;̭̣̖̏̌Ϳ̛̛̦̖̦̯̬̖̏̌
̸̡̛̖̬̖̪̹̌;̭̪̬̌̏̌Ϳ

ǸȜȑȒȎȏșȜȘȖȟȜȏȞȎțȩȖȞȎȕȚȓȧȓțȩȐȟȜȜȠȐȓȠȟȠȐȖȖȟȞȓ
ȤȓȝȠȜȚȘȞȎȢȠȎȐȩȕȜȐȢȡțȘȤȖȖturtle.craft() ȝȞȖȐȜȒȖȠȘ
ȟȜȕȒȎțȖȬȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗȖȟȜȣȞȎțȓțȖȬȖȣȐȠȓȘȡȧȓȗ
ȭȥȓȗȘȓ dzȟșȖ Ƞȩ ȣȜȥȓȦȪ ȥȠȜȏȩ ȥȓȞȓȝȎȦȘȎ ȟȜȕȒȎȐȎșȎ
ȠȜșȪȘȜȜȝȞȓȒȓșȓțțȜȓȘȜșȖȥȓȟȠȐȜȘȖȞȝȖȥȓȗȒȎȔȓȓȟșȖȡ
țȓȓȒȜȟȠȎȠȜȥțȜȏșȜȘȜȐȒșȭȏȜșȪȦȓȑȜȘȜșȖȥȓȟȠȐȎȝȓȞȓȒȎȗ
ȐȢȡțȘȤȖȬturtle.craft() ȤȓșȜȥȖȟșȓțțȩȗȎȞȑȡȚȓțȠ.
ǻȎȝȞȖȚȓȞȢȡțȘȤȖȭturtle.craft(1)ȏȡȒȓȠȒȜȏȎȐșȭȠȪ
ȠȜșȪȘȜȜȒȖțȘȎȚȓțțȩȗȏșȜȘȐȘȎȔȒȡȬ ȖȕȥȓȠȩȞȓȣȭȥȓȓȘȖ
ȟȜȕȒȎȐȎȠȪȜȒȖțȘȎȚȓțțȩȗȘȖȞȝȖȥ
ǸȜȒȐȟȠȞȜȘȓȝȞȜȐȓȞȭȓȠțȎșȖȥȖȓȘȎȚȓțțȩȣȏșȜȘȜȐ
ȐȭȥȓȗȘȓȖțȐȓțȠȎȞȭdzȟșȖȫȠȜȠȎȘȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠ
ȘȟȠȞȜȘȓ
brickcrafter
ɨɛɪɚɛɨɬɤɚɛɥɨɤɨɜɤɚɦɧɹ
28.
if turtle.getItemCount(1) == 64 then
WXUWOHWUDQVIHU7R  ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜ

ǽǾǼǶǵǰǼDzǿȀǰǼǸǮǺdzǻǻȉȃǸǶǾǽǶȅdzǷ

189

ɹɱɟɣɤɭ
WXUWOHWUDQVIHU7R  ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜ
ɹɱɟɣɤɭ
WXUWOHWUDQVIHU7R  ɩɨɦɟɳɟɧɢɟɤɚɦɧɹɜ
ɹɱɟɣɤɭ
WXUWOHVHOHFW  ɩɨɦɟɳɟɧɢɟɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣ
ɜɹɱɟɣɤɭ
WXUWOHFUDIW ɤɪɚɮɬɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣ
34.
brickCount = brickCount + 64
35.
print('Total stone bricks: ' .. brickCount)

ȂȡțȘȤȖȭturtle.transferTo()ȝȓȞȓȚȓȧȎȓȠȏșȜȘȖȖȕ
ȠȓȘȡȧȓȗ ȭȥȓȗȘȖȐȒȞȡȑȡȬ. ȀȩȚȜȔȓȦȪȡȘȎȕȎȠȪȐȘȎȘȡȬ
ȖȚȓțțȜȝȓȞȓȒȎȐȤȓșȜȓȥȖȟșȜȐȘȎȥȓȟȠȐȓȝȓȞȐȜȑȜȝȎȞȎȚȓȠȞȎ
Ȣȡ ț Ș Ȥ Ȗ Ȗ. ǰ Ƞ ȜȞȜȗ ȝȎȞȎ Țȓ Ƞ Ȟ Ȝȝ ȞȓȒȓș ȭȓ Ƞ ȘȜș Ȗ ȥȓ ȟ Ƞ ȐȜ
ȝȓȞȓȚȓȧȎȓȚȩȣȏșȜȘȜȐǰȩȕȜȐȢȡțȘȤȖȖturtle.transferTo(2, 16)ȐȟȠȞȜȘȓȝȓȞȓȚȓȧȎȓȠȘȎȚȓțțȩȣȏșȜȘȜȐ
ȖȕȠȓȘȡȧȓȗ ȭȥȓȗȘȖ (ȝȜȒțȜȚȓȞȜȚȘȎȘȡȘȎȕȎțȜȐȟȠȞȜȘȓ
 ȐȭȥȓȗȘȡǸȜȒȐȟȠȞȜȘȎȣȖȝȓȞȓȚȓȧȎȓȠȘȎȚȓț
țȩȣȏșȜȘȜȐȐȭȥȓȗȘȖȖȀȓȝȓȞȪȞȎȟȝȜșȜȔȓțȖȓȏșȜȘȜȐȐ
ȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖȟȜȜȠȐȓȠȟȠȐȡȓȠȞȓȤȓȝȠȡȝȜȘȎȕȎțțȜ
ȚȡțȎȞȖȟǵȎȠȓȚȘȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬ
turtle.select(16)ȒșȭȐȩȏȜȞȎȭȥȓȗȘȖȐȘȎȥȓȟȠȐȓȠȓ
ȘȡȧȓȗȝȜȫȠȜȚȡȘȜȑȒȎȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȟȭȢȡțȘȤȖȭ
turtle.craft()ȜȏȞȎȏȜȠȎțțȩȓȘȎȚȓțțȩȓȘȖȞȝȖȥȖȏȡȒȡȠ
ȝȜȚȓȧȓțȩȐȭȥȓȗȘȡ 16.
ǰȟȠȞȜȘȎȣȖȝȞȜȖȕȐȜȒȖȠȟȭȝȜȒȟȥȓȠȖȐȩȐȜȒțȎȫȘȞȎț
ȘȜșȖȥȓȟȠȐȎȖȕȑȜȠȜȐșȓțțȩȣȥȓȞȓȝȎȦȘȜȗȘȖȞȝȖȥȓȗ
dzȟșȖȥȓȞȓȝȎȦȘȎȝȜȟșȓȝȞȜȣȜȔȒȓțȖȭȐȟȓȣȝȓȥȓȗțȓȟȜ
ȏȞȎșȎȘȎȚȓțțȩȣȏșȜȘȎȐȭȥȓȗȘȡȘȜȒȐȟȠȞȜȘȓȝȞȖ
ȜȟȠȎțȎȐșȖȐȎȓȠȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩțȎȟȓȘȡțȒ ȒȐȓ
ȚȖțȡȠȩ ȥȠȜȏȩȝȓȥȖȝȓȞȓȝșȎȐȖșȖȒȜȝȜșțȖȠȓșȪțȩȓȘȎ
ȚȓțțȩȓȏșȜȘȖ
brickcrafter
36.
else
37.
print('Not enough stone yet. Sleeping...')
RVVOHHS  ɨɠɢɞɚɧɢɟɦɢɧɭɬɵ
39.
end

190

DZǹǮǰǮ

ǽȜȟșȓȐȜȕȜȏțȜȐșȓțȖȭȞȎȏȜȠȩȝȞȜȑȞȎȚȚȩȥȓȞȓȝȎȦȘȎ
ȐȓȞțȓȠȟȭȘȝȓȞȐȜȗȝȓȥȖǻȓȕȎȐȖȟȖȚȜȜȠȠȜȑȜȏȩșȖșȖȟȜȕ
ȒȎțȩȘȎȚȓțțȩȓȘȖȞȝȖȥȖȥȓȞȓȝȎȦȘȓțȡȔțȜȐȓȞțȡȠȪȟȭȘ
ȝȓȞȐȜȗȏșȖȔȎȗȦȓȗȘȑȓțȓȞȎȠȜȞȡȏȡșȩȔțȖȘȎȝȓȥȖȥȠȜȏȩ
țȎȦȞȜȏȜȠȚȜȑȟȜȏȞȎȠȪȘȎȘȚȜȔțȜȏȜșȪȦȓȝȓȞȓȝșȎȐșȓțțȩȣ
ȘȎȚțȓȗ

ĎĚēĎĜČĥđęĔđģđĜđěČĤĖĔ
ęČĔĝġĚĐęğĪěĚēĔĢĔĪ
ȅȠȜȏȩȝȓȞȓȚȓȟȠȖȠȪȥȓȞȓȝȎȦȘȡȐȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓțȎȚ
țȡȔțȜȒȐȖȑȎȠȪȓȓȐȟȠȜȞȜțȡȝȓȞȐȜȗȝȓȥȖȝȜȘȎțȎȦȞȜȏȜȠțȓ
ȜȘȎȔȓȠȟȭȝȞȭȚȜȝȜȒțȓȗȀȎȚȥȓȞȓȝȎȦȘȎȟșȜȔȖȠȐȟȡțȒȡȘ
ȟȐȜȖȘȖȞȝȖȥȖǵȎȫȠȖȒȐȖȔȓțȖȭȜȠȐȓȥȎȓȠȤȖȘșforțȎȥȖ
țȎȬȧȖȗȟȭȐȟȠȞȜȘȓ
brickcrafter
ɩɟɪɟɦɟɳɟɧɢɟɤɫɭɧɞɭɤɭ ɨɤɨɥɨɩɟɪɜɨɣɩɟɱɢ
42.
for i = 1, NUM_FURNACES - 1 do
43.
turtle.forward()
44.
end
WXUWOHWXUQ/HIW ɩɨɜɨɪɨɬɥɢɰɟɜɨɣɫɬɨɪɨɧɨɣɤ
ɫɭɧɞɭɤɭ
WXUWOHVHOHFW  ɜɵɛɨɪɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣ
WXUWOHGURS ɩɨɦɟɳɟɧɢɟɤɚɦɟɧɧɵɯɤɢɪɩɢɱɟɣɜ
ɫɭɧɞɭɤ
WXUWOHWXUQ5LJKW ɩɨɜɨɪɨɬɤɝɟɧɟɪɚɬɨɪɭ
49. end

ǸȜȒȐȟȠȞȜȘȎȣ²ȡȝȞȎȐșȭȓȠȝȓȞȓȚȓȧȓțȖȓȚȥȓȞȓ
ȝȎȦȘȖȐȝȓȞȓȒȠȎȘȖȚȜȏȞȎȕȜȚȥȠȜȏȩȜțȎȐȓȞțȡșȎȟȪȐȖȟ
ȣȜȒțȜȓȝȜșȜȔȓțȖȓȀȜȓȟȠȪȥȓȞȓȝȎȦȘȎȟȜȐȓȞȦȎȓȠNUM _
FURNACES - 1ȝȜȟșȓȒȜȐȎȠȓșȪțȩȣȝȓȞȓȚȓȧȓțȖȗȝȜȘȎțȓ
ȜȘȎȔȓȠȟȭțȖȔȓȝȓȞȐȜȗȝȓȥȖǰȟȠȞȜȘȓȘȜțȟȠȎțȠȓNUM _
FURNACESȏȩșȜȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓ 5ȝȜȫȠȜȚȡȥȓȞȓȝȎȦȘȎ
ȟȜȐȓȞȦȖȠȥȓȠȩȞȓȝȜȟșȓȒȜȐȎȠȓșȪțȩȣȝȓȞȓȚȓȧȓțȖȭǸȜȒȐ
ȟȠȞȜȘȓȝȜȐȜȞȎȥȖȐȎȓȠȥȓȞȓȝȎȦȘȡșȖȤȓȐȜȗȟȠȜȞȜțȜȗȘȟȡț
ȒȡȘȡȎȘȜȒȐȟȠȞȜȘȓȐȩȏȖȞȎȓȠȐȟȓȖȚȓȬȧȖȓȟȭȘȎȚȓțțȩȓ
ȘȖȞȝȖȥȖȘȜȠȜȞȩȓȏȩșȖȟȜȕȒȎțȩȖȟȜȣȞȎțȓțȩȐȭȥȓȗȘȓ

ǽǾǼǶǵǰǼDzǿȀǰǼǸǮǺdzǻǻȉȃǸǶǾǽǶȅdzǷ

191

ȖțȐȓțȠȎȞȭǵȎȠȓȚȘȜȒȐȟȠȞȜȘȓȝȜȚȓȧȎȓȠȐȩȏȞȎțțȩȓȘȎ
ȚȓțțȩȓȘȖȞȝȖȥȖȐȟȡțȒȡȘ ȖșȖțȖȥȓȑȜțȓȒȓșȎȓȠȓȟșȖȘȖȞ
ȝȖȥȖțȓȏȩșȖȖȕȑȜȠȜȐșȓțȩ ȎȘȜȒȐȟȠȞȜȘȓȝȜȐȜȞȎȥȖȐȎȓȠ
ȥȓȞȓȝȎȦȘȡșȖȤȓȐȜȗȟȠȜȞȜțȜȗȘȑȓțȓȞȎȠȜȞȡȏȡșȩȔțȖȘȎ
ȂȖțȎșȪțȎȭȖțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠ
ȏȓȟȘȜțȓȥțȩȗȤȖȘș whilețȎȥȎȐȦȖȗȟȭȐȟȠȞȜȘȓȝȜȫȠȜ
ȚȡȘȜȑȒȎȝȞȜȑȞȎȚȚȎȒȜȟȠȖȑȎȓȠȫȠȜȗȠȜȥȘȖȖȟȝȜșțȓțȖȓ
ȟțȜȐȎȝȓȞȓȣȜȒȖȠȘȟȠȞȜȘȓȀȎȘȖȚȜȏȞȎȕȜȚȐȓȟȪȝȞȜȤȓȟȟ
ȟȏȜȞȎȘȎȚțȭȝȓȞȓȞȎȏȜȠȘȎȓȑȜȐȘȎȚȓțțȩȓȘȖȞȝȖȥȖȖȟȜ
ȣȞȎțȓțȖȓȑȜȠȜȐȩȣȘȖȞȝȖȥȓȗȐȟȡțȒȡȘȓȝȜȐȠȜȞȭȬȠȟȭȟțȜȐȎ
ȖȟțȜȐȎ
ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"ĖĚęĐĔĞđĜĝĖČīĠČčĜĔĖČ

DzșȭȝȞȖȑȜȠȜȐșȓțȖȭȠȜȞȠȎȐ0LQHFUDIWțȓȜȏȣȜȒȖȚȜȟșȓȒȜ
ȐȎȠȪȜȒțȜȚȡȖȕȟȎȚȩȣȟșȜȔțȩȣȞȓȤȓȝȠȜȐȐȖȑȞȓȘȜȠȜȞȩȗ
ȠȞȓȏȡȓȠȚȜșȜȘȜȭȗȤȜȟȎȣȎȞȖȝȦȓțȖȤȡȘȎȘȝȜȘȎȕȎțȜțȎ
ȞȖȟ

ˀ̛̭͘ϭϬ͘ϴ͘ˀ̶̴̡̨̛̖̖̪̯̬̯̯̬̯̬̖̌̌̌̏̐DŝŶĞĐƌĂŌ

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

192

DZǹǮǰǮ

ĝĞĜĚĔĞđėĨĝĞĎĚēĐČęĔīēČĎĚĐĔĖČ
ǻȎȦȑȓțȓȞȎȠȜȞȏȡșȩȔțȖȘȎȖȥȓȞȓȝȎȦȘȖȠȜȓȟȠȪȜȟțȜȐțȎȭ
ȝȞȜȖȕȐȜȒȟȠȐȓțțȎȭșȖțȖȭȒȜȟȖȣȝȜȞȜȟȠȎȬȠȟȭțȎȡșȖȤȓȑȒȓ
ȜțȖȝȜȒȐȓȞȑȎȬȠȟȭȐȜȕȒȓȗȟȠȐȖȬȒȜȔȒȭȖȐȓȠȞȎȋȠȜȟșȜȔțȜ
țȎȕȐȎȠȪȕȎȐȜȒȜȚȀȓȝȓȞȪȘȜȑȒȎȡȠȓȏȭȓȟȠȪțȓȜȑȞȎțȖȥȓțțȩȗ
ȖȟȠȜȥțȖȘȏȡșȩȔțȖȘȎȖȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗȚȜȔțȜȝȜ
ȟȠȞȜȖȠȪȕȎȐȜȒȟȘȜȓȕȒȎțȖȓȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟȖ

ˀ̛̭͘ϭϬ͘ϵ͘ʯ̸̨̡̡̛̛̛̛̦̖̣̬̥̖̺̖̦̖̦̖̬̯̬̱̣̼̙̦̖̬̖̪̹̖͕̔̌̔́̌́̐̌̌̍̌̌̚
̶̨̨̨̨̨̨̡̛̛̛̪̭̯̬̖̦̦̖̭̭̯̖̦̦̜̪̬̱̍̏̔̚

ˀ̛̭͘ϭϬ͘ϭϬ͘ʰ̨̡̡̨̛̛̛̛̦̯̖̬̖̬̭̱̥̖̦̖̬̯̬̥̱̣̼̙̦̖̬̯̦̼̥̽̔̏́̐̌̌̍̌̔̌̏
̨̨̨̪̥̣̼̏̔̌̔̌̏

ǽǾǼǶǵǰǼDzǿȀǰǼǸǮǺdzǻǻȉȃǸǶǾǽǶȅdzǷ

193

DzȜȐȜșȪțȜȟȘȜȞȜȠȐȜȖȥȓȞȓȝȎȦȘȖȝȞȜȖȕȐȓȒȡȠȚțȜȔȓȟȠȐȜ
ȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϬ͘ϭϭ͘ʿ̸̨̡̨̨̨̨̨̨̛̛̬̣̖̥̭̬̪̥̣̹̖̦̖̯̣̬̥̙̦̭̯̥̍̍̽̍̌̐̔̌́̏́̚
̨̨̛̛̪̬̬̥̥̬̦̐̌̏̌́͊

ǿȠȞȜȖȠȓșȪȟȠȐȜȕȒȎțȖȭȒșȭȑȓțȓȞȎȠȜȞȎȏȡșȩȔțȖȘȎțȓ
ȜȏȭȕȎȠȓșȪțȜțȜȝȜȘȞȎȗțȓȗȚȓȞȓȠȓȏȓțȓȝȞȖȒȓȠȟȭȒȜȏȩ
ȐȎȠȪȘȎȚȓțțȩȓȏșȜȘȖȐȞȡȥțȡȬȓȟșȖȠȩȞȓȦȖȦȪȟȭțȎȓȑȜ
ȝȜȟȠȞȜȗȘȡǰȑșȎȐȎȣȖȠȩȡȕțȎȓȦȪȘȎȘȕȎȝȞȜȑȞȎȚȚȖ
ȞȜȐȎȠȪȥȓȞȓȝȎȦȓȘȥȠȜȏȩȜțȖȐȜȕȐȜȒȖșȖȟȠȓțȩȖȟȠȞȜȖșȖ
ȘȜȚțȎȠȩ

ģĞĚĘħğēęČėĔ
ǰȫȠȜȗȑșȎȐȓȠȩȡȕțȎșȘȎȘȟȚȓțȖȠȪȖțȟȠȞȡȚȓțȠȥȓȞȓȝȎȦ
ȘȖțȎȐȓȞȟȠȎȘȖȟȝȜșȪȕȡȭȢȡțȘȤȖȖturtle.equipLeft()Ȗ
turtle.equipRight()ǼȟțȎȧȓțȖȓȥȓȞȓȝȎȦȘȖȐȓȞȟȠȎȘȜȚ
ȝȜȕȐȜșȭȓȠȓȗȘȞȎȢȠȖȠȪ ȝȞȖ ȝȜȚȜȧȖȢȡțȘȤȖȖ turtle.
craft().
ȅȠȜȏȩȐȩțȖȚȎȠȪȘȎȘȖȓșȖȏȜȝȞȓȒȚȓȠȩȖșȖȏșȜȘȖȖȕ
ȘȜțȠȓȗțȓȞȜȐȠȎȘȖȣȘȎȘȟȡțȒȡȘȖȖșȖȝȓȥȖȟșȓȒȡȓȠȖȟ
ȝȜșȪȕȜȐȎȠȪȢȡțȘȤȖȬturtle.suck()ȋȠȜȗȢȡțȘȤȖȖȚȜȔ

194

DZǹǮǰǮ

țȜȝȓȞȓȒȎȠȪȥȖȟșȜȐȜȗȎȞȑȡȚȓțȠȥȠȜȏȩȜȑȞȎțȖȥȖȠȪȘȜșȖ
ȥȓȟȠȐȜȖȕȩȚȎȓȚȩȣȝȞȓȒȚȓȠȜȐȏșȜȘȜȐȂȡțȘȤȖȖturtle.
suckUp()Ȗturtle.suckDown() ȝȜȕȐȜșȭȬȠȥȓȞȓȝȎȦȘȓ
ȐȕȎȖȚȜȒȓȗȟȠȐȜȐȎȠȪȟȘȜțȠȓȗțȓȞȎȚȖȐȩȦȓȖșȖțȖȔȓțȓȓ
ȟȜȜȠȐȓȠȟȠȐȓțțȜ
ǽȓȞȓȒȐȩȕȜȐȜȚȢȡțȘȤȖȖturtle.craft()țȡȔțȜȞȎȟ
ȝȜșȜȔȖȠȪȘȜȚȝȜțȓțȠȩȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖȐȟȜȜȠȐȓȠ
ȟȠȐȖȖȟȞȓȤȓȝȠȜȚȠȎȘȔȓȘȎȘȠȩȫȠȜȒȓșȎșȏȩțȎȐȓȞȟȠȎȘȓ
DzșȭȞȎȕȚȓȧȓțȖȭȖțȑȞȓȒȖȓțȠȜȐȞȓȤȓȝȠȎȐȞȎȕțȩȣȭȥȓȗȘȎȣ
ȚȜȔțȜȖȟȝȜșȪȕȜȐȎȠȪȢȡțȘȤȖȬturtle.transferTo()ǽȜ
ȟșȓȐȩȕȜȐȎȢȡțȘȤȖȖturtle.craft()ȟȜȕȒȎȐȎȓȚȩȓȝȞȓȒȚȓ
ȠȩȝȜȭȐȭȠȟȭȐȠȓȘȡȧȓȗȭȥȓȗȘȓȥȓȞȓȝȎȦȘȖ
ǰȟșȓȒȡȬȧȓȗȑșȎȐȓȕȎȖȚȓȐȘȎȚȓțțȩȓȘȖȞȝȖȥȖȒȎȐȎȗ
țȎȥțȓȚȝȞȜȑȞȎȚȚȖȞȜȐȎȠȪȥȓȞȓȝȎȦȓȘȠȎȘȥȠȜȏȩȜțȖțȎȥȎ
șȖȟȠȞȜȖȠȪȒșȭțȎȟȑȖȑȎțȠȟȘȖȓȕȒȎțȖȭ

11
ĎĚēĎđĐđęĔđĝĞđę
ǿȠȞȜȖȠȓșȪȟȠȐȜȖȕȏșȜȘȜȐȚȜȔȓȠȜȘȎȕȎȠȪȟȭ
ȜȝȎȟțȩȚȖȒȜșȑȖȚȝȞȜȤȓȟȟȜȚǼȝȎȟțȩȚȝȜȠȜ
ȚȡȥȠȜȚȜȔțȜȡȝȎȟȠȪȟȏȜșȪȦȜȗȐȩȟȜȠȩȓȟșȖ
ȟȠȞȜȖȠȪȐȩȟȜȘȖȓȕȒȎțȖȭȐȞȓȔȖȚȓȐȩȔȖȐȎ
țȖȭ
ǰȚȓȟȠȜȠȜȑȜȥȠȜȏȩȟȠȞȜȖȠȪȟȠȓțȩȟȎȚȜȟȠȜȭȠȓșȪ
țȜȚȜȔțȜȕȎȝȞȜȑȞȎȚȚȖȞȜȐȎȠȪȥȓȞȓȝȎȦȘȡȖȝȜȞȡȥȖȠȪ
ȓȗȫȠȖȜȝȎȟțȩȓȖțȡȒțȩȓȟȠȞȜȖȠȓșȪțȩȓȞȎȏȜȠȩǰȫȠȜȗȑșȎ
ȐȓȚȩȞȎȕȞȎȏȜȠȎȓȚȎșȑȜȞȖȠȚȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȟȠȓțșȬ
ȏȜȑȜȞȎȕȚȓȞȎȒȜȏȎȐȖȐțȓȟȘȜșȪȘȜțȜȐȩȣȢȡțȘȤȖȗȐȚȜȒȡșȪ
hareȃȜȠȭȚȩȖȟȜȟȞȓȒȜȠȜȥȖȚȟȭțȎȟȠȞȜȖȠȓșȪȟȠȐȓȟȠȓțȖȕ
ȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗȫȠȖȢȡțȘȤȖȖȝȞȖȑȜȒțȩȒșȭȞȎȏȜȠȩȟ
șȬȏȩȚȖȏșȜȘȎȚȖțȎȝȞȖȚȓȞȕȓȚșȓȗȟȠȓȘșȜȚȖșȖȒȎȔȓȎȞ
ȏȡȕȎȚȖȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ
ǻȎȥțȓȚȟȒȜȏȎȐșȓțȖȭȒȐȡȣȢȡțȘȤȖȗȐȚȜȒȡșȪhareȜȒ
țȎȏȡȒȓȠȝȜȒȟȥȖȠȩȐȎȠȪȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȐȖțȐȓțȠȎȞȓȥȓ
ȞȓȝȎȦȘȖȎȒȞȡȑȎȭ²ȐȜȕȐȜȒȖȠȪȟȠȓțȩ

196

DZǹǮǰǮ

ˀ̛̭͘ϭϭ͘ϭ͘ˋ̵̸̡̨̨̡̨̡̡̛̛̛̛̛̖̬̖̪̹̭̯̬̯̭̯̖̦̼̣̖̥̣͕̥̖̦̦̼̬̪̖̜͕̌́̍̏̌̚̚
̡̨̛̭̯̖̣̬̱̌̌̍̏̚

ĐĚĜČčĚĞĖČĘĚĐğėī0):ǺȩȒȜȏȎȐȖȚȠȞȖțȜȐȩȓȢȡțȘȤȖȖȘȜȠȜȞȩȓȏȡȒȡȠȟȥȖȠȎȠȪ
ȏșȜȘȖȐȖțȐȓțȠȎȞȓȐȩȏȖȞȎȠȪȖȞȎȕȚȓȧȎȠȪȏșȜȘȖȖȐȜȕȐȜ
ȒȖȠȪȟȠȓțȩǺȩȏȡȒȓȚȖȟȝȜșȪȕȜȐȎȠȪȫȠȖȢȡțȘȤȖȖȖȐȒȞȡ
ȑȖȣȝȞȜȑȞȎȚȚȎȣȖȕȫȠȜȗȘțȖȑȖȝȜȫȠȜȚȡȝȜȚȓȟȠȖȚȖȣȐȚȜ
ȒȡșȪhareȘȜȠȜȞȩȗȚȩȟȜȕȒȎșȖȐȑșȎȐȓǽȓȞȐȩȓȟȠȞȜȘ
ȚȜȒȡșȭhareȜȟȠȎțȡȠȟȭȏȓȕȖȕȚȓțȓțȖȗǽȜȫȠȜȚȡȭȝȜȘȎȔȡ
ȘȜȒȠȜșȪȘȜȒșȭȟȠȞȜȘ²
ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit
hareǽȓȞȓȚȓȟȠȖȘȡȞȟȜȞȐțȖȔțȬȬȥȎȟȠȪȢȎȗșȎȖȝȞȜȒȜș
ȔȖȘȜȒȐȐȜȒȭȟșȓȒȡȬȧȓȓ
hare
...ɩɪɨɩɭɫɤ...
36.
37.
38. -- countInventory ɜɨɡɜɪɚɳɚɟɬɤɨɥɢɱɟɫɬɜɨ
39. -- ɜɫɟɯɛɥɨɤɨɜɜɢɧɜɟɧɬɚɪɟɱɟɪɟɩɚɲɤɢ
40. function countInventory()

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

197

41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.

198

DZǹǮǰǮ

local total = 0
for slot = 1, 16 do
total = total + turtle.getItemCount(slot)
end
return total
end

-- selectAndPlaceDown() ɜɵɛɢɪɚɟɬ ɧɟɩɭɫɬɭɸ ɹɱɟɣɤɭ
-- ɢɩɨɦɟɳɚɟɬɛɥɨɤɢɡɧɟɟɩɨɞɱɟɪɟɩɚɲɤɭ
function selectAndPlaceDown()
for slot = 1, 16 do
if turtle.getItemCount(slot) > 0 then
turtle.select(slot)
turtle.placeDown()
return
end
end
end

-- buildWall() ɫɨɡɞɚɟɬ ɫɬɟɧɭ,
-- ɪɚɫɩɨɥɨɠɟɧɧɭɸ ɩɟɪɟɞ ɱɟɪɟɩɚɲɤɨɣ
function buildWall(length, height)
if hare.countInventory() < length * height then
return false -- ɧɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ
end
turtle.up()
local movingForward = true
for currentHeight = 1, height do
for currentLength = 1, length do
selectAndPlaceDown() -- ɪɚɡɦɟɳɟɧɢɟ ɛɥɨɤɚ
if movingForward and currentLength ~= length
then
turtle.forward()
elseif not movingForward and currentLength ~=
length then

81.
turtle.back()
82.
end
83.
end
84.
if currentHeight ~= height then
85.
turtle.up()
86.
end
87.
movingForward = not movingForward
88.
end
89.
90.
-- ɫɬɟɧɚɝɨɬɨɜɚɩɟɪɟɯɨɞɤɮɢɧɚɥɶɧɨɣɩɨɡɢɰɢɢ
91.
if movingForward then
92.
-- ɱɟɪɟɩɚɲɤɚɨɤɨɥɨɧɚɱɚɥɶɧɨɣɩɨɡɢɰɢɢ
93.
for currentLength = 1, length do
94.
turtle.forward()
95.
end
96.
else
97.
-- ɱɟɪɟɩɚɲɤɚɨɤɨɥɨɮɢɧɚɥɶɧɨɣɩɨɡɢɰɢɢ
98.
turtle.forward()
99.
end
100.
101.
-- ɫɩɭɫɤɧɚɡɟɦɥɸ
102.
for currentHeight = 1, height do
103.
turtle.down()
104.
end
105.
106.
return true
107. end

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗǶșȖȕȎȑȞȡȕȖȫȠȜȠȚȜȒȡșȪȐȩȝȜșțȖȐȘȜ
ȚȎțȒȡpastebin get wwzvaKuW hare.

ěĚĐĝģđĞčėĚĖĚĎĎĔęĎđęĞČĜđĝěĚĘĚĥĨĪ
ĠğęĖĢĔĔ+7=6-6 0 then
turtle.select(slot)
turtle.placeDown()
return
end
end
end

ǰȟȠȞȜȘȓțȎȥȖțȎȓȠȟȭȤȖȘșforȘȜȠȜȞȩȗȝȞȖȟȐȎȖȐȎ
ȓȠȝȓȞȓȚȓțțȜȗslotȕțȎȥȓțȖȓ1ȐȝȓȞȐȜȗȖȠȓȞȎȤȖȖ2²ȐȜ
ȐȠȜȞȜȗȖȠȒȒȜ16ȀȎȘȖȚȜȏȞȎȕȜȚȢȡțȘȤȖȭselectAndPlaceDown()ȟȘȎțȖȞȡȓȠȐȟȓȭȥȓȗȘȖȖțȐȓțȠȎȞȭȥȓȞȓȝȎȦȘȖ
ǰțȡȠȞȖȫȠȜȑȜȤȖȘșȎȘȜȒȐȟȠȞȜȘȓȝȞȜȐȓȞȭȓȠȟȘȜșȪȘȜ
ȫșȓȚȓțȠȜȐțȎȣȜȒȖȠȟȭȐȭȥȓȗȘȓȐȩȕȩȐȎȭȢȡțȘȤȖȬturtle.
getItemCount(slot)dzȟșȖȐȭȥȓȗȘȓțȎȣȜȒȖȠȟȭȣȜȠȭȏȩȜȒȖț
ȏșȜȘȢȡțȘȤȖȭturtle.select(slot)ȐȟȠȞȜȘȓȐȩȏȖȞȎȓȠ
ȫȠȜȠȭȥȓȗȘȡȎȢȡțȘȤȖȭturtle.placeDown()ȖȕȟȠȞȜȘȖ
ȞȎȕȚȓȧȎȓȠȏșȜȘȝȜȒȥȓȞȓȝȎȦȘȜȗDzȎșȓȓȘȜȒȐȟȠȞȜȘȓȐȩ
ȕȩȐȎȓȠȢȡțȘȤȖȬselectAndPlaceDown().
ȋȠȎȢȡțȘȤȖȭselectAndPlaceDown()ȞȎȏȜȠȎȓȠțȓȕȎȐȖ
ȟȖȚȜȜȠȠȜȑȜȘȎȘȖȓȟȠȞȜȖȠȓșȪțȩȓȏșȜȘȖțȎȣȜȒȭȠȟȭȐȖțȐȓț
ȠȎȞȓȥȓȞȓȝȎȦȘȖȖȐȘȎȘȖȣȭȥȓȗȘȎȣȜțȖȞȎȟȝȜșȜȔȓțȩdzȟșȖ
ȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖțȖȥȓȑȜțȓȠȤȖȘșȕȎȐȓȞȦȎȓȠȟȭȖ
țȖȘȎȘȖȣȒȓȗȟȠȐȖȗțȓȝȞȜȖȕȐȜȒȖȠȟȭȂȡțȘȤȖȖbuildWall()
ȖbuildRoom()ȏȡȒȡȠȐȩȕȩȐȎȠȪselectAndPlaceDown()ȘȎȘ
ȝȜȒȢȡțȘȤȖȬ

ĜČēĜČčĚĞĖČČėďĚĜĔĞĘČĎĚēĎđĐđęĔīĝĞđę
ȀȓȝȓȞȪȟȜȕȒȎȒȖȚȢȡțȘȤȖȬbuildWall()ȘȜȠȜȞȜȗȝȓȞȓȒȎ
ȒȖȚȒȐȎȝȎȞȎȚȓȠȞȎȒșȭȡȝȞȎȐșȓțȖȭȞȎȕȚȓȞȎȚȖȐȜȕȐȜȒȖȚȜȗ
ȟȠȓțȩȜȒȖț²ȫȠȜȒșȖțȎȟȠȓțȩ length ȒȞȡȑȜȗ²ȓȓȐȩȟȜȠȎ
(height ǽȞȓȔȒȓȥȓȚȝȖȟȎȠȪȘȜȒȢȡțȘȤȖȖȒȎȐȎȗȞȎȕȞȎȏȜ

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

201

ȠȎȓȚȓȓȎșȑȜȞȖȠȚȘȜȠȜȞȜȚȡȖȏȡȒȓȠȟșȓȒȜȐȎȠȪȥȓȞȓȝȎȦȘȎ
ȥȠȜȏȩȝȜȟȠȞȜȖȠȪȟȠȓțȡ
ǸȜȑȒȎȥȓȞȓȝȎȦȘȎțȎȥȖțȎȓȠȟȠȞȜȖȠȪȜțȎȟȠȜȖȠțȎȕȓȚșȓ
ȕȎȠȓȚȓȗțȎȒȜȝȜȒțȭȠȪȟȭȐȐȓȞȣȖȝȜșȜȔȖȠȪȏșȜȘȝȜȒȟȓȏȭ
DzȎșȓȓȓȗțȎȒȜȒȐȖȑȎȠȪȟȭȐȝȓȞȓȒȖȝȞȜȒȜșȔȎȠȪȝȜȒȘșȎȒȩ
ȐȎȠȪȝȜȒȟȓȏȭȏșȜȘȖȒȜȠȓȣȝȜȞȝȜȘȎțȓȝȜșȡȥȖȠȟȭȤȓȝȜȥȘȎ
ȏșȜȘȜȐȕȎȒȎțțȜȗȒșȖțȩlengthǸȜȑȒȎȤȓȝȜȥȘȎȑȜȠȜȐȎȥȓ
ȞȓȝȎȦȘȎȝȜȐȠȜȞȖȠȫȠȜȠȝȞȜȤȓȟȟțȜȡȔȓȐȝȞȜȠȖȐȜȝȜșȜȔțȜȚ
țȎȝȞȎȐșȓțȖȖ
ǼțȎȏȡȒȓȠȝȞȜȒȜșȔȎȠȪȒȐȖȔȓțȖȓȐȝȓȞȓȒȖțȎȕȎȒȐȩ
ȟȠȞȎȖȐȎȭȤȓȝȜȥȘȖȏșȜȘȜȐȝȜȘȎțȓȒȜȟȠȖȑțȓȠȡȘȎȕȎțțȜȗ
ȐȩȟȜȠȩheightǽȞȓȒȝȜșȜȔȖȚȥȠȜȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗ
lengthȞȎȐțȜ4ȎȝȓȞȓȚȓțțȜȗheight²2ǻȎȞȖȟȝȜ
ȘȎȕȎțȎȏȡȒȡȧȎȭȟȠȓțȎȞȎȕȚȓȞȜȚðȏșȜȘȎȖȠȜȘȎȘȥȓȞȓ
ȝȎȦȘȎțȎȥȖțȎȓȠȓȓȟȠȞȜȖȠȪ

Конец

Начало

ˀ̛̭͘ϭϭ͘Ϯ͘ʦ̸̨̡̡̨̛̛̛̭̱̖̬̖̪̹̱̱̺̖̜̭̯̖̦̼̬̥̖̬̥̔̍̌̍̔̌̚ϰпϮ̨̡̣̍̌

DzșȭțȎȥȎșȎȥȓȞȓȝȎȦȘȎȒȜșȔțȎȝȜȒțȭȠȪȟȭȖȝȜȚȓȟȠȖȠȪ
ȏșȜȘȝȜȒȟȓȏȭȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

Конец

Начало

ˀ̛̭͘ϭϭ͘ϯ͘ˋ̡̨̨̨̡̨̛̛̖̬̖̪̹̪̦̥̖̯̭̪̥̖̺̖̯̣̪̭̖̌̌̔̌́̌̍̔̍́

202

DZǹǮǰǮ

ǽȜȟȘȜșȪȘȡȥȓȞȓȝȎȦȘȎȟȠȞȜȖȠȟȠȓțȡȒșȖțȜȗȐȥȓȠȩȞȓ
ȏșȜȘȎȥȓȞȓȝȎȦȘȎȝȓȞȓȚȓȧȎȓȠȟȭȐȝȓȞȓȒțȎȠȞȖȝȞȜșȓȠȎ
ȘȎȔȒȩȗȞȎȕȝȜȚȓȧȎȭȝȜȒȟȓȏȭȏșȜȘdzȟșȖȏȩȥȓȞȓȝȎȦȘȎ
ȟȠȞȜȖșȎȟȠȓțȡȒșȖțȜȗȐȦȓȟȠȪȏșȜȘȜȐȜțȎȝȞȜȒȐȖȑȎșȎȟȪ
ȏȩȐȝȓȞȓȒțȎȝȭȠȪȝȞȜșȓȠȜȐǼȏȞȎȠȖȐțȖȚȎțȖȓțȎȦȎȏșȜț
ȘȜșȖȥȓȟȠȐȜȝȓȞȓȚȓȧȓțȖȗȥȓȞȓȝȎȦȘȖȞȎȐțȜlength - 1.
ȅȠȜȏȩȡșȜȔȖȠȪlengthȏșȜȘȜȐȥȓȞȓȝȎȦȘȎȒȜșȔțȎȝȓȞȓȚȓ
ȟȠȖȠȪȟȭțȎȜȒȖțȦȎȑȒșȭȡȘșȎȒȘȖȘȎȔȒȜȑȜȏșȜȘȎȘȞȜȚȓȝȜ
ȟșȓȒțȓȑȜȐȞȓȕȡșȪȠȎȠȓȥȓȑȜȓȗțȎȒȜȟȜȐȓȞȦȖȠȪlength - 1
ȝȓȞȓȚȓȧȓțȖȗȀȎȘȖȚȜȏȞȎȕȜȚȢȡțȘȤȖȭbuildWall()ȝȜ
ȕȐȜșȭȓȠȟȠȞȜȖȠȪȟȠȓțȩșȬȏȜȗȒșȖțȩ
ǸȜȑȒȎȥȓȞȓȝȎȦȘȎȝȜȟȠȞȜȖȠȝȓȞȐȡȬȤȓȝȜȥȘȡȏșȜȘȜȐȒșȭ
țȎȦȓȗȟȠȓțȩȞȎȕȚȓȞȜȚðȏșȜȘȎȞȓȕȡșȪȠȎȠȏȡȒȓȠȐȩȑșȭ
ȒȓȠȪȠȎȘȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

Конец

Начало

ˀ̛̭͘ϭϭ͘ϰ͘ˋ̡̨̡̨̨̨̛̛̖̬̖̪̹̙̖̯̭̪̖̬̖͕̬̥̖̺̣̪̭̜̌̌̔̏́̏̔̌̌́̍̔̍̚

ȅȓȞȓȝȎȦȘȎȝȜȐȠȜȞȭȓȠȫȠȜȠȝȞȜȤȓȟȟȕȎȖȟȘșȬȥȓțȖȓȚȠȜȑȜ
ȥȠȜțȎȫȠȜȠȞȎȕȜțȎȒȐȖȔȓȠȟȭțȎȕȎȒȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

Конец

Начало

ˀ̛̭͘ϭϭ͘ϱ͘ˋ̵̡̨̡̨̨̨̛̛̖̬̖̪̹̙̖̯̭̖̬͕̯̖̥̦͕̬̥̖̺̣̪̭̜̌̌̔̏́̏̏̌̌̌̌̔̌̌́̍̔̍̚̚̚

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

203

dzȟșȖȏȩȥȓȞȓȝȎȦȘȓȏȩșȜȕȎȒȎțȜȏȜșȪȦȓȓȘȜșȖȥȓȟȠȐȜ
ȞȭȒȜȐȜțȎȝȜȐȠȜȞȖșȎȏȩȐȓȟȪȝȞȜȤȓȟȟȟȜȜȠȐȓȠȟȠȐȡȬȧȓȓȘȜ
șȖȥȓȟȠȐȜȞȎȕȒȐȖȑȎȭȟȪȐȝȓȞȓȒȖțȎȕȎȒǻȜȝȜȟȘȜșȪȘȡȥȓȞȓ
ȝȎȦȘȎȝȜȟȠȞȜȖșȎȕȎȒȎțțȜȓȘȜșȖȥȓȟȠȐȜȞȭȒȜȐȡȘȎȕȎțțȜȓȐ
țȎȦȓȚȝȞȖȚȓȞȓȜțȎȜȟȠȎțȎȐșȖȐȎȓȠȟȭǰȑșȎȐȓȚȩȐȜȕ
ȐȓȒȓȚȥȓȠȩȞȓȟȠȓțȩȥȠȜȏȩȝȜȟȠȞȜȖȠȪȘȜȚțȎȠȡȝȜȫȠȜȚȡȎș
ȑȜȞȖȠȚȒȜșȔȓțȐȟȓȑȒȎȐȜȕȐȞȎȧȎȠȪȥȓȞȓȝȎȦȘȡțȎȕȓȚșȬțȎ
ȝȞȜȠȖȐȜȝȜșȜȔțȜȚȘȜțȤȓȜȠțȎȥȎșȎȟȠȞȜȖȠȓșȪȟȠȐȎȀȎȘȖȚ
ȜȏȞȎȕȜȚȥȓȞȓȝȎȦȘȎȟȚȜȔȓȠțȎȥȎȠȪȝȜȟȠȞȜȗȘȡȟșȓȒȡȬȧȓȗ
ȟȠȓțȩ
ǿȡȧȓȟȠȐȡȓȠȒȐȎȐȎȞȖȎțȠȎȝȓȞȓȚȓȧȓțȖȭȥȓȞȓȝȎȦȘȖ
ȐȘȜțȓȤȟȠȓțȩȐȕȎȐȖȟȖȚȜȟȠȖȜȠȠȜȑȜȐȘȎȘȜȚțȎȝȞȎȐșȓ
țȖȖȜțȎȒȐȖȑȎșȎȟȪȐȝȜȟșȓȒțȖȗȞȎȕdzȟșȖȥȓȞȓȝȎȦȘȎȐȝȜ
ȟșȓȒțȖȗȞȎȕȒȐȖȑȎșȎȟȪȐȝȓȞȓȒȓȓțȎȒȜȝȓȞȓȚȓȟȠȖȠȪȐțȖȕ
heightȞȎȕdzȟșȖȥȓȞȓȝȎȦȘȎȐȝȜȟșȓȒțȖȗȞȎȕȒȐȖȑȎșȎȟȪ
ȐȜȏȞȎȠțȜȚțȎȝȞȎȐșȓțȖȖȓȓțȡȔțȜȝȓȞȓȚȓȟȠȖȠȪȐȝȓȞȓȒ
lengthȞȎȕȎȕȎȠȓȚȜȝȡȟȠȖȠȪheightȞȎȕǼȏȎȐȎȞȖȎțȠȎȝȜ
ȚȓȟȠȭȠȥȓȞȓȝȎȦȘȡțȎȕȓȚșȓȐȘȜțȤȓȟȠȓțȩȘȎȘȝȜȘȎȕȎțȜțȎ
ȞȖȟ

Начало

ˀ̛̭͘ϭϭ͘ϲ͘ˋ̸̡̡̨̨̛̛̖̬̖̪̹̦̖̯̭̯̬̯̖̣̭̯̦̖̥̣̖̣̦̖̥̌̌̌̌̏̌̽̏̌̏̔̌̽̚̚
̶̡̨̦̖̭̯̖̦̼

ȂȡțȘȤȖȭbuildWall()ȝȜȕȐȜșȭȓȠȟȠȞȜȖȠȪȟȠȓțȩșȬȏȜȗ
ȒșȖțȩȖȐȩȟȜȠȩǻȎȝȞȖȚȓȞȓȟșȖȡȠȓȏȭȒȜȟȠȎȠȜȥțȜȏșȜ
ȘȜȐȠȩȚȜȔȓȦȪȟȒȓșȎȠȪȐȩȟȜȘȡȬȟȠȓțȡȘȎȘȝȜȘȎȕȎțȜțȎ
ȞȖȟDzșȭȥȓȞȓȝȎȦȘȖȫȠȜțȓȖȚȓȓȠȕțȎȥȓțȖȭ

204

DZǹǮǰǮ

ˀ̛̭͘ϭϭ͘ϳ͘ʦ̨̡̨̼̭̭̯̖̦̬̥̖̬̥̌́̌̌̚ϰпϭϮ̨̡̨̨̨̨̨̣̪̭̯̬̖̦̪̯̥̱̙̖̍̏̌
̸̨̨̨̛̛̣̬̯̥̱͕̯̭̯̖̦̬̥̖̬̥̌̐̌̌̚ϰпϮ̨̡̣̍̌

DzȎȐȎȗȞȎȟȟȚȜȠȞȖȚȢȡțȘȤȖȬȘȜȠȜȞȎȭȞȓȎșȖȕȡȓȠȫȠȜȠ
ȎșȑȜȞȖȠȚ

ĠğęĖĢĔī*=14,?)44
ȂȡțȘȤȖȭbuildWall()țȎȥȖțȎȓȠȟȭȟȝȜȒȟȥȓȠȎȘȜșȖȥȓȟȠȐȎ
ȝȞȓȒȚȓȠȜȐȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖǽȞȓȒȝȜșȎȑȎȓȠȟȭȥȠȜ
ȐȟȓȫȠȖȫșȓȚȓțȠȩ²ȫȠȜȏșȜȘȖȘȜȠȜȞȩȓȏȡȒȡȠȖȟȝȜșȪȕȜȐȎȠȪȟȭ
ȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȟȠȓțȩǸȜșȖȥȓȟȠȐȜȏșȜȘȜȐțȓȜȏȣȜȒȖȚȜȓ
ȒșȭȝȜȟȠȞȜȓțȖȭȟȠȓțȩȒșȖțȜȗlengthȖȐȩȟȜȠȜȗheight
ȟȜȟȠȎȐșȭȓȠlength * heightȦȠȡȘȥȠȜȖȝȞȜȐȓȞȭȓȠȟȭȐ
ȟȠȞȜȘȓ
hare
64. -- buildWall ɫɨɡɞɚɟɬɫɬɟɧɭ
65. -- ɪɚɫɩɨɥɨɠɟɧɧɭɸɩɟɪɟɞɱɟɪɟɩɚɲɤɨɣ

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

205

66. function buildWall(length, height)
67.
if hare.countInventory() < length * height then
68.
return false -- ɧɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ
69.
end

dzȟșȖȡȥȓȞȓȝȎȦȘȖțȓȒȜȟȠȎȠȜȥțȜȏșȜȘȜȐȒșȭȝȜȟȠȞȜȓțȖȭ
ȟȠȓțȩȢȡțȘȤȖȭȐȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseȎ
ȕȎȠȓȚȕȎȐȓȞȦȎȓȠȐȩȝȜșțȓțȖȓȢȡțȘȤȖȖ
dzȟșȖȏșȜȘȜȐȒȜȟȠȎȠȜȥțȜȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘȟȠȞȜ
ȘȓȖȥȓȞȓȝȎȦȘȎȝȓȞȓȚȓȧȎȓȠȟȭȐȐȓȞȣțȎȜȒȖțȏșȜȘȥȠȜ
ȏȩțȎȥȎȠȪȟȠȞȜȖȠȓșȪȟȠȐȜȤȓȝȜȥȘȖȏșȜȘȜȐǵȎȠȓȚȝȓȞȓȚȓț
țȜȗmovingForwardȝȞȖȟȐȎȖȐȎȓȠȟȭȕțȎȥȓțȖȓtrue.
hare
71.
72.
73.

turtle.up()
local movingForward = true

ȋȠȎȝȓȞȓȚȓțțȎȭȜȠȟșȓȔȖȐȎȓȠțȎȝȞȎȐșȓțȖȓȒȐȖȔȓțȖȭ
ȥȓȞȓȝȎȦȘȖǽȞȖȟȠȞȜȖȠȓșȪȟȠȐȓȝȓȞȐȜȑȜȞȭȒȎȥȓȞȓȝȎȦȘȎ
ȒȐȖȔȓȠȟȭȐȝȓȞȓȒȝȜȫȠȜȚȡȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗmovingForwardȡȟȠȎțȎȐșȖȐȎȓȠȟȭȞȎȐțȩȚtrueǻȜȒșȭȝȜȟȠȞȜȗ
ȘȖȟșȓȒȡȬȧȓȑȜȞȭȒȎȥȓȞȓȝȎȦȘȓțȡȔțȜȒȐȖȑȎȠȪȟȭțȎȕȎȒ
ȝȜȫȠȜȚȡȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗȖȕȚȓțȭȓȠȟȭțȎfalseǵțȎ
ȥȓțȖȓȝȓȞȓȚȓțțȜȗȏȡȒȓȠȥȓȞȓȒȜȐȎȠȪȟȭȐȘȎȔȒȜȗȤȓȝȜȥȘȓ
ȏșȜȘȜȐȝȜȟȘȜșȪȘȡȥȓȞȓȝȎȦȘȎȏȡȒȓȠȚȓțȭȠȪțȎȝȞȎȐșȓțȖȓ
ȒȐȖȔȓțȖȭ
ȅȠȜȏȩȟșȓȒȖȠȪȕȎȐȩȟȜȠȜȗȟȠȓțȩȝȜȟȠȞȜȓțțȜȗȥȓȞȓȝȎȦ
ȘȜȗȝȞȜȑȞȎȚȚȓțȡȔțȎȓȧȓȜȒțȎȝȓȞȓȚȓțțȎȭȘȜȠȜȞȡȬȚȩ
țȎȕȜȐȓȚcurrentHeightǰȟȠȞȜȘȓȕȎȝȡȟȘȎȓȠȟȭȤȖȘșfor
ȐȘȜȠȜȞȜȚȝȓȞȓȚȓțțȎȭcurrentHeightȐȩȝȜșțȭȓȠȖȠȓȞȎ
ȤȖȖȜȠ1ȒȜheightǻȎȝȓȞȐȜȗȖȠȓȞȎȤȖȖȝȓȞȓȚȓțțȜȗcurrentHeightȝȞȖȟȐȎȖȐȎȓȠȟȭȕțȎȥȓțȖȓ1țȎȟșȓȒȡȬȧȓȗ²
ȕțȎȥȓțȖȓ2ȖȠȎȘȒȎșȓȓȒȜȝȜȟșȓȒțȓȗȖȠȓȞȎȤȖȖȑȒȓȝȓȞȓ
ȚȓțțȜȗcurrentHeightȝȞȖȟȐȎȖȐȎȓȠȟȭȕțȎȥȓțȖȓȝȓȞȓȚȓț
țȜȗheight.
hare
75.
76.

206

DZǹǮǰǮ

for currentHeight = 1, height do
for currentLength = 1, length do

77.
78.
79.
80.
81.
82.
83.

selectAndPlaceDown() -- ɪɚɡɦɟɳɟɧɢɟ ɛɥɨɤɚ
if movingForward and currentLength ~= length
then
turtle.forward()
elseif not movingForward and currentLength ~=
length then
turtle.back()
end
end

ǻȜȝȜȚȓȞȓȡȐȓșȖȥȓțȖȭȐȩȟȜȠȩȟȠȓțȩȠȎȘȔȓțȓȜȏȣȜȒȖȚȜ
ȜȠȟșȓȔȖȐȎȠȪȒșȖțȡȘȎȔȒȜȑȜȞȭȒȎțȎȘȎȔȒȜȚȦȎȑȓȐȩȟȜ
ȠȩDzșȭȫȠȜȑȜȚȩȏȡȒȓȚȖȟȝȜșȪȕȜȐȎȠȪȒȞȡȑȡȬȝȓȞȓȚȓțțȡȬ
țȎȕȩȐȎȓȚȡȬcurrentLengthȘȜȠȜȞȎȭȜȏȨȭȐșȭȓȠȟȭȐȜȐșȜ
ȔȓțțȜȚȤȖȘșȓforȐȟȠȞȜȘȓȋȠȜȠȤȖȘșȐșȜȔȓțȐȤȖȘș
forțȎȥȎȐȦȖȗȟȭȐȟȠȞȜȘȓǻȎȘȎȔȒȜȗȖȠȓȞȎȤȖȖȜȟțȜȐțȜ
ȑȜȤȖȘșȎforȝȞȜȑȞȎȚȚȎȕȎȝȡȟȘȎȓȠȖȐșȜȔȓțțȩȗȤȖȘșfor.
ǶȠȓȞȎȤȖȖȫȠȜȑȜȐșȜȔȓțțȜȑȜȤȖȘșȎȝȞȜȖȕȐȜȒȭȠȟȭȟȜȑșȎȟțȜ
ȕțȎȥȓțȖȬȝȓȞȓȚȓțțȜȗcurrentLengthȜȠ1ȒȜlengthǻȎ
ȞȖȟȝȜȘȎȕȎțȜȘȎȘȖȓȕțȎȥȓțȖȭȝȓȞȓȚȓțțȩȓcurrentHeightȖcurrentLengthȝȞȖțȖȚȎȬȠȐȘȎȔȒȜȗȠȜȥȘȓȝȜ
ȟȠȞȜȓțȖȭȟȠȓțȩȞȎȕȚȓȞȜȚðȏșȜȘȎǸȞȎȟțȎȭȟȠȞȓșȘȎȡȘȎ
ȕȩȐȎȓȠțȎȝȞȎȐșȓțȖȓȒȐȖȔȓțȖȭȥȓȞȓȝȎȦȘȖ
currentHeight

Start

currentLength

4

1

2

3

4

3

4

3

2

1

2

1

2

3

4

1

4

3

2

1

Start

ˀ̛̭͘ϭϭ͘ϴ͘ʯ̸̵̛̦̖̦̪̖̬̖̥̖̦̦̼̌́currentHeight̛currentLength̏
̶̡̨̨̨̨̨̛̛̛̛̙̜̪̪̭̯̬̖̦̭̯̖̦̼̬̥̖̬̥̌̔́̌̚̚ϰпϰ̨̡̣̍̌

ǰțȡȠȞȖȤȖȘșȎȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȟȭȢȡțȘȤȖȭselectAndPlaceDown()ȥȠȜȏȩȡȟȠȎțȜȐȖȠȪȏșȜȘȝȜȒȥȓȞȓȝȎȦȘȜȗ
ǸȜȒȐȟȠȞȜȘȎȣ²ȝȓȞȓȚȓȧȎȓȠȥȓȞȓȝȎȦȘȡȐȝȓȞȓȒȖșȖțȎ

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

207

ȕȎȒȐȕȎȐȖȟȖȚȜȟȠȖȜȠȕțȎȥȓțȖȭȝȓȞȓȚȓțțȜȗmovingForward
ȖȠȓȘȡȧȓȑȜȝȜșȜȔȓțȖȭȥȓȞȓȝȎȦȘȖǽȓȞȓȚȓțțȎȭcurrentLengthȝȜȒȟȥȖȠȩȐȎȓȠȟȘȜșȪȘȜȏșȜȘȜȐȝȜȐȟȓȗȒșȖțȓȞȭȒȎ
ȡȔȓȝȜșȜȔȓțȜǸȜȑȒȎȓȓȕțȎȥȓțȖȓȒȜȟȠȖȑȎȓȠlengthȥȓȞȓ
ȝȎȦȘȎȜȟȠȎțȎȐșȖȐȎȓȠȟȭȥȠȜȏȩțȓȐȩȗȠȖȕȎȘȞȎȗȟȠȓțȩ
ǻȎȝȜȚțȬȥȠȜȥȓȞȓȝȎȦȘȓțȓțȡȔțȜȒȐȖȑȎȠȪȟȭțȎȝȜ
ȟșȓȒțȓȗȖȠȓȞȎȤȖȖǽȜȟȘȜșȪȘȡȤȖȘșforțȎȥȎȐȦȖȗȟȭȐ
ȟȠȞȜȘȓȝȞȜȖȕȐȜȒȖȠȖȠȓȞȎȤȖȖȜȠ1ȒȜlengthțȎȝȜȟșȓȒ
țȓȚȦȎȑȓȝȓȞȓȚȓțțȎȭcurrentLengthȝȞȖțȖȚȎȓȠȕțȎȥȓțȖȓ
lengthǽȜȫȠȜȚȡȡȟșȜȐȖȭȐȟȠȞȜȘȎȣȖȐȩȝȜșțȭȬȠȟȭ
ȠȜșȪȘȜȐȠȜȚȟșȡȥȎȓȓȟșȖȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗcurrentLengthțȓȞȎȐțȜ ~= length.
ǶțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȤȖȘșforțȎȥȎȐ
ȦȖȗȟȭȐȟȠȞȜȘȓȋȠȜȠȤȖȘșȕȎȐȓȞȦȎȓȠȟȭȘȜȑȒȎȝȜșțȜ
ȟȠȪȬȕȎȘȎțȥȖȐȎȓȠȟȭȟȠȞȜȖȠȓșȪȟȠȐȜȞȭȒȎ
DzȎșȓȓȓȟșȖȥȓȞȓȝȎȦȘȎțȓțȎȣȜȒȖȠȟȭțȎȝȜȟșȓȒțȓȗȖȠȓ
ȞȎȤȖȖȤȖȘșȎforțȎȥȎȐȦȓȑȜȟȭȐȟȠȞȜȘȓȓȗțȎȒȜȝȓȞȓ
ȚȓȟȠȖȠȪȟȭțȎȜȒțȡȝȜȕȖȤȖȬȐȐȓȞȣǰȩȕȜȐȢȡțȘȤȖȖturtle.
up()ȐȟȠȞȜȘȓȐȩȝȜșțȖȠȫȠȜȝȓȞȓȚȓȧȓțȖȓȠȜșȪȘȜȐȠȜȚ
ȟșȡȥȎȓȓȟșȖȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗcurrentHeightțȓȞȎȐ
țȜheight ȠȜȓȟȠȪȓȟșȖȤȖȘșforțȓȟȜȐȓȞȦȎȓȠȝȜȟșȓȒțȬȬ
ȖȠȓȞȎȤȖȬ 
hare
84.
85.
86.
87.
88.

if currentHeight ~= height then
turtle.up()
end
movingForward = not movingForward
end

ǸȜȒȐȟȠȞȜȘȓȝȓȞȓȘșȬȥȎȓȠ²ȝȞȖȟȐȎȖȐȎȓȠȝȞȜȠȖȐȜȝȜ
șȜȔțȜȓȕțȎȥȓțȖȓ²șȜȑȖȥȓȟȘȜȗȝȓȞȓȚȓțțȜȗmovingForward.
dzȟșȖȝȓȞȓȚȓțțȜȗȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓtrueȘȜȒȝȞȖȟȐȎȖȐȎ
ȓȠȓȗȕțȎȥȓțȖȓ falseȖțȎȜȏȜȞȜȠdzȟșȖȥȓȞȓȝȎȦȘȎȒȐȖȑȎ
șȎȟȪȐȝȓȞȓȒȥȠȜȏȩȝȜȟȠȞȜȖȠȪȟȎȚȩȗȐȩȟȜȘȖȗȞȭȒȏșȜȘȜȐ
ȠȜȝȓȞȓȘșȬȥȎȠȓșȪȝȞȖȟȐȜȖȠȝȓȞȓȚȓțțȜȗmovingForward
ȕțȎȥȓțȖȓfalsedzȟșȖȥȓȞȓȝȎȦȘȎȒȐȖȑȎșȎȟȪțȎȕȎȒȥȠȜȏȩ
ȝȜȟȠȞȜȖȠȪȟȎȚȩȗȐȩȟȜȘȖȗȞȭȒȏșȜȘȜȐȠȜȝȓȞȓȘșȬȥȎȠȓșȪ
ȐȟȠȞȜȘȓȝȞȖȟȐȜȖȠȝȓȞȓȚȓțțȜȗmoveForwardȕțȎȥȓțȖȓ

208

DZǹǮǰǮ

trueǸȜȒȐȟȠȞȜȘȓȖȕȚȓțȭȓȠșȜȑȖȥȓȟȘȜȓȕțȎȥȓțȖȓȝȓȞȓ
ȚȓțțȜȗmovingForwardțȎȝȞȜȠȖȐȜȝȜșȜȔțȜȓȟȝȜȚȜȧȪȬ
ȝȞȜȟȠȜȗȘȜȚȎțȒȩnot movingForward.
ǶțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȤȖȘșforȘȜ
ȠȜȞȩȗțȎȥȎșȟȭȐȟȠȞȜȘȓȋȠȜȠȤȖȘșȕȎȐȓȞȦȎȓȠȟȭȓȟșȖ
ȝȜȟȠȞȜȗȘȎȟȠȓțȩȕȎȐȓȞȦȓțȎȀȓȝȓȞȪȥȓȞȓȝȎȦȘȓțȡȔțȜȐȓȞ
țȡȠȪȟȭțȎȕȓȚșȬDzșȭȫȠȜȑȜȓȗțȡȔțȜȝȜȝȎȟȠȪțȎȟȠȜȞȜțȡ
ȝȞȜȠȖȐȜȝȜșȜȔțȡȬțȎȥȎșȡȟȠȞȜȖȠȓșȪȟȠȐȎȎȕȎȠȓȚȟȝȡȟȠȖȠȪ
ȟȭțȎȕȓȚșȬ
ǻȎȝȜȚțȬȥȠȜȘȜȒȐȟȠȞȜȘȓȝȓȞȓȘșȬȥȎȓȠȕțȎȥȓțȖȓ
ȝȓȞȓȚȓțțȜȗmovingForwardȥȠȜȏȩȖȕȚȓțȖȠȪțȎȝȞȎȐșȓțȖȓ
ȒȐȖȔȓțȖȭȥȓȞȓȝȎȦȘȖȀȎȘȓȟșȖȝȓȞȓȚȓțțȜȗmovingForwardȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓtrueȥȓȞȓȝȎȦȘȎȏșȖȔȓȐȟȓȑȜȘ
ȖȟȣȜȒțȜȗȠȜȥȘȓǽȜȫȠȜȚȡȥȠȜȏȩȟȜȗȠȖȟȜȟȠȓțȩȥȓȞȓȝȎȦȘȓ
țȓȜȏȣȜȒȖȚȜȝȓȞȓȚȓȟȠȖȠȪȟȭȐȝȓȞȓȒlengthȞȎȕȥȠȜȜțȎȖȒȓ
șȎȓȠȐȟȠȞȜȘȎȣȖ
hare
90.
91.
92.
93.
94.
95.

-- ɫɬɟɧɚɝɨɬɨɜɚɩɟɪɟɯɨɞɤɮɢɧɚɥɶɧɨɣɩɨɡɢɰɢɢ
if movingForward then
-- ɱɟɪɟɩɚɲɤɚɨɤɨɥɨɧɚɱɚɥɶɧɨɣɩɨɡɢɰɢɢ
for currentLength = 1, length do
turtle.forward()
end

ǻȜȓȟșȖȝȓȞȓȚȓțțȜȗmovingForwardȝȞȖȟȐȜȓțȜȕțȎȥȓ
țȖȓfalseȥȓȞȓȝȎȦȘȎȡȔȓțȎȣȜȒȖȠȟȭțȎȝȞȜȠȖȐȜȝȜșȜȔțȜȚ
ȘȜțȤȓȟȠȓțȩȖȝȜȫȠȜȚȡȓȗȒȜȟȠȎȠȜȥțȜȝȓȞȓȚȓȟȠȖȠȪȟȭȠȜșȪ
ȘȜțȎȜȒȖțȦȎȑȐȝȓȞȓȒȥȠȜȖȝȞȜȖȟȣȜȒȖȠȐȟȠȞȜȘȓ
hare
96.
97.
98.
99.

else
-- ɱɟɪɟɩɚɲɤɚɨɤɨɥɨɮɢɧɚɥɶɧɨɣɩɨɡɢɰɢɢ
turtle.forward()
end

ǻȓȕȎȐȖȟȖȚȜȜȠȠȜȑȜȒȐȖȑȎșȎȟȪȥȓȞȓȝȎȦȘȎȐȝȓȞȓȒȖșȖ
țȎȕȎȒȥȠȜȏȩȜȝȡȟȠȖȠȪȟȭțȎȕȓȚșȬȓȗțȡȔțȜȝȓȞȓȚȓȟȠȖȠȪ
ȟȭțȎheightȦȎȑȜȐȐțȖȕȝȜȫȠȜȚȡȤȖȘșforȐȟȠȞȜȘȓ

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

209

ȐȩȕȩȐȎȓȠȢȡțȘȤȖȬturtle.dow n()ȟȜȐȓȞȦȎȭheight
ȖȠȓȞȎȤȖȗ.
hare
101.
-- ɫɩɭɫɤ ɧɚ ɡɟɦɥɸ
102.
for currentHeight = 1, height do
103.
turtle.down()
104.
end
105.
106.
return true
107. end

ǸȜȑȒȎȟȠȓțȎȝȜȟȠȞȜȓțȎȎȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭȐȢȖ
țȎșȪțȜȗȝȜȕȖȤȖȖȢȡțȘȤȖȭbuildWall()ȐȜȕȐȞȎȧȎȓȠȕțȎ
ȥȓțȖȓtrueȐȟȠȞȜȘȓȡȘȎȕȩȐȎȭțȎȠȜȥȠȜȟȠȓțȎȡȟȝȓȦ
țȜȝȜȟȠȞȜȓțȎǶțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȘȜȒ
ȢȡțȘȤȖȖbuildWall().
ȂȡțȘȤȖȭbuildWall()ȘȜȠȜȞȡȬȚȩȒȜȏȎȐȖșȖȐȚȜȒȡșȪ
hareȜȥȓțȪȝȜșȓȕțȎȝȜȠȜȚȡȥȠȜȐȜȕȐȓȒȓțȖȓȟȠȓț²ȫȠȜȝȞȜ
ȤȓȟȟȘȜȠȜȞȩȗȠȩȐȜȕȚȜȔțȜȕȎȣȜȥȓȦȪȝȜȐȠȜȞȖȠȪȐȜȚțȜ
ȑȖȣȝȞȜȑȞȎȚȚȎȣǻȜȓȟșȖȠȩȝȞȜȟȠȜȣȜȥȓȦȪȝȜȟȠȞȜȖȠȪȟȠȓ
țȡȖțȓțȎȚȓȞȓțȕȎȝȡȟȘȎȠȪȜȏȜșȜȥȘȡ/XDȝȜȠȜȚțȎȏȖȞȎȠȪ
ȘȜȚȎțȒȩos.loadAPI('hare')Ȗhare.buildWall(4, 2)
ȚȜȔțȜțȎȝȖȟȎȠȪȝȞȜȑȞȎȚȚȡȘȜȠȜȞȎȭȐȟȓȫȠȜȟȒȓșȎȓȠȟȎȚȜ
ȟȠȜȭȠȓșȪțȜDzȎȐȎȗȟȜȕȒȎȒȖȚȠȎȘȡȬȝȞȜȑȞȎȚȚȡȖțȎȕȜȐȓȚ
ȓȓbuildwall.

ĜČēĜČčĚĞĖČĔēČěğĝĖěĜĚďĜČĘĘħ
*=14,?)44
ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡe d it
buildwallȖȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
buildwall
>>ɉɪɨɝɪɚɦɦɚɞɥɹɫɬɪɨɢɬɟɥɶɫɬɜɚɫɬɟɧɗɥɚɋɜɟɣɝɚɪɬɚ
ɋɬɪɨɢɬɫɬɟɧɵ@@
3.
4. os.loadAPI('hare')
5.

210

DZǹǮǰǮ

ɨɛɪɚɛɨɬɤɚɚɪɝɭɦɟɧɬɨɜɤɨɦɚɧɞɧɨɣɫɬɪɨɤɢ
7. local cliArgs = {...}
8. local length = tonumber(cliArgs[1])
9. local height = tonumber(cliArgs[2])
10.
11. if length == nil or height == nil or cliArgs[1] ==
 " WKHQ
12.
print('Usage: buildwall ')
13.
return
14. end
15.
16. print('Building...')
17. if hare.buildWall(length, height) == false then
HUURU ɇɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ¾
19. end
20. print('Done.')

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗ
ȁȟȠȎțȜȐȖȐȥȓȞȓȝȎȦȘȡȖȝȜȚȓȟȠȖȐȏșȜȘȖȘȎȚȓțțȜȑȜȘȖȞ
ȝȖȥȎ ȖșȖșȬȏȜȑȜȒȞȡȑȜȑȜȟȠȞȜȖȠȓșȪțȜȑȜȏșȜȘȎ ȐȓȓȖțȐȓț
ȠȎȞȪȧȓșȘțȖȝȜțȓȗȝȞȎȐȜȗȘțȜȝȘȜȗȚȩȦȖȒșȭȜȠȘȞȩȠȖȭ
ȓȓȑȞȎȢȖȥȓȟȘȜȑȜȖțȠȓȞȢȓȗȟȎȅȠȜȏȩȝȜȟȚȜȠȞȓȠȪȘȎȘȥȓȞȓ
ȝȎȦȘȎȟȠȞȜȖȠȟȠȓțȡȐȥȓȠȩȞȓȏșȜȘȎȒșȖțȜȗȖȒȐȎȏșȜȘȎȐȩ
ȟȜȠȜȗȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȐȓȒȖedit buildwall
4 2ȖțȎȔȚȖȠȓȘșȎȐȖȦȡEnter.
dzȟșȖȝȞȖȕȎȝȡȟȘȓȫȠȜȗȝȞȜȑȞȎȚȚȩȐȜȕțȖȘȎȬȠȜȦȖȏȘȖ
ȠȧȎȠȓșȪțȜȟȞȎȐțȖȟȐȜȗȘȜȒȟșȖȟȠȖțȑȜȚȐȫȠȜȗȘțȖȑȓȥȠȜ
ȏȩȖȟȘșȬȥȖȠȪȐȜȕȚȜȔțȩȓȜȝȓȥȎȠȘȖdzȟșȖȖȟȝȞȎȐȖȠȪȝȞȜ
ȑȞȎȚȚȡțȓȡȒȎȓȠȟȭȡȒȎșȖȢȎȗșȐȩȝȜșțȖȐȘȜȚȎțȒȡdelete
buildwallȎȕȎȠȓȚȕȎȑȞȡȕȖȘȜȒȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin get 1aZ8BhNX buildwall.

ēČďĜğēĖČĘĚĐğėī0):ɉɟɪɜɚɹɱɚɫɬɶɩɪɨɝɪɚɦɦɵbuildwallɡɚɝɪɭɠɚɟɬɦɨɞɭɥɶhareɢ
ɜɵɡɵɜɚɟɬɮɭɧɤɰɢɸhare.buildWall()
buildwall
>>ɉɪɨɝɪɚɦɦɚɞɥɹɫɬɪɨɢɬɟɥɶɫɬɜɚɫɬɟɧɗɥɚɋɜɟɣɝɚɪɬɚ
ɋɬɪɨɢɬɫɬɟɧɵ@@

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

211

3.
4. os.loadAPI('hare')

ȃȜȠȭȕțȎȥȖȠȓșȪțȎȭȥȎȟȠȪȞȎȏȜȠȩȐȩȝȜșțȭȓȠȟȭȟȝȜȚȜ
ȧȪȬȘȜȒȎȚȜȒȡșȭhareȝȞȜȑȞȎȚȚȎbuildwallȟȜȒȓȞȔȖȠ
țȓȘȜȠȜȞȩȓȒȜȝȜșțȖȠȓșȪțȩȓȢȡțȘȤȖȖǽȞȖȐȩȕȜȐȓȢȡțȘ
ȤȖȖhare.buildWall()ȝȞȜȑȞȎȚȚȎȒȜșȔțȎȕțȎȠȪȘȎȘȖȓ
ȕțȎȥȓțȖȭȟșȓȒȡȓȠȝȓȞȓȒȎȐȎȠȪȐȐȖȒȓȝȎȞȎȚȓȠȞȜȐlengthȖ
heightǽȞȜȑȞȎȚȚȎbuildwallȚȜȔȓȠȝȜșȡȥȎȠȪȫȠȖȕțȎȥȓ
țȖȭȖȕȎȞȑȡȚȓțȠȜȐȘȜȚȎțȒțȜȗȟȠȞȜȘȖȘȜȠȜȞȩȓȐȐȓȒȓȠȖȑȞȜȘ
ȝȞȖȕȎȝȡȟȘȓȝȞȜȑȞȎȚȚȩbuildwallȖȕȜȏȜșȜȥȘȖȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖǾȎțȓȓȠȩȝȓȞȓȒȎșȝȞȜȑȞȎȚȚȓbuildwallȐȘȎȥȓȟȠȐȓ
ȎȞȑȡȚȓțȠȜȐȘȜȚȎțȒțȜȗȟȠȞȜȘȖȕțȎȥȓțȖȭ4Ȗ2ǮȞȑȡȚȓțȠȩ
ȘȜȚȎțȒțȜȗȟȠȞȜȘȖȠȩȡȔȓȖȟȝȜșȪȕȜȐȎșȝȞȖȕȎȝȡȟȘȓȒȞȡȑȖȣ
ȝȞȜȑȞȎȚȚǻȎȝȞȖȚȓȞȐȑșȎȐȓȘȜȑȒȎȠȩȕȎȝȡȟȘȎșȝȞȜ
ȑȞȎȚȚȡlabelȠȩțȎȕțȎȥȎșȖȚȭȥȓȞȓȝȎȦȘȓȘȜȚȎțȒȜȗset
SofonisbaȐȟȠȞȜȘȓlabel set SofonisbaǮȞȑȡȚȓțȠȩȘȜ
ȚȎțȒțȜȗȟȠȞȜȘȖȟȜȣȞȎțȭȬȠȟȭȘȎȘȟȝȓȤȖȎșȪțȩȓȠȎȏșȖȥțȩȓ
ȕțȎȥȓțȖȭțȎȕȩȐȎȓȚȩȓȚȎȟȟȖȐȜȚȋȠȜȜȏȨȓȘȠ/XDȟȖȚȓțȓȚ
{...}ȘȜȠȜȞȩȗȟȜȟȠȜȖȠȖȕȒȐȡȣȢȖȑȡȞțȩȣȟȘȜȏȜȘȟȠȞȓȚȭ
ȝȞȜȏȓșȎȚȖȚȓȔȒȡțȖȚȖǽȞȓȔȒȓȥȓȚȞȎȟȟȚȜȠȞȓȠȪȘȜȒȘȜ
ȠȜȞȩȗȜȏȞȎȏȎȠȩȐȎȓȠȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȒȎȐȎȗ
ȝȜȟȚȜȠȞȖȚȘȎȘȞȎȏȜȠȎȬȠȚȎȟȟȖȐȩ

ĔĝěĚėĨēĚĎČęĔđĘČĝĝĔĎĚĎ
ȀȎȏșȖȤȩȜȘȜȠȜȞȩȣȠȩȡȕțȎșȖȕȑșȎȐȩȚȜȑȡȠȣȞȎțȖȠȪ
țȓȟȘȜșȪȘȜȕțȎȥȓțȖȗǺȎȟȟȖȐȩ²ȫȠȜȒȞȡȑȜȗȠȖȝȒȎțțȩȣ
ȘȜȠȜȞȩȗȠȜȔȓȚȜȔȓȠȟȜȣȞȎțȭȠȪțȓȟȘȜșȪȘȜȕțȎȥȓțȖȗȜȒțȜ
ȐȞȓȚȓțțȜǵțȎȥȓțȖȭȐȠȎȏșȖȤȓȣȞȎțȭȠȟȭȐȐȖȒȓȝȎȞȘșȬȥ
ȕțȎȥȓțȖȓȠȜȑȒȎȘȎȘȕțȎȥȓțȖȭȐȚȎȟȟȖȐȎȣȣȞȎțȭȠȟȭȡȝȜȞȭȒȜ
ȥȓțțȜǵțȎȥȓțȖȭȐȚȎȟȟȖȐȓȠȎȘȔȓțȎȕȩȐȎȬȠȟȭȫșȓȚȓțȠȎȚȖ
ȚȎȟȟȖȐȎȅȠȜȏȩȝȜșȡȥȖȠȪȒȜȟȠȡȝȘȘȎȘȜȚȡșȖȏȜȕțȎȥȓțȖȬ
ȣȞȎțȭȧȓȚȡȟȭȐȚȎȟȟȖȐȓțȡȔțȜȡȘȎȕȎȠȪȥȖȟșȜȐȜȓȕțȎȥȓțȖȓ
ȘȜȠȜȞȜȓȜȝȞȓȒȓșȭȓȠȞȎȟȝȜșȜȔȓțȖȓȫȠȜȑȜȫșȓȚȓțȠȎȚȎȟȟȖȐȎ
ȖțȎȕȩȐȎȓȠȟȭȖțȒȓȘȟȜȚ.
ǽȞȖȚȓȥȎțȖȓ ȀȓȣțȖȥȓȟȘȖȚȎȟȟȖȐȩȐLua²ȫȠȜȓȧȓȜȒȖț
ȠȖȝȠȎȏșȖȥțȩȣȒȎțțȩȣȀȎȏșȖȤȩȟȝȎȞȎȚȖȘșȬȥȕțȎȥȓțȖȓ

212

DZǹǮǰǮ

ȘȜȠȜȞȩȓ Țȩ ȖȟȝȜșȪȕȜȐȎ șȖ Ȑ ȝȞȓȒȩȒȡȧȖȣ ȑșȎȐȎȣ țȎȕȩȐȎȬȠȟȭ ȘȎȞȠȜȝȜȒȜȏțȩȚȖ ȠȎȏșȖȤȎȚȖ Ȏ ȚȎȟȟȖȐȩ ²
ȚȎȟȟȖȐȜȝȜȒȜȏțȩȚȖȠȎȏșȖȤȎȚȖ.
ǸȜȒȒșȭȚȎȟȟȖȐȜȐȎțȎșȜȑȖȥȓțȘȜȒȡȒșȭȠȎȏșȖȤǽȞȖȟȜȕ
ȒȎțȖȖȚȎȟȟȖȐȎȖȟȝȜșȪȕȡȗȢȖȑȡȞțȩȓȟȘȜȏȘȖ{}ȘȎȘȖȝȞȖ
ȟȜȕȒȎțȖȖȠȎȏșȖȤțȜȜȝȡȟȠȖȘșȬȥȖǸșȬȥȖȐȐȜȒȖȠȪțȓțȡȔ
țȜȝȜȠȜȚȡȥȠȜȐȚȎȟȟȖȐȓȝȜȕȖȤȖȭȕțȎȥȓțȖȭ²ȫȠȜȓȑȜȖțȒȓȘȟ
ȅȠȜȏȩȟȜȕȒȎȠȪȟȜȏȟȠȐȓțțȩȗȚȎȟȟȖȐȐȖțȠȓȞȎȘȠȖȐțȜȗ
ȜȏȜșȜȥȘȓȐȐȓȒȖȟșȓȒȡȬȧȡȬȘȜȚȎțȒȡ
lua> pets = {'mouse', 'cat', 'dog'}

ȅȠȜȏȩȝȜșȡȥȖȠȪȒȜȟȠȡȝȘȘȎȘȜȚȡșȖȏȜȕțȎȥȓțȖȬȟȜȣȞȎ
țȓțțȜȚȡȐȚȎȟȟȖȐȓȐȐȓȒȖȖȚȭȚȎȟȟȖȐȎȖȡȘȎȔȖȐȘȐȎȒȞȎȠ
țȩȣȟȘȜȏȘȎȣ[] ȖțȒȓȘȟțȡȔțȜȑȜȫșȓȚȓțȠȎ
lua> pets[1]
mouse
lua> pets[2]
cat
lua> 'I have a pet ' .. pets[3]
I have a pet dog

ǰȭȕȩȘȓ/XDȐȜȠșȖȥȖȓȜȠȒȞȡȑȖȣȭȕȩȘȜȐȝȞȜȑȞȎȚȚȖ
ȞȜȐȎțȖȭțȡȚȓȞȎȤȖȭȫșȓȚȓțȠȜȐȚȎȟȟȖȐȎțȎȥȖțȎȓȠȟȭȟ
ȝȜȫȠȜȚȡȒșȭȒȜȟȠȡȝȎȘȝȓȞȐȜȚȡȕțȎȥȓțȖȬȐȚȎȟȟȖȐȓpets
țȡȔțȜȐȐȓȟȠȖȘȜȚȎțȒȡpets[1].

ĔĝěĚėĨēĚĎČęĔđČĜďğĘđęĞĚĎ
ĖĚĘČęĐęĚĕĝĞĜĚĖĔ
ǰȜȕȐȞȎȧȎȭȟȪȘȝȞȜȑȞȎȚȚȓbuildwallȟȘȎȔȡȥȠȜȘȜȒȐ
ȟȠȞȜȘȓȟȜȣȞȎțȭȓȠȕțȎȥȓțȖȭȚȎȟȟȖȐȎȎȞȑȡȚȓțȠȜȐȘȜȚȎțȒ
țȜȗȟȠȞȜȘȖȐȝȓȞȓȚȓțțȜȗȟȖȚȓțȓȚcliArgsȋȠȎȝȓȞȓȚȓț
țȎȭȝȜȕȐȜșȭȓȠȝȜșȡȥȎȠȪȒȜȟȠȡȝȘȜȠȒȓșȪțȩȚȕțȎȥȓțȖȭȚ
ȐțȡȠȞȖȚȎȟȟȖȐȎȟȝȜȚȜȧȪȬȘȐȎȒȞȎȠțȩȣȟȘȜȏȜȘcliArgs
[1]²ȫȠȜȝȓȞȐȩȗȎȞȑȡȚȓțȠȘȜȚȎțȒțȜȗȟȠȞȜȘȖcliArgs
[2]²ȐȠȜȞȜȗȖȠȒ

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

213

buildwall
ɨɛɪɚɛɨɬɤɚɚɪɝɭɦɟɧɬɨɜɤɨɦɚɧɞɧɨɣɫɬɪɨɤɢ
7. local cliArgs = {...}
8. local length = tonumber(cliArgs[1])
9. local height = tonumber(cliArgs[2])

ǰȟȓȕțȎȥȓțȖȭȎȞȑȡȚȓțȠȜȐȘȜȚȎțȒțȜȗȟȠȞȜȘȖȟȜȣȞȎțȭȬȠ
ȟȭȐȐȖȒȓȟȠȞȜȘȒȎȔȓȓȟșȖȜțȖȐȩȑșȭȒȭȠȘȎȘȥȖȟșȎțȎȝȞȖ
ȚȓȞ'4'ȖșȖ'2'ȅȠȜȏȩȝȞȓȜȏȞȎȕȜȐȎȠȪȕțȎȥȓțȖȭȖȕȟȠȞȜȘȜȐȜ
ȑȜȠȖȝȎȐȥȖȟșȜȐȜȗȘȜȒȐȟȠȞȜȘȎȣȖȝȓȞȓȒȎȓȠȎȞȑȡȚȓțȠȩ
ȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȢȡțȘȤȖȬtonumber()ȘȜȠȜȞȎȭȐȜȕȐȞȎ
ȧȎȓȠȥȖȟșȜȐȩȓȕțȎȥȓțȖȭȝȓȞȓȒȎțțȩȣȟȠȞȜȘǺȩȟȜȣȞȎțȖȚ
ȫȠȖȥȖȟșȜȐȩȓȕțȎȥȓțȖȭȐȝȓȞȓȚȓțțȩȣlengthȖheight.

ĎħĎĚĐĝĚĚčĥđęĔĕěĚėĨēĚĎČĞđėĪ
dzȟșȖȖȑȞȜȘțȓȐȐȜȒȖȠȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖ ȖșȖ
ȐȐȜȒȖȠȠȜșȪȘȜȜȒȖțȐȚȓȟȠȜȒȐȡȣ ȖțȢȜȞȚȎȤȖȖȒșȭȕȎȝȡȟȘȎ
ȝȞȜȑȞȎȚȚȩȏȡȒȓȠțȓȒȜȟȠȎȠȜȥțȜǰȜȕȚȜȔțȜȖȑȞȜȘțȓȕțȎ
ȓȠȥȠȜȒȜșȔȓțȐȐȓȟȠȖȕțȎȥȓțȖȭȒșȭȝȓȞȓȚȓțțȩȣlength
ȖheightȖșȖȚȜȔȓȠȏȩȠȪȜțȕȎȏȩșțȎȏȞȎȠȪȖȣǰȠȎȘȖȣ
ȟșȡȥȎȭȣȝȜșȓȕțȜȥȠȜȏȩȝȞȜȑȞȎȚȚȎȜȠȜȏȞȎȔȎșȎȟȜȜȏȧȓțȖȓ
ȘȜȠȜȞȜȓțȎȝȜȚțȖȠȖȑȞȜȘȡȘȎȘȓȓȝȞȎȐȖșȪțȜȕȎȝȡȟȠȖȠȪdzȟ
șȖȖȑȞȜȘȡȘȎȔȓȠȟȖȚȐȜș"ȐȘȎȥȓȟȠȐȓȝȓȞȐȜȑȜȎȞȑȡȚȓțȠȎȘȜ
ȚȎțȒțȜȗȟȠȞȜȘȖȠȎȘȔȓȝȜȭȐȖȠȟȭȟȜȜȏȧȓțȖȓ
buildwall
11. if length == nil or height == nil or cliArgs[1] ==
 " WKHQ
12.
print('Usage: buildwall ')
13.
return
14. end

dzȟșȖȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȜȠȟȡȠȟȠȐȡȬȠȖșȖțȓ
ȭȐșȭȬȠȟȭȥȖȟșȎȚȖȝȓȞȓȚȓțțȩȚcliArgs[1]ȖcliArgs[2]
ȏȡȒȓȠȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓnildzȟșȖȐȢȡțȘȤȖȬtonumber()
ȝȓȞȓȒȎȠȪȕțȎȥȓțȖȓnilȖșȖȟȠȞȜȘȡȘȜȠȜȞȎȭțȓȟȜȒȓȞȔȖȠ
ȥȖȟșȎȜțȎȐȓȞțȓȠnilǻȎȝȞȖȚȓȞȓȟșȖȖȑȞȜȘțȓȡȘȎȔȓȠȎȞ
ȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȟȠȞȜȘȓȝȓȞȓȚȓțțȜȗlength
ȏȡȒȓȠȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓnildzȟșȖȖȑȞȜȘȝȓȞȓȒȎȓȠȠȜșȪȘȜ

214

DZǹǮǰǮ

ȜȒȖțȎȞȑȡȚȓțȠȐȟȠȞȜȘȓȕțȎȥȓțȖȓnilȏȡȒȓȠȝȞȖȟȐȜȓțȜȝȓȞȓ
ȚȓțțȜȗheightȁȟșȜȐȖȓȐȟȠȞȜȘȓȝȞȜȐȓȞȭȓȠȝȞȖȟȐȜȓțȜșȖ
ȝȓȞȓȚȓțțȜȗlengthȖșȖheightȕțȎȥȓțȖȓnilȖțȓȡȘȎȕȎțșȖ
ȟȖȚȐȜș " ȐȘȎȥȓȟȠȐȓȝȓȞȐȜȑȜȎȞȑȡȚȓțȠȎȘȜȚȎțȒțȜȗȟȠȞȜȘȖ
ǰȟȖȠȡȎȤȖȭȣȘȜȑȒȎȖȑȞȜȘȐȐȜȒȖȠțȓȝȞȎȐȖșȪțȩȓȎȞȑȡ
ȚȓțȠȩȖșȖțȓȐȐȜȒȖȠȖȣȐȜȐȟȓȢȡțȘȤȖȭprint()ȐȩȐȜȒȖȠ
ȟȜȜȏȧȓțȖȓȘȜȠȜȞȜȓȝȞȓȒșȎȑȎȓȠȖȑȞȜȘȡȐȐȓȟȠȖȖȚȭbuildwallȖȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖ²lengthȖheight.
ȁȑșȜȐȩȓȟȘȜȏȘȖȐȘȜȠȜȞȩȓȕȎȘșȬȥȓțȩȟșȜȐȎlengthȖ
heightȡȘȎȕȩȐȎȬȠțȎȠȜȥȠȜȖȑȞȜȘțȓȒȜșȔȓțȐȐȜȒȖȠȪȟȎ
ȚȖȟșȜȐȎlengthȖheightȎȡȘȎȕȎȠȪȥȖȟșȜȐȩȓȕțȎȥȓțȖȭ

ĎħēĚĎĠğęĖĢĔĔ0):-*=14,?)44
ĐėīěĚĝĞĜĚĕĖĔĝĞđęħ
ǰȟȬȞȎȏȜȠȡȐȝȞȜȑȞȎȚȚȓbuildwallȐȩȝȜșțȭȬȠȢȡțȘȤȖȖ
buildWall()selectAndPlaceDown()ȖcountInventory()ȚȜȒȡșȭhareȀȎȘȖȚȜȏȞȎȕȜȚȘȜȒȝȞȜȑȞȎȚȚȩbuildwallȜȥȓțȪȝȞȜȟȠǽȜȟșȓȜȏȞȎȏȜȠȘȖȎȞȑȡȚȓțȠȜȐȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȜțȝȞȜȟȠȜȐȩȕȩȐȎȓȠȢȡțȘȤȖȬhare.buildWall()Ȑ
ȟȠȞȜȘȓȖȝȞȖȟȐȎȖȐȎȓȠȕțȎȥȓțȖȭȝȓȞȓȚȓțțȩȚlengthȖ
height.
buildwall
16. print('Building...')
17. if hare.buildWall(length, height) == false then
HUURU ɇɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ¾
19. end
20. print('Done.')

ǸȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬprint()ȐȩȐȜȒȭ
ȧȡȬȟȜȜȏȧȓțȖȓȖțȢȜȞȚȖȞȡȬȧȓȓȝȜșȪȕȜȐȎȠȓșȭȜȕȎȝȡȟȘȓ
ȝȞȜȑȞȎȚȚȩdzȟșȖȏșȜȘȜȐțȓȒȜȟȠȎȠȜȥțȜȢȡțȘȤȖȭhare.
buildWall()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseȖȝȞȜȑȞȎȚȚȎțȓ
ȕȎȝȡȟȘȎȓȠȟȭȋȠȜȝȞȜȐȓȞȭȓȠȟȭȐȟȠȞȜȘȓȐȫȠȜȚȟșȡȥȎȓ
ȝȜșȪȕȜȐȎȠȓșȪȐȖȒȖȠȟȜȜȏȧȓțȖȓȜȏȜȦȖȏȘȓǸȜȒȐȟȠȞȜȘȓ
ȐȩȐȜȒȖȠȟȜȜȏȧȓțȖȓȜȠȜȚȥȠȜȝȞȜȑȞȎȚȚȎȕȎȐȓȞȦȖșȎȝȜ
ȟȠȞȜȗȘȡȟȠȓțȩȖșȖȟȜȜȏȧȎȓȠȜȏȜȦȖȏȘȓ

ǰǼǵǰdzDzdzǻǶdzǿȀdzǻ

215

ǰȜȠȖȐȓȟȪȘȜȒȝȞȜȑȞȎȚȚȩbuildwallǵȎȐȟȓȜȟȠȎșȪțȜȓ
ȜȠȐȓȥȎȓȠȘȜȒȚȜȒȡșȭhare.
ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"ěĜĚďĜČĘĘČ5A4)*-4
ĝČĜďğĘđęĞČĘĔĖĚĘČęĐęĚĕĝĞĜĚĖĔ

Вернись к программе mylabel из главы 3 и измени код так,
чтобы игрок мог указать имя черепашки не с помощью функции io.read(), а с помощью аргумента командной строки.
Для этого добавь строку кода local cliArgs = {...}. Теперь записать новое имя черепашки можно, используя код
cliArgs[1] вместо функции io.read(). Обязательно добавь вывод сообщения пользователю, если он не укажет новое имя в качестве аргумента командной строки.
Обрати внимание: встроенная программа label также поддерживает работу аргументов командной строки. Использование аргументов командной строки ускоряет выполнение
программ, так как игрок может вводить значения параметров
непосредственно при запуске программы.

ģĞĚĘħğēęČėĔ
ǰȫȠȜȗȑșȎȐȓȚȩȒȜȝȜșțȖșȖȚȜȒȡșȪharețȜȐȩȚȖȢȡțȘȤȖ
ȭȚȖȂȡțȘȤȖȭcountInventory()ȐȜȕȐȞȎȧȎȓȠȜȏȧȓȓȘȜ
șȖȥȓȟȠȐȜȏșȜȘȜȐ ȝȞȓȒȚȓȠȜȐ ȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖȋȠȜ
ȝȜșȓȕțȜȠȎȘȘȎȘȚȜȔțȜȝȞȜȐȓȞȖȠȪȒȜȟȠȎȠȜȥțȜșȖȡȥȓȞȓ
ȝȎȦȘȖȏșȜȘȜȐȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȂȡțȘȤȖȭselectAndPlaceDown()ȝȜȕȐȜșȭȓȠȥȓȞȓȝȎȦȘȓȐȩȏȞȎȠȪȜȝȞȓȒȓșȓț
țȩȗȏșȜȘȐȖțȐȓțȠȎȞȓȖȖȟȝȜșȪȕȜȐȎȠȪȓȑȜȐȚȖȞȓ0LQHFUDIW.
ǿȝȜȚȜȧȪȬȫȠȖȣȢȡțȘȤȖȗȠȩȚȜȔȓȦȪțȎȝȖȟȎȠȪȘȜȒȒșȭȝȜ
ȟȠȞȜȗȘȖȟȠȓțșȬȏȜȑȜȞȎȕȚȓȞȎ
ȀȩȡȕțȎșȘȎȘȝȖȟȎȠȪȝȞȜȑȞȎȚȚȩȘȜȠȜȞȩȓȝȞȖțȖȚȎȬȠ
ȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȀȩȡȔȓȖȟȝȜșȪȕȜȐȎșȎȞȑȡ
ȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȑșȎȐȓ țȎȝȞȖȚȓȞȘȜȑȒȎȐȐȜ
ȒȖșȘȜȚȎțȒȡset SofonisbaȐȟȠȞȜȘȓlabel set Sofonisba ǻȜȐȫȠȜȗȑșȎȐȓȠȩȡȕțȎșȥȠȜȚȜȔȓȦȪȝȜșȡȥȖȠȪȒȜȟȠȡȝ
ȘȠȎȏșȖȥțȩȚȕțȎȥȓțȖȭȚȜȏȨȓȘȠȎ{...}ȖȝȞȜȥȖȠȎȠȪȎȞȑȡ
ȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȘȜȠȜȞȩȓȖȑȞȜȘȐȐȓșȝȞȖȕȎȝȡȟȘȓ
ȝȞȜȑȞȎȚȚȩ

216

DZǹǮǰǮ

dzȟșȖȠȐȜȖȝȞȜȑȞȎȚȚȩȏȡȒȡȠȕȎȝȡȟȘȎȠȪȒȞȡȑȖȓȝȜșȪȕȜ
ȐȎȠȓșȖȜțȖȐȓȞȜȭȠțȜțȓȏȡȒȡȠȥȖȠȎȠȪȘȜȒ/XDȥȠȜȏȩȐȩ
ȭȟțȖȠȪȘȎȘȖȓȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖțȓȜȏȣȜȒȖȚȜ
ȝȓȞȓȒȎȠȪȠȐȜȓȗȝȞȜȑȞȎȚȚȓǽȜȫȠȜȚȡȝȞȜȑȞȎȚȚȎȚȜȔȓȠȐȩ
ȐȜȒȖȠȪȟȜȜȏȧȓțȖȓȘȜȠȜȞȜȓȝȞȓȒȜȟȠȎȐȖȠȘȞȎȠȘȜȓȜȝȖȟȎțȖȓ
țȓȜȏȣȜȒȖȚȩȣȎȞȑȡȚȓțȠȜȐȘȜȚȎțȒțȜȗȟȠȞȜȘȖ
ǰȑșȎȐȓȚȩȟȜȕȒȎȒȖȚȟȠȓțȜȟȠȞȜȖȠȓșȪțȡȬȝȞȜȑȞȎȚȚȡ
ȐȜȠȠȎȘȖȓȡȚȓțȭȘȎșȎȚȏȡȞȩ ȥȠȜȏȩȟȠȞȜȖȠȪȘȜȚțȎȠȩȟȥȓ
ȠȩȞȪȚȭȟȠȓțȎȚȖ

12
ĝĞĜĚĔĞđėĨĝĞĎĚĖĚĘęČĞ
dzȟșȖ ȟȜȓȒȖțȖȠȪ ȥȓȠȩȞȓ ȟȠȓțȩ ȝȜșȡ ȥȖȠȟȭ
ȘȜȚțȎȠȎǰȫȠȜȗȑșȎȐȓȚȩȟȜȕȒȎȒȖȚȢȡțȘȤȖȬ
buildRoom()ȘȜȠȜȞȎȭȏȡȒȓȠȐȩȕȩȐȎȠȪȢȡțȘ
ȤȖȬbuildWall()ȥȓȠȩȞȓȞȎȕȎȥȠȜȏȩȝȜȟȠȞȜ
ȖȠȪȘȜȚțȎȠȡȝȜȒȜȏțȡȬȠȜȗȥȠȜȝȜȘȎȕȎțȎțȎ
ȞȖȟȋȠȎȑșȎȐȎȘȜȞȜȠȘȎȭȖȝȞȜȟȠȎȭȝȜȠȜȚȡȥȠȜ
ȠȩȡȔȓȐȩȝȜșțȖșȕțȎȥȖȠȓșȪțȡȬȥȎȟȠȪȞȎȏȜȠȩȘȜȑȒȎ
ȝȖȟȎșȢȡțȘȤȖȬbuildWall()ȐȑșȎȐȓǮȘȜȑȒȎȠȩȕȎȘȜț
ȥȖȦȪȞȎȏȜȠȡțȎȒȢȡțȘȤȖȓȗbuildRoom()ȠȜȟȓȓȝȜȚȜȧȪȬ
ȟȚȜȔȓȦȪȝȜȟȠȞȜȖȠȪȟșȜȔțȜȓȟȜȜȞȡȔȓțȖȓțȎȝȞȖȚȓȞȕȎȚȜȘ

ˀ̛̭͘ϭϮ͘ϭ͘ʶ̸̨̡̨̨̡̨̛̛̛̥̦̯̥̖̦̦̬̪͕̬̥̖̬̥̌̌̌̐̌̌̚̚ϱпϲпϰ̨̡̨̣̍̏

218

DZǹǮǰǮ

ěĜĚđĖĞĔĜĚĎČęĔđČėďĚĜĔĞĘČ
ěĚĝĞĜĚđęĔīĖĚĘęČĞ
DzȎȐȎȗȞȎȕȞȎȏȜȠȎȓȚȎșȑȜȞȖȠȚȘȜȠȜȞȩȗȝȜȕȐȜșȖȠȟȠȞȜȖȠȪ
ȘȜȚțȎȠȩșȬȏȜȑȜȞȎȕȚȓȞȎǸȜȒȫȠȜȑȜȎșȑȜȞȖȠȚȎȝȜȚȓȟȠȖȚ
ȐȢȡțȘȤȖȬȟȖȚȓțȓȚbuildRoom()ȐȚȜȒȡșȪhareǻȎȝȞȖ
ȚȓȞȓȟșȖȥȓȞȓȝȎȦȘȓțȡȔțȜȝȜȟȠȞȜȖȠȪȘȜȚțȎȠȡȒșȖțȜȗȐ
ȠȞȖȏșȜȘȎȖȦȖȞȖțȜȗȐȥȓȠȩȞȓȏșȜȘȎȜțȎȚȜȔȓȠȝȜȟȠȞȜȖȠȪ
ȥȓȠȩȞȓȟȠȓțȩȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟȅȓȞȓȝȎȦȘȎțȎȥȖ
țȎȓȠȟșȓȐȜȑȜțȖȔțȓȑȜȡȑșȎȘȜȚțȎȠȩȎȕȎȠȓȚȟȠȞȜȖȠȟȠȓțȩ
ȒȐȖȑȎȭȟȪȝȜȥȎȟȜȐȜȗȟȠȞȓșȘȓ

ˀ̛̭͘ϭϮ͘Ϯ͘ʦ̵̸̡̨̡̨̨̛̭̖̬̱̦̖̬̖̪̹̱͕̭̯̬̺̱̥̦̯̱̬̥̖̬̥̔̏̌̌́̀̌̌̚ϯпϰ̨̡̣̍̌͘
ʻ̸̸̨̨̡̨̨̡̛̛̛̛̭̯̬̯̖̣̭̯͕̖̬̖̪̹̪̖̬̦̱̯̦̪̬̣̖̦̖̣̜̭̯̬̖̣̌̌̏̽̏̌̌̏̌̏̌̌̏̍

ǽȜȟȘȜșȪȘȡȟȠȓțȩȝȓȞȓȘȞȩȐȎȬȠȟȭȐȡȑșȎȣȘȜȚțȎȠȩ
ȒșȖțȎȖȦȖȞȖțȎȘȜȚțȎȠȩȜȠșȖȥȎȬȠȟȭȜȠȞȎȕȚȓȞȜȐȓȓȟȠȓț
ǻȎȝȞȖȚȓȞȥȠȜȏȩȝȜȟȠȞȜȖȠȪȘȜȚțȎȠȡȞȎȕȚȓȞȜȚðȏșȜȘȎ
ȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟȠȩțȓȟȚȜȔȓȦȪȝȞȜȟȠȜȝȜȟȠȞȜ
ȖȠȪȒȐȓȟȠȓțȩȒșȖțȜȗȐȠȞȖȏșȜȘȎȖȒȐȓȟȠȓțȩȒșȖțȜȗȐ
ȥȓȠȩȞȓȏșȜȘȎȠȎȘȘȎȘȡȑșȩȒȜșȔțȩȝȓȞȓȘȞȩȐȎȠȪȟȭȅȠȜ
ȏȩȝȞȎȐȖșȪțȜȕȎȒȎȠȪȒșȖțȡȟȠȓțȘȜȚțȎȠȩțȎȒȜȡȥȖȠȩ
ȐȎȠȪȝȓȞȓȘȞȩȠȖȓȡȑșȜȐǰȕȑșȭțȖțȎȞȎȕȚȓȞȘȎȔȒȜȗȟȠȓțȩ
țȎȞȖȟȑȒȓȖȕȜȏȞȎȔȓțȩȘȜȚțȎȠȩȟȞȎȕȚȓȞȎȚȖðȖ
ðȏșȜȘȜȐ
ǸȎȘȐȖȒȖȦȪȘȜȚțȎȠȎȞȎȕȚȓȞȜȚðȏșȜȘȎȟȜȟȠȜȖȠȖȕ
ȒȐȡȣȟȠȓțȒșȖțțȜȬȐȏșȜȘȎȖȒȐȡȣȟȠȓțȒșȖțȜȗȐȏșȜȘȎ
ǸȜȚțȎȠȎȞȎȕȚȓȞȜȚðȏșȜȘȜȐȟȜȟȠȜȖȠȖȕȒȐȡȣȟȠȓțȒșȖțȜȗ
ȏșȜȘȎȖȒȐȡȣȟȠȓțȒșȖțȜȗȏșȜȘȜȐ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǸǼǺǻǮȀ

219

6
5
4
3
3
4
3
2

Комната размером 3 έ 4 блока

Комната размером 4 έ 6 блоков

ˀ̛̭͘ϭϮ͘ϯ͘ʶ̨̛̥̦̯̼̭̬̥̖̬̥̌̌̌̚ϯпϰ;̭̣̖̏̌Ϳ̛ϰпϲ;̭̪̬̌̏̌Ϳ̨̡̨̣̍̏

ǼȏȞȎȠȖȐțȖȚȎțȖȓțȎȦȎȏșȜțțȜȐȜȑȜȎșȑȜȞȖȠȚȎȅȓȠȩ
ȞȓȟȠȓțȩȖȚȓȬȠȒȐȎȞȎȕțȩȣȞȎȕȚȓȞȎȜȒȖțȞȎȕȚȓȞ²ȦȖȞȖ
țȎȘȜȚțȎȠȩȚȖțȡȟȜȒȖțȖȐȠȜȞȜȗ²ȒșȖțȎȘȜȚțȎȠȩȚȖțȡȟ
ȜȒȖțǮșȑȜȞȖȠȚȐȩȕȩȐȎȓȠȢȡțȘȤȖȬbuildWall()ȘȜȠȜȞȡȬ
ȚȩȟȜȕȒȎșȖȐȑșȎȐȓȅȓȞȓȝȎȦȘȎțȎȥȖțȎȓȠȒȐȖȔȓțȖȓȐ
șȓȐȜȚțȖȔțȓȚȡȑșȡȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟȖțȎȥȖțȎ
ȓȠȟȠȞȜȖȠȓșȪȟȠȐȜȟșȓȐȜȗȟȠȜȞȜțȩȘȜȚțȎȠȩ ȜțȎȝȜȘȎȕȎțȎ
ȘȞȎȟțȩȚȤȐȓȠȜȚ ǵȎȠȓȚȐșȓȐȜȚȐȓȞȣțȓȚȡȑșȡȞȖȟȡțȘȎ
ȥȓȞȓȝȎȦȘȎȝȜȐȜȞȎȥȖȐȎȓȠțȎȝȞȎȐȜȐȟȜȜȠȐȓȠȟȠȐȖȖȟȎșȑȜ
ȞȖȠȚȜȚȖȟȠȞȜȖȠȒȞȡȑȡȬȟȠȓțȡ ȝȜȘȎȕȎțȎȟȖțȖȚȤȐȓȠȜȚ 
ǵȎȠȓȚțȎȦȞȜȏȜȠȟțȜȐȎȝȜȐȜȞȎȥȖȐȎȓȠțȎȝȞȎȐȜȟȠȞȜȖȠ
ȘȞȎȟțȡȬȟȠȓțȡȟȝȞȎȐȜȗȟȠȜȞȜțȩȘȜȚțȎȠȩȖțȎȘȜțȓȤȝȜ
ȐȜȞȎȥȖȐȎȭțȎȝȞȎȐȜȟȠȞȜȖȠȟȖțȬȬȟȠȓțȡȐțȖȕȡȘȜȚțȎȠȩ
ǸȜȑȒȎȥȓȞȓȝȎȦȘȎȕȎȘȎțȥȖȐȎȓȠȟȠȞȜȖȠȓșȪȟȠȐȜȥȓȠȐȓȞȠȜȗ
ȟȠȓțȩȠȜȜȘȎȕȩȐȎȓȠȟȭȠȎȚȜȠȘȡȒȎȜțȎțȎȥȖțȎșȎǶȟȝȜșȪ
ȕȡȭȫȠȜȠȦȎȏșȜțȐȘȎȥȓȟȠȐȓȎșȑȜȞȖȠȚȎȢȡțȘȤȖȭbuildRoom()ȝȜȕȐȜșȭȓȠȟȜȕȒȎȐȎȠȪȘȜȚțȎȠȩșȬȏȜȑȜȞȎȕȚȓȞȎ

ĐĚĜČčĚĞĖČĘĚĐğėī0):ǽȜȚȓȟȠȖȚȢȡțȘȤȖȬbuildRoom()ȐȚȜȒȡșȪhareȘȎȘȫȠȜ
ȏȩșȜȟȒȓșȎțȜȟȢȡțȘȤȖȓȗbuildWall()ȥȠȜȏȩȓȓȚȜȑșȖȖȟ
ȝȜșȪȕȜȐȎȠȪȖȒȞȡȑȖȓȝȞȜȑȞȎȚȚȩǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit hareǽȓȞȓȚȓȟȠȖȘȡȞȟȜȞȐ
ȘȜțȓȤȢȎȗșȎȖȒȜȏȎȐȪȟșȓȒȡȬȧȖȗȘȜȒ

220

DZǹǮǰǮ

hare
ɩɪɨɩɭɫɤ
EXLOG5RRP ɫɬɪɨɢɬɱɟɬɵɪɟɫɬɟɧɵ
ɢɩɨɬɨɥɨɤ
112.
function buildRoom(length, width, height)
113.
if hare.countInventory() < (((length - 1) *
height * 2) +
((width - 1) * height * 2)) then
UHWXUQIDOVHɧɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ
115.
end
116.
ɫɬɪɨɢɬɟɥɶɫɬɜɨɱɟɬɵɪɟɯɫɬɟɧ
118.
buildWall(length - 1, height)
119.
turtle.turnRight()
120.
121.
buildWall(width - 1, height)
122.
turtle.turnRight()
123.
124.
buildWall(length - 1, height)
125.
turtle.turnRight()
126.
127.
buildWall(width - 1, height)
128.
turtle.turnRight()
129.
130.
return true
131. end

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗȋȠȜȠȚȜȒȡșȪȚȜȔțȜȠȎȘȔȓȕȎȑȞȡȕȖȠȪȐȩ
ȝȜșțȖȐȘȜȚȎțȒȡpastebin get wwzvaKuW hare.

ĎħģĔĝėđęĔđĚčĥđďĚĖĚėĔģđĝĞĎČ
čėĚĖĚĎęđĚčġĚĐĔĘĚďĚ
ĐėīĝĞĜĚĔĞđėĨĝĞĎČĖĚĘęČĞħ
ǽȞȓȔȒȓȥȓȚȢȡțȘȤȖȭbuildRoom()țȎȥțȓȠȟȠȞȜȖȠȓșȪȟȠȐȜ
ȘȜȚțȎȠȩțȓȜȏȣȜȒȖȚȜȝȞȜȐȓȞȖȠȪȥȠȜȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦ
ȘȖȒȜȟȠȎȠȜȥțȜȟȠȞȜȖȠȓșȪțȩȣȏșȜȘȜȐDzșȭȫȠȜȑȜțȡȔțȜȐȩ
ȥȖȟșȖȠȪȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐțȓȜȏȣȜȒȖȚȜȓȒșȭȐȜȕȐȓȒȓțȖȭ
ȐȟȓȣȥȓȠȩȞȓȣȟȠȓțȘȜȚțȎȠȩǸȜșȖȥȓȟȠȐȜȏșȜȘȜȐțȓȜȏȣȜȒȖ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǸǼǺǻǮȀ

221

ȚȜȓȒșȭȜȒțȜȗȟȠȓțȩȞȎȟȟȥȖȠȩȐȎȓȠȟȭȐȟȠȞȜȘȓȚȜȒȡșȭ
hareȐȜȠȠȎȘ
length * height

ǻȜțȎȫȠȜȠȞȎȕȒșȖțȎȟȠȓțȩțȎȜȒȖțȏșȜȘȘȜȞȜȥȓȒșȖ
țȩȘȜȚțȎȠȩǽȓȞȐȎȭȖȕȥȓȠȩȞȓȣȟȠȓțȒȜșȔțȎȏȩȠȪȒșȖțȜȗ
length – 1ȝȜȫȠȜȚȡțȎȦȖȐȩȥȖȟșȓțȖȭȝȞȖțȖȚȎȬȠȐȖȒ
(length – 1) * height

ǶȝȜȟȘȜșȪȘȡȥȓȞȓȝȎȦȘȎȝȜȟȠȞȜȖȠȒȐȓȠȎȘȖȣȟȠȓțȩȚȩ
ȡȚțȜȔȖȚȫȠȜȥȖȟșȜțȎ2:
(length – 1) * height * 2

ǼȟȠȎșȪțȩȓȒȐȓȟȠȓțȩȏȡȒȡȠțȎȜȒȖțȏșȜȘȘȜȞȜȥȓȦȖ
ȞȖțȩȘȜȚțȎȠȩȠȜȓȟȠȪȒșȖțȜȗȐwidth – 1ȏșȜȘȝȜȫȠȜȚȡ
ȚȩȒȜȏȎȐȖȚȏșȜȘȖȒșȭȫȠȖȣȟȠȓțȐȞȎȟȥȓȠȟșȓȒȡȬȧȖȚȜȏ
ȞȎȕȜȚ
((length – 1) * height * 2) + ((width – 1) * height *2)

ȋȠȜȜȘȜțȥȎȠȓșȪțȎȭȢȜȞȚȡșȎȒșȭȐȩȥȖȟșȓțȖȭȘȜșȖȥȓ
ȟȠȐȎȏșȜȘȜȐȘȜȠȜȞȜȓȝȜȠȞȓȏȡȓȠȟȭȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȘȜȚ
țȎȠȩdzȓȚȩȏȡȒȓȚȖȟȝȜșȪȕȜȐȎȠȪȐȢȡțȘȤȖȖbuildRoom().

ĖĚĐĠğęĖĢĔĔ*=14,:775
ȅȠȜȏȩȡȕțȎȠȪȟȘȜșȪȘȜȏșȜȘȜȐțȎȣȜȒȖȠȟȭȐȖțȐȓțȠȎȞȓ
ȥȓȞȓȝȎȦȘȖȘȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬhare.
countInventory()dzȟșȖȫȠȜȥȖȟșȜȚȓțȪȦȓțȓȜȏȣȜȒȖȚȜ
ȑȜȘȜșȖȥȓȟȠȐȎȏșȜȘȜȐȘȜȠȜȞȜȓȞȎȟȟȥȖȠȩȐȎȓȠȟȭȝȜȢȜȞ
ȚȡșȓȖȕȝȞȓȒȩȒȡȧȓȑȜȞȎȕȒȓșȎȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘ
ȟȠȞȜȘȓǰȫȠȜȗȟȠȞȜȘȓȢȡțȘȤȖȭbuildRoom()ȐȜȕȐȞȎ
ȧȎȓȠȕțȎȥȓțȖȓfalseǸȜȒȢȡțȘȤȖȖȖȟȝȜșȪȕȡȓȠȫȠȜȐȜȕ
ȐȞȎȧȎȓȚȜȓȕțȎȥȓțȖȓȒșȭȜȝȜȐȓȧȓțȖȭȜȠȜȚȥȠȜȘȜȚțȎȠȎ
țȓȏȩșȎȝȜȟȠȞȜȓțȎ
hare
EXLOG5RRP

222

DZǹǮǰǮ

ɫɬɪɨɢɬɱɟɬɵɪɟɫɬɟɧɵ

ɢɩɨɬɨɥɨɤ
112.
function buildRoom(length, width, height)
113.
if hare.countInventory() < (((length - 1) *
height * 2) +
((width - 1) * height * 2)) then
UHWXUQIDOVHɧɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ
115.
end

ǰȝȞȜȠȖȐțȜȚȟșȡȥȎȓȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘȘȜȒȡȟșȓ
ȒȡȬȧȓȚȡȕȎȫȠȜȗȢȡțȘȤȖȓȗȀȎȘȖȚȜȏȞȎȕȜȚȓȟșȖȏșȜȘȜȐ
ȒȜȟȠȎȠȜȥțȜȝȞȜȖȟȣȜȒȖȠȐȩȕȜȐȢȡțȘȤȖȖbuildWall()Ȗ
ȘȜȒȐȟȠȞȜȘȓțȎȥȖțȎȓȠȟȠȞȜȖȠȓșȪȟȠȐȜȝȓȞȐȜȗȟȠȓțȩ
hare
118.

buildWall(length - 1, height)

ǸȜȑȒȎȥȓȞȓȝȎȦȘȎȝȜȟȠȞȜȖȠȜȒțȡȟȠȓțȡȝȜȜȘȜțȥȎțȖȖ
ȟȠȞȜȖȠȓșȪȟȠȐȎȢȡțȘȤȖȭbuildWall()ȝȓȞȓȚȓȧȎȓȠȥȓȞȓ
ȝȎȦȘȡȜȏȞȎȠțȜțȎȕȓȚșȬdzȟșȖȥȓȞȓȝȎȦȘȎȟȠȞȜȖȠȘȜȚ
țȎȠȡȞȎȕȚȓȞȜȚðȏșȜȘȎȠȜȝȜȟșȓȖȟȝȜșțȓțȖȭȘȜȒȎȐ
ȟȠȞȜȘȓȟȠȞȜȓțȖȓȏȡȒȓȠȐȩȑșȭȒȓȠȪȠȎȘȘȎȘȝȜȘȎȕȎțȜ
țȎȞȖȟ

ˀ̛̭͘ϭϮ͘ϰ͘ʦ̡̨̨̛̥̦̯̼̬̥̖̬̥̔̌̌̚ϯпϰ̨̡̨̛̣̪̭̣̖̖̬̹̖̦̍̌̌̏́̚
̨̨̛̭̯̬̯̖̣̭̯̪̖̬̜̭̯̖̦̼̽̏̌̏

ǽȞȓȔȒȓȥȓȚȥȓȞȓȝȎȦȘȎȟȚȜȔȓȠȝȜȟȠȞȜȖȠȪȐȠȜȞȡȬȟȠȓțȡ
ȜțȎȒȜșȔțȎȝȜȐȓȞțȡȠȪțȎȝȞȎȐȜȀȎȘȜȗȝȜȐȜȞȜȠȝȞȜȖȕȐȜȒȖȠ
ȟȭȐȟȠȞȜȘȓȟȝȜȚȜȧȪȬȢȡțȘȤȖȖturtle.turnRight()Ȏ
ȘȜȒȐȟȠȞȜȘȓțȎȥȖțȎȓȠȟȠȞȜȖȠȓșȪȟȠȐȜȐȠȜȞȜȗȟȠȓțȩ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǸǼǺǻǮȀ

223

hare
119.
120.
121.

turtle.turnRight()
buildWall(width - 1, height)

ǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȒșȖțȎȫȠȜȗȟȠȓțȩȞȎȐțȎwidth
– 1ȑȒȓwidth²ȦȖȞȖțȎȘȜȚțȎȠȩdzȟșȖȥȓȞȓȝȎȦȘȎȟȠȞȜȖȠ
ȘȜȚțȎȠȡȞȎȕȚȓȞȜȚðȏșȜȘȎȝȜȟșȓȖȟȝȜșțȓțȖȭȘȜȒȎȐ
ȟȠȞȜȘȓȘȜȚțȎȠȎȏȡȒȓȠȐȩȑșȭȒȓȠȪȠȎȘȘȎȘȝȜȘȎȕȎțȜțȎ
ȞȖȟ

ˀ̛̭͘ϭϮ͘ϱ͘ʦ̡̨̨̛̥̦̯̼̬̥̖̬̥̔̌̌̚ϯпϰ̨̡̨̨̨̡̨̨̛̣̪̭̣̖̪̭̯̬̜̯̬̜̍̌̏
̭̯̖̦̼

ǰȟȠȞȜȘȎȣ²ȝȞȜȖȟȣȜȒȖȠȟȠȞȜȖȠȓșȪȟȠȐȜȒȐȡȣȒȞȡ
ȑȖȣȟȠȓț
hare
122.
turtle.turnRight()
123.
124.
buildWall(length - 1, height)
125.
turtle.turnRight()
126.
127.
buildWall(width - 1, height)
128.
turtle.turnRight()
129.
130.
return true
131. end

224

DZǹǮǰǮ

ǽȜȟșȓȖȟȝȜșțȓțȖȭȫȠȜȑȜȘȜȒȎȟȠȞȜȖȠȓșȪȟȠȐȜȘȜȚțȎȠȩȕȎ
ȐȓȞȦȎȓȠȟȭȖȢȡțȘȤȖȭbuildRoom()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓ
trueȐȟȠȞȜȘȓȟȜȜȏȧȎȭȜȏȡȟȝȓȦțȜȗȝȜȟȠȞȜȗȘȓȘȜȚțȎ
ȠȩȅȓȞȓȝȎȦȘȎȐȜȕȐȞȎȧȎȓȠȟȭȐȖȟȣȜȒțȡȬȝȜȕȖȤȖȬțȎȥȎșȎ
ȟȠȞȜȖȠȓșȪȟȠȐȎȝȜȐȜȞȎȥȖȐȎȓȠȟȭȐȝȓȞȐȜțȎȥȎșȪțȜȚțȎȝȞȎȐ
șȓțȖȖțȜȜȟȠȎțȓȠȟȭțȎȐȓȞȣȡȟȠȓțȘȜȠȜȞȩȓȜțȎȝȜȟȠȞȜȖșȎ
ȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϮ͘ϲ͘ʶ̨̨̥̦̯̬̥̖̬̥̌̌̌̚ϯпϰ̸̨̡̨̨̡̣̪̭̯̬̖̦͕̖̬̖̪̹̍̌̌̌̌
̵̶̵̨̡̨̨̨̨̨̛̛̛̛̬̺̖̯̭̭̦̜̪͕̦̭̯̖̯̭̦̖̬̱̏̏̌̌́̔̌́̌̏̚̚

ǶțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȘȎțȥȖȐȎȓȠȏșȜȘȘȜȒȎ
ȢȡțȘȤȖȖbuildRoom().

ĖĚĐěĜĚďĜČĘĘħ*=14,?)44
ǰȑșȎȐȓȚȩȟȜȕȒȎșȖȝȞȜȑȞȎȚȚȡbuildwallȘȜȠȜȞȎȭȐȩ
ȕȩȐȎȓȠȢȡțȘȤȖȬhare.buildWall()ȥȠȜȏȩȖȑȞȜȘȚȜȑșȓȑȘȜ
ȝȜȟȠȞȜȖȠȪȟȠȓțȡȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȀȓȝȓȞȪȟȜȕ
ȒȎȒȖȚȝȞȜȑȞȎȚȚȡȎțȎșȜȑȖȥțȡȬbuildroomȥȠȜȏȩȐȩȕȩ
ȐȎȠȪȢȡțȘȤȖȬhare.buildRoom()ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit buildroomȖȐȐȓȒȖȟșȓȒȡ
ȬȧȖȗȘȜȒ
buildroom
>>ɉɪɨɝɪɚɦɦɚɞɥɹɫɬɪɨɢɬɟɥɶɫɬɜɚɤɨɦɧɚɬɗɥɚɋɜɟɣɝɚɪɬɚ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǸǼǺǻǮȀ

225

ɋɬɪɨɢɬɤɨɦɧɚɬɵɢɡɱɟɬɵɪɟɯɫɬɟɧ@@
3.
4. os.loadAPI('hare')
5.
ɨɛɪɚɛɨɬɤɚɚɪɝɭɦɟɧɬɨɜɤɨɦɚɧɞɧɨɣɫɬɪɨɤɢ
7. local cliArgs = {...}
8. local length = tonumber(cliArgs[1])
9. local width = tonumber(cliArgs[2])
10. local height = tonumber(cliArgs[3])
11.
12. if length == nil or width == nil or height == nil or
FOL$UJV>@  " WKHQ
13.
print('Usage: buildroom ')
14.
return
15. end
16.
17. print('Building...')
18. if hare.buildRoom(length, width, height) == false
then
HUURU ɇɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ¾
20. end
21. print('Done.')

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗȀȓȏȓȠȎȘȔȓȝȜțȎȒȜȏȖȠȟȭȚȜȒȡșȪhareȘȜ
ȠȜȞȩȗȚȜȔțȜȟȘȎȥȎȠȪȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin get
wwzvaKuW hare.
ǸȎȘȖbuildwallȝȞȜȑȞȎȚȚȎbuildroomȜȟțȜȐȩȐȎȓȠȟȭ
ȑșȎȐțȩȚȜȏȞȎȕȜȚțȎȢȡțȘȤȖȭȣȚȜȒȡșȭhareǼțȎȝȜșȡȥȎ
ȓȠȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȖȕȚȎȟȟȖȐȎ{...}ȐȩȐȜȒȖȠ
ȟȜȜȏȧȓțȖȓȝȜșȪȕȜȐȎȠȓșȬȓȟșȖȫȠȜțȓȜȏȣȜȒȖȚȜȎȕȎȠȓȚȐȩ
ȕȩȐȎȓȠȢȡțȘȤȖȬhare.buildRoom()ǻȎȦȎȝȞȜȑȞȎȚȚȎȝȜȥ
ȠȖȖȒȓțȠȖȥțȎȝȞȜȑȞȎȚȚȓbuildwallȕȎȖȟȘșȬȥȓțȖȓȚȠȜ
ȑȜȥȠȜȚȩȖȟȝȜșȪȕȡȓȚȢȡțȘȤȖȬhare.buildRoom()ȐȚȓȟȠȜ
hare.buildWall().

ēČěğĝĖěĜĚďĜČĘĘħ*=14,?)44
ȁȟȠȎțȜȐȖȐȥȓȞȓȝȎȦȘȡȖȝȜșȜȔȖȐȐȓȓȖțȐȓțȠȎȞȪȏșȜȘȎ
ȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗ ȖșȖșȬȏȩȣȒȞȡȑȖȣȟȠȞȜȖȠȓșȪțȩȣȏșȜ
ȘȎ ȧȓșȘțȖȝȜțȓȗȝȞȎȐȜȗȘțȜȝȘȜȗȚȩȦȖȥȠȜȏȩȜȠȘȞȩȠȪ

226

DZǹǮǰǮ

ȑȞȎȢȖȥȓȟȘȖȗȖțȠȓȞȢȓȗȟȅȠȜȏȩȝȜȟȚȜȠȞȓȠȪȘȎȘȥȓȞȓȝȎȦ
ȘȎȟȠȞȜȖȠȘȜȚțȎȠȡȖȕȝȭȠȖȏșȜȘȜȐȐȒșȖțȡȦȓȟȠȖȏșȜȘȜȐȐ
ȦȖȞȖțȡȖȥȓȠȩȞȓȣȏșȜȘȜȐȐȐȩȟȜȠȡȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡbuildroom 5 6 4.
ǿȝȜȚȜȧȪȬȝȞȜȑȞȎȚȚbuildwallȖbuildroomȠȩȚȜ
ȔȓȦȪȏȩȟȠȞȜȐȜȕȐȜȒȖȠȪȐȩȟȜȘȖȓȕȎȚȘȖȖșȖȒȞȡȑȖȓȟȠȞȡȘ
ȠȡȞȩțȓȡȘșȎȒȩȐȎȭȐȞȡȥțȡȬțȖȜȒțȜȑȜȏșȜȘȎȀȩȚȜȔȓȦȪ
ȟȜȕȒȎȠȪțȓȟȘȜșȪȘȜȥȓȞȓȝȎȦȓȘȕȎȝȡȟȘȎȬȧȖȣșȖȏȜȝȞȜȑȞȎȚ
ȚȡbuildRoomșȖȏȜbuildWallȒșȭȟȜȐȚȓȟȠțȜȗȞȎȏȜȠȩȘȎȘ
ȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϮ͘ϳ͘ˋ̡̨̨̡̨̨̛̛̛̖̬̖̪̹͕̭̯̬̺̖̥͕̪̱̪̬̣̖̦̖̥̪̬̬̥̥̌́̌̔̌̏̐̌̚buildwall̛buildroom

dzȟșȖȝȞȖȕȎȝȡȟȘȓȫȠȜȗȝȞȜȑȞȎȚȚȩȐȜȕțȖȘȎȬȠȜȦȖȏȘȖ
ȠȧȎȠȓșȪțȜȟȞȎȐțȖȟȐȜȗȘȜȒȟșȖȟȠȖțȑȜȚȐȫȠȜȗȘțȖȑȓȥȠȜȏȩ
țȎȗȠȖȐȜȕȚȜȔțȩȓȜȝȓȥȎȠȘȖdzȟșȖȖȟȝȞȎȐȖȠȪȝȞȜȑȞȎȚȚȡțȓ
ȡȒȎȓȠȟȭȡȒȎșȖȢȎȗșȐȩȝȜșțȖȐȘȜȚȎțȒȡdelete buildroomȎȕȎȠȓȚȕȎȑȞȡȕȖȓȓȟțȜȐȎȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin get U0WVM4wg buildroom.

ǿȀǾǼǶȀdzǹȊǿȀǰǼǸǼǺǻǮȀ

227

ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"
ĖĚĘęČĞČĎĠĚĜĘđĖĜđĝĞČ

Попробуй создать программу, которая построит комнату в
форме креста, а не прямоугольную, как показано на рис. 12.8.
Такая программа будет похожа на buildroom, но будет включать двенадцать вызовов функции hare.buildWall() вместо четырех, а также нужно будет просчитать все повороты,
которые должна совершить черепашка.

ˀ̛̭͘ϭϮ͘ϴ͘ˋ̴̡̨̨̡̨̨̡̛̖̬̖̪̹̪̭̯̬̣̥̦̯̱̬̥̖̬̖̭̯̌̌̌̌̏̌

ģĞĚĘħğēęČėĔ
ȃȜȠȭȐȫȠȜȗȑșȎȐȓȭȖțȓȜȏȨȭȟțȖșțȜȐȩȣȘȜțȤȓȝȤȖȗȝȞȜ
ȑȞȎȚȚȖȞȜȐȎțȖȭȫȠȜȏȩșȎȣȜȞȜȦȎȭȝȞȎȘȠȖȘȎȝȜȞȎȕȞȎȏȜȠȘȓ
ȎșȑȜȞȖȠȚȜȐȅȓȚȏȜșȪȦȓȖȒȓȗȜȠȜȚȥȠȜȠȩȣȜȥȓȦȪȝȜșȡ
ȥȖȠȪȜȠȥȓȞȓȝȎȦȘȖȝȞȓȐȞȎȧȎȓȠȟȭȐȘȜțȘȞȓȠțȩȓȜȝȖȟȎțȖȭ
ȒȓȗȟȠȐȖȗȒșȭțȓȓȠȓȚșȡȥȦȖȚȝȞȜȑȞȎȚȚȖȟȠȜȚȠȩȟȠȎțȜ
ȐȖȦȪȟȭ
ǰȑșȎȐȓȠȩțȎȝȖȟȎșȢȡțȘȤȖȬȒșȭȝȜȟȠȞȜȗȘȖȟȠȓțȐ
ȫȠȜȗȑșȎȐȓ²ȢȡțȘȤȖȬȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȘȜȚțȎȠǮȐȟșȓ
ȒȡȬȧȓȗȑșȎȐȓȞȎȕȞȎȏȜȠȎȓȦȪȎșȑȜȞȖȠȚȝȜȟȠȞȜȓțȖȭȝȜșȜȐȖ
ȝȜȠȜșȘȜȐ

13
ĝĞĜĚĔĞđėĨĝĞĎĚěĚėČĔěĚĞĚėĖČ
ǸȜȚțȎȠȩȘȜȠȜȞȩȓȚȩȝȜȟȠȞȜȖșȖȟȝȜȚȜȧȪȬ
ȢȡțȘȤȖȖbuildRoom()ȐȑșȎȐȓȘȞȓȝȘȖțȜ
țȓȕȎȧȖȧȎȬȠȜȠȒȜȔȒȭǰȫȠȜȗȑșȎȐȓȚȩțȎȝȖ
ȦȓȚȢȡțȘȤȖȬbuildFloor()ȒșȭȟȠȞȜȖȠȓșȪ
ȟȠȐȎȝȜșȜȐȖȝȜȠȜșȘȜȐȎȠȎȘȔȓȞȎȕȞȎȏȜȠȎȓȚ
ȝȞȜȑȞȎȚȚȡEXLOGÀRRUȒșȭȐȩȕȜȐȎȫȠȜȗȢȡțȘȤȖȖ
DzșȭȟȠȞȜȖȠȓșȪȟȠȐȎȝȜșȎȖȝȜȠȜșȘȎȏȡȒȓȠȖȟȝȜșȪȕȜ
ȐȎȠȪȟȭȜȒțȎȖȠȎȔȓȢȡțȘȤȖȭȝȜȠȜȚȡȥȠȜȝȜȠȜșȜȘ²ȫȠȜȐȟȓȑȜ
șȖȦȪȝȜșȝȜȟȠȞȜȓțțȩȗȟȐȓȞȣȡȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ
ǿȜȑșȎȟțȜȎșȑȜȞȖȠȚȡȟȜȕȒȎțȖȭȝȜșȜȐȥȓȞȓȝȎȦȘȎȏȡ
ȒȓȠȝȓȞȓȚȓȧȎȠȪȟȭȐȒȜșȪȖȝȜȝȓȞȓȘȝȞȭȚȜȡȑȜșȪțȜȗȜȏșȎ
ȟȠȖȐȩȝȜșțȭȭȜȝȞȓȒȓșȓțțȩȓȒȓȗȟȠȐȖȭȐȘȎȔȒȜȗȓȓȠȜȥȘȓ
ǰȫȠȜȗȑșȎȐȓȥȓȞȓȝȎȦȘȎȏȡȒȓȠȞȎȕȚȓȧȎȠȪȏșȜȘȖȝȜȐȟȓȗ
ȝșȜȧȎȒȖȝȞȭȚȜȡȑȜșȪțȜȗȜȏșȎȟȠȖțȜȫȠȜȠȎșȑȜȞȖȠȚȒȜȟȠȎ
ȠȜȥțȜȑȖȏȜȘȥȠȜȏȩȐȩȝȜșțȭȠȪȖȒȞȡȑȖȓȕȎȒȎȥȖǸȝȞȖȚȓȞȡ
ȐȑșȎȐȓȚȩȖȟȝȜșȪȕȡȓȚȫȠȜȠȎșȑȜȞȖȠȚȒșȭȞȎȕȞȎȏȜȠȘȖ
ȝȞȜȑȞȎȚȚȩȥȓȞȓȝȎȦȘȖȢȓȞȚȓȞȎȘȜȠȜȞȎȭȏȡȒȓȠȕȎȟȓȖȐȎȠȪ
ȝȜșȭȝȞȭȚȜȡȑȜșȪțȜȗȢȜȞȚȩǶȟȝȜșȪȕȜȐȎțȖȓȑȖȏȘȖȣȎșȑȜ
ȞȖȠȚȜȐȐȚȓȟȠȜȔȓȟȠȘȜȕȎȝȞȜȑȞȎȚȚȖȞȜȐȎțțȩȣȞȓȦȓțȖȗȝȜ
ȕȐȜșȭȓȠȖȟȝȜșȪȕȜȐȎȠȪȜȒȖțȖȠȜȠȔȓȘȜȒȒșȭȞȓȦȓțȖȭȚțȜ
ȔȓȟȠȐȎȕȎȒȎȥ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

229

ˀ̛̭͘ϭϯ͘ϭ͘ʶ̨̨̨̨̨̨̨̡̛̛̛̛̣̭̯̬̯̖̣̭̯̪̣̥̙̖̯̭̯̬̯̪̯̣̔̔́̽̏̌̌̽

ěĜĚđĖĞĔĜĚĎČęĔđČėďĚĜĔĞĘČ
ĎħĖėČĐħĎČęĔīěđĜđĖĜħĞĔī
ǽȜȟȠȞȜȓțȖȓȑȜȞȖȕȜțȠȎșȪțȜȗȝȜȐȓȞȣțȜȟȠȖȝȜȒȜȏțȜȟȠȞȜ
ȖȠȓșȪȟȠȐȡȟȠȓțȩțȜȐȚȓȟȠȜȠȜȑȜȥȠȜȏȩȒȐȖȑȎȠȪȟȭȐȐȓȞȣ
ȝȜȟșȓȡȘșȎȒȘȖȞȭȒȎ ȟȠȞȜȘȖ ȏșȜȘȜȐȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎ
ȟșȓȒȡȬȧȓȑȜȞȭȒȎȥȓȞȓȝȎȦȘȎȏȡȒȓȠȝȓȞȓȚȓȧȎȠȪȟȭȐșȓ
ȐȜ ȖșȖ ȐȝȞȎ ȐȜ ȝȓȞȓȣȜȒȭ Ș ȟșȓȒ ȡ ȬȧȓȚ ȡ Ȟȭ Ȓ ȡ ȟȠ Ȝșȏ
Ȥȡ ǽȞȜȤȓȟȟȞȎȕȚȓȧȓțȖȭȏșȜȘȜȐȝȜșȎȝȜȠȜșȘȎȭțȎȕȜȐȡ
ȐȩȘșȎȒȩȐȎțȖȓȚȎȐȩȟȠȞȎȖȐȎȓȚȡȬȑȜȞȖȕȜțȠȎșȪțȡȬȝȜ
ȐȓȞȣțȜȟȠȪ²ȝȓȞȓȘȞȩȠȖȓȚ.
ǿȘȜțȟȠȞȡȖȞȡȓȚȢȡțȘȤȖȬsweepField()ȘȜȠȜȞȎȭȏȡȒȓȠ
ȝȞȖțȖȚȎȠȪȠȞȖȝȎȞȎȚȓȠȞȎlengthwidthȖsweepFunc.
ǽȎȞȎȚȓȠȞȩlengthȖwidthȏȡȒȡȠȜȝȞȓȒȓșȭȠȪȞȎȕȚȓȞȝȓȞȓ
ȘȞȩȠȖȭȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ
ȍȕȩȘȝȞȜȑȞȎȚȚȖȞȜȐȎțȖȭ/XDȒȜȝȡȟȘȎȓȠȖȟȝȜșȪȕȜȐȎțȖȓ
ȢȡțȘȤȖȗȐȐȖȒȓȝȎȞȎȚȓȠȞȜȐǽȎȞȎȚȓȠȞȡsweepFuncȏȡȒȓȠ
ȝȓȞȓȒȎȐȎȠȪȟȭȢȡțȘȤȖȭȘȜȠȜȞȎȭȏȡȒȓȠȐȩȕȩȐȎȠȪȟȭȐȘȎȔ
ȒȜȗȝȜȕȖȤȖȖȝȓȞȓȘȞȩȠȖȭȑȒȓȝȜȠȞȓȏȡȓȠȟȭȐȩȝȜșțȓțȖȓȘȎ
ȘȖȣșȖȏȜȒȓȗȟȠȐȖȗ

230

DZǹǮǰǮ

ǸȜȑȒȎȢȡțȘȤȖȭbuildFloor()ȏȡȒȓȠȐȩȕȩȐȎȠȪȢȡțȘȤȖȬ
sweepField()ȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȝȓȞȓȘȞȩȠȖȭȠȜȐȐȖȒȓ
ȝȎȞȎȚȓȠȞȎsweepFuncȏȡȒȓȠȝȓȞȓȒȎțȎȢȡțȘȤȖȭȘȜȠȜȞȎȭ
ȡȘșȎȒȩȐȎȓȠȏșȜȘȖȝȜȒȥȓȞȓȝȎȦȘȜȗȝȞȖȘȎȔȒȜȚȓȓȝȓȞȓȚȓ
ȧȓțȖȖǰȘȎȥȓȟȠȐȓȕțȎȥȓțȖȗȝȎȞȎȚȓȠȞȜȐȚȜȔțȜȝȓȞȓȒȎȐȎȠȪ
șȬȏȩȓȢȡțȘȤȖȖȠȎȘȖȚȜȏȞȎȕȜȚȢȡțȘȤȖȬsweepField()
ȚȜȔțȜțȎȟȠȞȜȖȠȪțȎȐȩȝȜșțȓțȖȓșȬȏȩȣȒȓȗȟȠȐȖȗǻȜȝȜ
ȟȘȜșȪȘȡȜȟțȜȐțȜȓȐțȖȚȎțȖȓȐȫȠȜȗȑșȎȐȓȡȒȓșȭȓȠȟȭȟȜȕȒȎ
țȖȬȝȓȞȓȘȞȩȠȖȗȚȩȞȎȟȟȚȜȠȞȖȚȎșȑȜȞȖȠȚȝȞȜȑȞȎȚȚȩ
EXLOGÀRRUȘȜȠȜȞȎȭȏȡȒȓȠȟȠȞȜȖȠȪȖȚȓțțȜȝȓȞȓȘȞȩȠȖȭ²ȝȜ
șȩȖȝȜȠȜșȘȖ

Длина
Ширина

ˀ̛̭͘ϭϯ͘Ϯ͘ˁ̨̨̡̛̛̯̬̯̖̣̭̯̪̖̬̖̬̼̯̪̬̥̖̯̬̽̏́͗̌̌lengthʹ̨̯̾
̸̨̡̨̛̬̭̭̯̦̖̪̖̬̖̖̬̖̪̹̜͕̪̬̥̖̯̬̌́̔̌̌̌̌widthʹ̨̨̛̯̬̭̭̯̦̖̾̌́
̸̨̡̛̭̪̬̯̖̬̖̪̹̌̏̌̌

ĝĞĜĚĔĞđėĨĝĞĎĚěđĜđĖĜħĞĔĕ
ǽȞȜȑȞȎȚȚȎEXLOG ÀRRUȏȡȒȓȠȝȞȖțȖȚȎȠȪȒȐȎȎȞȑȡȚȓțȠȎ
ȘȜȚȎțȒțȜȗȟȠȞȜȘȖlengthȖwidthǸȎȘȡȝȜȚȖțȎșȜȟȪȞȎ
țȓȓȫȠȖȎȞȑȡȚȓțȠȩȜȝȞȓȒȓșȭȬȠȞȎȕȚȓȞțȎȦȓȑȜȝȓȞȓȘȞȩ
ȠȖȭ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

231

ǻȎȞȖȟȟȠȞȓșȘȜȗȟȐȓȞȣȡȐțȖȕȜȏȜȕțȎȥȓțȝȡȠȪȘȜȠȜȞȩȗ
ȝȞȜȒȓșȎȓȠȥȓȞȓȝȎȦȘȎȥȠȜȏȩȐȩșȜȔȖȠȪȝȓȞȓȘȞȩȠȖȓȞȎȕȚȓ
ȞȜȚðȏșȜȘȎ

ˀ̛̭͘ϭϯ͘ϯ͘ʿ̸̸̡̨̨̨̡̨̨̛̱̯͕̯̬̼̜̪̬̖̣̖̯̖̬̖̪̹͕̯̼̼̣̙̯̽̔̌̌̌̍̏̽
̡̨̛̪̖̬̖̬̼̯̖̬̥̖̬̥̌̚ϯпϰ̨̡̣̍̌

ȅȠȜȏȩȝȜȟȠȞȜȖȠȪȝȓȞȓȘȞȩȠȖȓȥȓȞȓȝȎȦȘȎȟțȎȥȎșȎȒȐȖ
ȔȓȠȟȭȐȝȓȞȓȒȐȒȜșȪȝȓȞȐȜȑȜȞȭȒȎ ȟȠȜșȏȤȎ  ȓȟșȖȟȚȜȠȞȓȠȪ
țȎȞȖȟȡțȜȘ ȝȜȚȓȧȎȭȝȜȒȟȓȏȭȘȎȚȓțȪȝȞȖȘȎȔȒȜȚȝȓȞȓȚȓ
ȧȓțȖȖDzșȭȐȩȏȜȞȎȢȡțȘȤȖȖȘȜȠȜȞȎȭȏȡȒȓȠȝȞȜȖȕȐȜȒȖȠȪ
ȠȞȓȏȡȓȚȩȓȒȓȗȟȠȐȖȭȖȟȝȜșȪȕȡȓȠȟȭȝȎȞȎȚȓȠȞsweepFunc
ȘȜȠȜȞȩȗȚȩȞȎȟȟȚȜȠȞȖȚȏȜșȓȓȝȜȒȞȜȏțȜȐȞȎȕȒȓșȓ«ǰȩȕȜȐ
ȢȡțȘȤȖȖsweepFunc()ªȒȎșȓȓȐȫȠȜȗȑșȎȐȓǽȜȘȎȝȞȜȟȠȜȕȎ
ȝȜȚțȖȥȠȜȐȫȠȜȠȝȎȞȎȚȓȠȞȝȓȞȓȒȎȓȠȟȭȢȡțȘȤȖȭȘȜȠȜȞȎȭ
ȏȡȒȓȠȐȩȕȩȐȎȠȪȟȭȝȞȖȘȎȔȒȜȚȝȓȞȓȚȓȧȓțȖȖȥȓȞȓȝȎȦȘȖȐ
ȝȞȓȒȓșȎȣȟȠȞȜȭȧȓȑȜȟȭȝȓȞȓȘȞȩȠȖȭǰȝȞȜȑȞȎȚȚȓbuildÀRRUȢȡțȘȤȖȭȝȓȞȓȒȎȐȎȓȚȎȭȝȎȞȎȚȓȠȞȡsweepFunc²ȫȠȜ
selectAndPlaceDown()ȋȠȜȢȡțȘȤȖȭȚȜȒȡșȭhareȘȜȠȜȞȎȭ
ȐȩȏȖȞȎȓȠțȓȝȡȟȠȡȬȭȥȓȗȘȡȖțȐȓțȠȎȞȭȥȓȞȓȝȎȦȘȖȖȡȟȠȎ
țȎȐșȖȐȎȓȠȏșȜȘȖȕȐȩȏȞȎțțȜȗȭȥȓȗȘȖȝȜȒȥȓȞȓȝȎȦȘȜȗȀȎȘ
ȘȎȘȥȓȞȓȝȎȦȘȎțȎȥȖțȎȓȠȒȐȖȔȓțȖȓȐșȓȐȜȚțȖȔțȓȚȡȑșȡ
ȓȟșȖȟȚȜȠȞȓȠȪȟȐȓȞȣȡ ȓȗțȡȔțȜȟȜȐȓȞȦȖȠȪlength - 1
ȝȓȞȓȚȓȧȓțȖȗȐȒȜșȪȝȓȞȐȜȑȜȞȭȒȎ ȟȠȜșȏȤȎ ȥȠȜȏȩȒȜȟȠȖȑ
țȡȠȪȝȜȟșȓȒțȓȑȜȏșȜȘȎȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

232

DZǹǮǰǮ

ˀ̛̭͘ϭϯ͘ϰ͘ʿ̨̭̣̖length - 1̸̵̡̨̛̛̪̖̬̖̥̖̺̖̦̜̖̬̖̪̹̦̯̭̦̌̌̌̔́̌̔
̨̨̡̨̨̨̛̪̭̣̖̦̥̣̥̪̖̬̬̔̍̏̐́̔̌;̶̨̭̯̣̍̌Ϳ

ȅȠȜȏȩȝȓȞȓȗȠȖȘȟșȓȒȡȬȧȓȚȡȞȭȒȡ ȟȠȜșȏȤȡ ȥȓȞȓȝȎȦ
ȘȎȒȜșȔțȎȝȜȐȓȞțȡȠȪțȎȝȞȎȐȜȖȝȓȞȓȒȐȖțȡȠȪȟȭțȎȜȒțȡȝȜ
ȕȖȤȖȬȎȕȎȠȓȚȟțȜȐȎȝȜȐȓȞțȡȠȪțȎȝȞȎȐȜȥȠȜȏȩȜȘȎȕȎȠȪȟȭȐ
ȝȜșȜȔȓțȖȖȝȜȘȎȕȎțțȜȚțȎȞȖȟȟȝȞȎȐȎ

ˀ̛̭͘ϭϯ͘ϱ͘ˋ̸̡̨̨̨̨̛̛̛̖̬̖̪̹̪̬̖̯̭̦̪̬͕̙̖̯̭̪̖̬̖̭̦̌̌̏̌̏̌́̌̌̏̔̏́̏̔̏̌
̸̸̨̨̨̨̨̨̡̨̨̨̛̛̛̪̬̖̯̭͕̯̼̪̯̯̭̪̭̯̬̖̦̭̣̖̱̺̖̬̏̌̏̌́̍̔̐̏̽́̀̔̀̐́̔̌
;̶̨̭̯̣̍̌Ϳ

DzȎșȓȓȥȓȞȓȝȎȦȘȎȐȩȝȜșțȭȓȠȘȜȒȎțȎșȜȑȖȥțȩȗȖȟȝȜșȪ
ȕȜȐȎțțȜȚȡȝȞȖȟȠȞȜȖȠȓșȪȟȠȐȓȝȓȞȐȜȑȜȞȭȒȎ ȟȠȜșȏȤȎ ǼțȎ
ȝȓȞȓȚȓȧȎȓȠȟȭȐȝȓȞȓȒlength - 1ȞȎȕȐȩȕȩȐȎȭȢȡțȘȤȖȬ
selectAndPlaceDown()ȝȞȖȘȎȔȒȜȚȝȓȞȓȒȐȖȔȓțȖȖȥȠȜȏȩ
ȡȟȠȎțȜȐȖȠȪȝȜȒȟȜȏȜȗȏșȜȘȀȎȘȖȚȜȏȞȎȕȜȚȐȩȟȠȞȎȖȐȎȓȠȟȭ
ȒȐȎȞȭȒȎ ȟȠȜșȏȤȎ ȏșȜȘȜȐȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

233

ˀ̛̭͘ϭϯ͘ϲ͘ʿ̸̨̨̡̨̨̛̛̛̛̣̙̖̦̖̖̬̖̪̹̪̭̣̖̖̬̹̖̦̭̯̬̯̖̣̭̯̌̌̏́̽̏̌̚
̨̨̨̯̬̬̏̐́̔̌;̶̨̭̯̣̍̌Ϳ

ȀȓȝȓȞȪȥȠȜȏȩȝȓȞȓȗȠȖȘȟșȓȒȡȬȧȓȚȡȞȭȒȡ ȟȠȜșȏȤȡ ȥȓ
ȞȓȝȎȦȘȎȒȜșȔțȎȝȜȐȓȞțȡȠȪțȎșȓȐȜȝȓȞȓȒȐȖțȡȠȪȟȭȐȝȓȞȓȒ
ȖȟțȜȐȎȝȜȐȓȞțȡȠȪțȎșȓȐȜȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϯ͘ϳ͘ʿ̨̨̨̡̡̨̨̨̨̭̣̖̯͕̪̭̯̬̖̦̯̬̜̬̐̌̏́̔;̶̨̭̯̣̖̍Ϳ̸̡͕̖̬̖̪̹̌̌
̨̨̨̨̨̨̛̣̙̦̪̖̬̦̱̯̦̣̖͕̹̦̱̯̪̖̬̖͕̭̦̪̖̬̦̱̯̦̣̖̔̌̏̽̌̏̌̐̽̏̔̏̌̏̽̌̏

ȀȎȘȥȓȞȓȝȎȦȘȎȝȞȜȒȜșȔȎȓȠȒȐȖȑȎȠȪȟȭȐȝȓȞȓȒȖțȎȕȎȒ
ȝȜȞȭȒȎȚȒȜȠȓȣȝȜȞȝȜȘȎȘȜșȖȥȓȟȠȐȜȝȜȟȠȞȜȓțțȩȣȞȭȒȜȐ
ȟȠȜșȏȤȜȐ țȓȟȠȎțȓȠȞȎȐțȩȚȕȎȒȎțțȜȗȦȖȞȖțȓȝȓȞȓȘȞȩ
ȠȖȭǸȜȑȒȎȥȓȞȓȝȎȦȘȎȕȎȐȓȞȦȖȠȐȩȝȜșțȓțȖȓȫȠȜȗȥȎȟȠȖ
ȎșȑȜȞȖȠȚȎȝȓȞȓȘȞȩȠȖȓȏȡȒȓȠȝȜȟȠȞȜȓțȜțȜȞȎȏȜȠȎȓȧȓțȓ
ȏȡȒȓȠȕȎȘȜțȥȓțȎǽȜȟșȓȠȜȑȜȘȎȘȝȓȞȓȘȞȩȠȖȓȑȜȠȜȐȜȚȜȔțȜ
ȏȩșȜȏȩȕȎȝȡȟȠȖȠȪȝȞȜȑȞȎȚȚȡbuildroomȥȠȜȏȩȝȜȟȠȞȜȖȠȪ
ȘȜȚțȎȠȡǻȜȐȠȎȘȜȚȟșȡȥȎȓțȎȚțȡȔțȜȥȠȜȏȩȥȓȞȓȝȎȦȘȎ
țȎȣȜȒȖșȎȟȪȐȠȜȗȔȓȝȜȕȖȤȖȖȖȏȩșȎȜȞȖȓțȠȖȞȜȐȎțȎȐȠȜȚ

234

DZǹǮǰǮ

ȔȓțȎȝȞȎȐșȓțȖȖȥȠȜȖȝȞȖțȎȥȎșȓȟȠȞȜȖȠȓșȪȟȠȐȎȝȓȞȓ
ȘȞȩȠȖȭǰȜȕȐȞȎȧȓțȖȓȥȓȞȓȝȎȦȘȖȐȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓ
ȑȎȞȎțȠȖȞȡȓȠȥȠȜȟȠȓțȩȘȜȠȜȞȩȓȜțȎȝȜȟȠȞȜȖȠȝȞȖȝȜȚȜȧȖ
ȝȞȜȑȞȎȚȚȩbuildroomȏȡȒȡȠȠȜȥțȜȟȜȜȠȐȓȠȟȠȐȜȐȎȠȪȝȜ
ȟȠȞȜȓțțȜȚȡȝȓȞȓȘȞȩȠȖȬ

ĎĚēĎĜČĞĖĔĝġĚĐęĚĕěĚēĔĢĔĔ
ǰȜȕȐȞȎȠȥȓȞȓȝȎȦȘȖȐȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓȖțȎȝȞȎȐșȓțȖȓ
ȟȜȜȠȐȓȠȟȠȐȡȬȧȖȓțȎȥȎșȡȟȠȞȜȖȠȓșȪȟȠȐȎȐȜȕȚȜȔțȜȒȐȡȚȭ
ȝȡȠȭȚȖȐȕȎȐȖȟȖȚȜȟȠȖȜȠȠȜȑȜȖȕȥȓȠțȜȑȜȖșȖțȓȥȓȠțȜȑȜ
ȘȜșȖȥȓȟȠȐȎȏșȜȘȜȐȟȜȟȠȎȐșȓțȎȦȖȞȖțȎȝȓȞȓȘȞȩȠȖȭ
dzȟșȖȝȓȞȓȘȞȩȠȖȓȝȜȦȖȞȖțȓȟȜȟȠȜȖȠȖȕȥȓȠțȜȑȜȘȜșȖȥȓ
ȟȠȐȎȏșȜȘȜȐȥȓȞȓȝȎȦȘȎȏȡȒȓȠțȎȣȜȒȖȠȪȟȭȐȝȞȎȐȜȚțȖȔțȓȚ
ȡȑșȡȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϯ͘ϴ͘ˋ̵̡̨̨̨̨̡̨̛̛̖̬̖̪̹̦̯̭̭̥̥̪̬̥̣̖̦̙̦̖̬̌̌̌̔́̏̌̌̏̍̐́̔̌
;̨̡̛̭̯̬Ϳ̸̸̡̨̨̨̨̨̡̨̛̛̛̛̛̛̛͕̖̭̣̪̖̬̖̬̼̯̖̪̹̬̦̖̭̭̯̯̖̯̦̣̖̭̯̐̏̌̚
̨̡̨̣̍̏

ǸȞȎȟțȎȭșȖțȖȭțȎȞȖȟȝȜȘȎȕȩȐȎȓȠȝȡȠȪȘȜȠȜȞȩȗ
ȒȜșȔțȎȟȜȐȓȞȦȖȠȪȥȓȞȓȝȎȦȘȎȥȠȜȏȩȐȓȞțȡȠȪȟȭȐȖȟȣȜȒțȜȓ
ȝȜșȜȔȓțȖȓȖȝȜȐȓȞțȡȠȪȟȭȐȖȟȣȜȒțȜȚțȎȝȞȎȐșȓțȖȖǰȫȠȜȚ
ȟșȡȥȎȓȥȓȞȓȝȎȦȘȎȒȜșȔțȎ
1. ȝȜȐȓȞțȡȠȪțȎȝȞȎȐȜ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

235

2. ȝȓȞȓȚȓȟȠȖȠȪȟȭȐȝȓȞȓȒwidth - 1ȞȎȕ
3. ȝȜȐȓȞțȡȠȪțȎȝȞȎȐȜ
ǼȒțȎȘȜȓȟșȖȝȓȞȓȘȞȩȠȖȓȝȜȦȖȞȖțȓȟȜȟȠȜȖȠȖȕțȓȥȓȠ
țȜȑȜȘȜșȖȥȓȟȠȐȎȏșȜȘȜȐȥȓȞȓȝȎȦȘȎȕȎȘȎțȥȖȐȎȓȠȐȐȓȞȣțȓȗ
ȥȎȟȠȖȝȓȞȓȘȞȩȠȖȭȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϯ͘ϵ͘ˋ̵̵̡̨̨̨̨̡̨̛̖̬̖̪̹̦̯̭̭̥̥̪̬̥̣̖̖̬̦̖̬̌̌̌̔́̏̌̌̏̍̏̐́̔̌
;̨̡̛̭̯̬Ϳ̸̸̡̨̨̨̨̨̡̨̛̛̛̛̛̛̛͕̖̭̣̪̖̬̖̬̼̯̖̪̹̬̦̖̭̭̯̯̦̖̖̯̦̣̖̭̯̐̏̌̚
̨̡̨̣̍̏

ǸȞȎȟțȎȭșȖțȖȭțȎȞȖȟȝȜȘȎȕȩȐȎȓȠȝȡȠȪȘȜȠȜȞȩȗ
ȒȜșȔțȎȟȜȐȓȞȦȖȠȪȥȓȞȓȝȎȦȘȎȥȠȜȏȩȐȓȞțȡȠȪȟȭȘȖȟȣȜȒțȜ
ȚȡȝȜșȜȔȓțȖȬȖțȎȝȞȎȐșȓțȖȬǰȫȠȜȚȟșȡȥȎȓȥȓȞȓȝȎȦȘȎ
ȒȜșȔțȎ
1. ȝȓȞȓȚȓȟȠȖȠȪȟȭțȎȕȎȒlength - 1ȞȎȕ
2. ȝȜȐȓȞțȡȠȪțȎșȓȐȜ
3. ȝȓȞȓȚȓȟȠȖȠȪȟȭȐȝȓȞȓȒwidth - 1ȞȎȕ
4. ȝȜȐȓȞțȡȠȪțȎȝȞȎȐȜ
Ǯ ș ȑ ȜȞȖ Ƞ Ț ȐȜȕȐȞȎ ȧȓț Ȗȭ Ƞ ȩ ȕȎ șȜȔȖ Ȧ Ȫ Ȑ Ȣȡ ț ȘȤ Ȗ Ȭ
sweepField()țȜȝȞȓȔȒȓȥȓȚȝȖȟȎȠȪȟȎȚȡȢȡțȘȤȖȬțȡȔ
țȜȝȜțȭȠȪȘȎȘȝȓȞȓȒȎȐȎȠȪȜȒțȡȢȡțȘȤȖȬȒȞȡȑȜȗ

236

DZǹǮǰǮ

ěđĜđĐČģČĚĐęĚĕĠğęĖĢĔĔĎĐĜğďğĪ
ȂȡțȘȤȖȖbuildWall()ȖbuildRoom()ȘȜȠȜȞȩȓȚȩȖȟȝȜșȪ
ȕȜȐȎșȖȐȑșȎȐȎȣȖțȎȟȠȞȎȖȐȎȓȚȩȓȖȝȜȕȐȜșȭȬȠȟȠȞȜ
ȖȠȪȟȠȓțȩȖȘȜȚțȎȠȩșȬȏȜȑȜȞȎȕȚȓȞȎȝȜȠȜȚȡȥȠȜȝȞȖțȖȚȎ
ȬȠȝȎȞȎȚȓȠȞȩȒșȖțȩȦȖȞȖțȩȖȐȩȟȜȠȩ²lengthwidthȖ
heightȋȠȖȝȎȞȎȚȓȠȞȩȝȜȕȐȜșȭȬȠȟȜȕȒȎȐȎȠȪȟȠȓțȩȖȘȜȚ
țȎȠȩȞȎȕțȩȣȞȎȕȚȓȞȜȐȏȓȕȖȕȚȓțȓțȖȭȖȟȣȜȒțȜȑȜȘȜȒȎ
ǰ ȫȠȜȗ ȑșȎȐȓ Țȩ ȒȜȏȎȐȖȚ Ȑ ȚȜȒȡșȪ h a r e  ȢȡțȘȤȖȬ
sweepField()ȖțȎȝȖȦȓȚȝȞȜȑȞȎȚȚȡbuildFloorȒșȭȐȩ
ȕȜȐȎȒȎțțȜȗȢȡțȘȤȖȖǰțȎȟȠȜȭȧȓȓȐȞȓȚȭȢȡțȘȤȖȭsweepField()ȝȓȞȓȚȓȧȎȓȠȥȓȞȓȝȎȦȘȡȝȜȝȞȭȚȜȡȑȜșȪțȜȚȡȝȓȞȓ
ȘȞȩȠȖȬȝȜȚȓȧȎȭȝȜȒȥȓȞȓȝȎȦȘȡȘȎȚȓțțȩȗȘȖȞȝȖȥȝȞȖ
ȘȎȔȒȜȚȓȓȝȓȞȓȚȓȧȓțȖȖ
ǻȜȢȡțȘȤȖȬsweepField()ȚȜȔțȜȖȕȚȓțȖȠȪȠȎȘȥȠȜȏȩ
ȥȓȞȓȝȎȦȘȎȝȓȞȓȚȓȧȎȭȟȪȝȜȝȞȭȚȜȡȑȜșȪțȜȗȢȓȞȚȓȟȎȔȎ
șȎȟȓȚȓțȎȟȜȏȖȞȎșȎȝȦȓțȖȤȡșȖȏȜȞȩșȎȝȜȒȟȜȏȜȗȝȞȭȚȜ
ȡȑȜșȪțȩȓȦȎȣȠȩǸȜȒȘȜȠȜȞȩȗȝȓȞȓȚȓȧȎȓȠȥȓȞȓȝȎȦȘȡȝȜ
ȦȎȏșȜțȡȐȩȘșȎȒȩȐȎțȖȭȜȟȠȎȓȠȟȭțȓȖȕȚȓțțȩȚțȜȒȓȗ
ȟȠȐȖȭȥȓȞȓȝȎȦȘȖȚȜȑȡȠȏȩȠȪȞȎȕșȖȥțȩȚȖ
ȀȎȘȡȬȑȖȏȘȜȟȠȪȐțȎȟȠȞȜȗȘȓȢȡțȘȤȖȖsweepField()
ȜȏȓȟȝȓȥȖȐȎȓȠȝȎȞȎȚȓȠȞsweepFuncȐȘȜȠȜȞȩȗȝȓȞȓȒȎȓȠȟȭ
ȢȡțȘȤȖȭȜȝȞȓȒȓșȭȬȧȎȭȒȓȗȟȠȐȖȭȝȞȜȖȕȐȜȒȖȚȩȓȥȓȞȓ
ȝȎȦȘȜȗȝȞȖȓȓȝȓȞȓȒȐȖȔȓțȖȖȝȜȝȞȭȚȜȡȑȜșȪțȜȚȡȝȜșȬǰ
/XDȠȩȚȜȔȓȦȪȝȓȞȓȒȎȐȎȠȪȐȐȖȒȓȎȞȑȡȚȓțȠȜȐȢȡțȘȤȖȖȠȎȘ
ȔȓȘȎȘȠȩȝȓȞȓȒȎȐȎșȢȡțȘȤȖȭȚȤȓșȩȓȥȖȟșȎȖșȖȟȠȞȜȘȖ
DzȎȐȎȗȒșȭȝȞȖȚȓȞȎȟȜȕȒȎȒȖȚȝȞȜȟȠȡȬȝȞȜȑȞȎȚȚȡȘȜȠȜȞȎȭ
ȝȓȞȓȒȎȓȠȢȡțȘȤȖȬȐȐȖȒȓȝȎȞȎȚȓȠȞȎȒȞȡȑȜȗȢȡțȘȤȖȖǰ
ȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȐȓȒȖȘȜȚȎțȒȡedit announce
ȒșȭȟȜȕȒȎțȖȭțȜȐȜȗȝȞȜȑȞȎȚȚȩȖȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
announce
1. function hello()
2. print('Hello there!')
3. end
4.
5. function goodbye()
6. print('Goodbye!')

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

237

7. end
8.
9. function announce(func)
10. print('About to call the function.')
11. func()
12. print('Function called.')
13. end
14.
DQQRXQFH KHOOR ±ɩɨɫɥɟɢɦɟɧɢKHOORɧɟɬɤɪɭɝɥɵɯ
ɫɤɨɛɨɤ
DQQRXQFH JRRGE\H ɩɨɫɥɟɢɦɟɧɢJRRGE\Hɧɟɬɤɪɭɝɥɵɯ
ɫɤɨɛɨɤ

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜ
ȒȎȐȟȓȣȖțȟȠȞȡȘȤȖȗȀȩȠȎȘȔȓȚȜȔȓȧȪȕȎȑȞȡȕȖȠȪȫȠȡȝȞȜ
ȑȞȎȚȚȡȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin get sML2CbZ3 announce.
ǽȜȟșȓȕȎȝȡȟȘȎȫȠȜȗȝȞȜȑȞȎȚȚȩȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȠȩȡȐȖȒȖȦȪȟȜȜȏȧȓțȖȓ
> announce
About to call the function.
Hello there!
Function called.
About to call the function.
Goodbye!
Function called.

ȁ ȢȡțȘȤȖȖ announce() ȓȟȠȪ ȜȒȖț ȝȎȞȎȚȓȠȞ²func.
ǽȞȖȝȓȞȐȜȚȐȩȕȜȐȓȫȠȜȗȢȡțȘȤȖȖȐȟȠȞȜȘȓȐȘȎȥȓȟȠȐȓ
ȎȞȑȡȚȓțȠȎȓȗȝȓȞȓȒȎȓȠȟȭȢȡțȘȤȖȭhello()ȘȎȘȕțȎȥȓțȖȓ
ȝȎȞȎȚȓȠȞȎfuncǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȟȘȜȏȘȖȐȖȚȓțȖ
ȝȓȞȓȒȎȐȎȓȚȜȗȢȡțȘȤȖȖțȓȡȘȎȕȩȐȎȬȠȟȭǿȘȜȏȘȖȡȘȎȕȩȐȎ
ȬȠ/XDȥȠȜȟșȓȒȡȓȠ©ȐȩȕȐȎȠȪȫȠȡȢȡțȘȤȖȬªțȜȓȟșȖȘȞȡȑ
șȩȣȟȘȜȏȜȘțȓȠȠȜȐȚȓȟȠȜȐȩȕȜȐȎ/XDȝȓȞȓȒȎȓȠȢȡțȘȤȖȬ
hello()ȝȎȞȎȚȓȠȞȡfuncȢȡțȘȤȖȖannounce()ȂȡțȘȤȖȭ
hello()ȟȜȣȞȎțȭȓȠȟȭȐȐȖȒȓȝȎȞȎȚȓȠȞȎfuncȠȜȥțȜȠȎȘȔȓ
ȘȎȘȟȜȣȞȎțȭșȖȟȪȏȩȤȓșȜȓȥȖȟșȜȖșȖȟȠȞȜȘȎǵȎȠȓȚȐȟȠȞȜ
ȘȓȐȩȕȩȐȎȓȠȟȭȢȡțȘȤȖȭfunc()ȝȜȟȘȜșȪȘȡȜțȎȖȚȓȓȠ
ȘȞȡȑșȩȓȟȘȜȏȘȖǻȡȖȝȜȟȘȜșȪȘȡȐȘȎȥȓȟȠȐȓȕțȎȥȓțȖȭȝȎ
ȞȎȚȓȠȞȎfuncȏȩșȜȝȓȞȓȒȎțȜȕțȎȥȓțȖȓhelloȐȩȕȩȐȎȓȠȟȭ

238

DZǹǮǰǮ

ȢȡțȘȤȖȭhello()ȖȝȞȜȑȞȎȚȚȎȐȩȐȜȒȖȠȟȜȜȏȧȓțȖȓHello
there!.
ǵȎȠȓȚȐȟȠȞȜȘȓȝȞȜȖȟȣȜȒȖȠȝȜȐȠȜȞțȩȗȐȩȕȜȐȢȡțȘ
ȤȖȖannounce()țȜțȎȫȠȜȠȞȎȕȝȎȞȎȚȓȠȞȡfuncȝȓȞȓȒȎȓȠȟȭ
ȕțȎȥȓțȖȓgoodbyeȎȕțȎȥȖȠȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȟȭȢȡțȘ
ȤȖȭgoodbye()ȖȐȩȐȜȒȖȠȟȭȟȜȜȏȧȓțȖȓGoodbye!.
ǸȜȒȢȡțȘȤȖȖannounce()țȓȖȕȚȓțȭȓȠȟȭǽȞȜȟȠȜȜțȚȜ
ȔȓȠȐȩȕȩȐȎȠȪșȬȏȡȬȢȡțȘȤȖȬȝȓȞȓȒȎțțȡȬȝȎȞȎȚȓȠȞȡ
funcǮțȎșȜȑȖȥțȜȢȡțȘȤȖȭsweepField()ȘȜȠȜȞȡȬȚȩ
ȟȜȕȒȎȒȖȚȏȡȒȓȠȐȩȕȩȐȎȠȪȢȡțȘȤȖȬȝȓȞȓȒȎțțȡȬȝȎȞȎȚȓ
ȠȞȡsweepFuncȂȡțȘȤȖȭbuildFloor()ȏȡȒȓȠȝȓȞȓȒȎȐȎȠȪ
ȢȡțȘȤȖȬhare.selectAndPlaceDown()ȐȘȎȥȓȟȠȐȓȝȎȞȎȚȓ
ȠȞȎȢȡțȘȤȖȖsweepField()ȝȜȫȠȜȚȡȥȓȞȓȝȎȦȘȎȏȡȒȓȠȞȎȕ
ȚȓȧȎȠȪȝȜȒȟȜȏȜȗȏșȜȘȖȝȓȞȓȚȓȧȎȭȟȪȝȜȝȞȭȚȜȡȑȜșȪțȜȚȡ
ȝȓȞȓȘȞȩȠȖȬ

ĐĚĜČčĚĞĖČĘĚĐğėī0):ǽȜȟȘȜșȪȘȡȢȡțȘȤȖȭsweepField()ȝȜșȓȕțȎȒșȭȚțȜȑȖȣ
ȒȞȡȑȖȣȝȞȜȑȞȎȚȚȚȩȝȜȚȓȟȠȖȚȓȓȐȚȜȒȡșȪhareȘȜȠȜȞȩȗ
țȎȥȎșȖȞȎȕȞȎȏȎȠȩȐȎȠȪȐȑșȎȐȓȂȡțȘȤȖȭbuildFloor()
ȘȜȠȜȞȡȬȚȩȠȎȘȔȓȒȜȏȎȐȖȚȐȫȠȜȠȚȜȒȡșȪȏȡȒȓȠȐȩȕȩȐȎȠȪ
ȢȡțȘȤȖȬsweepField()ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩ
ȝȜșțȖȘȜȚȎțȒȡedit hareǽȓȞȓȚȓȟȠȖȘȡȞȟȜȞȐțȖȔțȬȬ
ȥȎȟȠȪȢȎȗșȎȖȝȞȜȒȜșȔȖȘȜȒȐȐȓȒȭȟșȓȒȡȬȧȓȓ
hare
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.

...ɩɪɨɩɭɫɤ...
-- sweepField() ɩɟɪɟɦɟɳɚɟɬɫɹɩɨ
–- ɫɬɪɨɤɚɦɢɫɬɨɥɛɰɚɦɨɛɥɚɫɬɢɫɩɟɪɟɞɢ
-- ɢɫɩɪɚɜɚɨɬɱɟɪɟɩɚɲɤɢɨɛɪɚɳɚɹɫɶɤ
-- ɩɚɪɚɦɟɬɪɭsweepFuncɜɤɚɠɞɨɣɩɨɡɢɰɢɢ
function sweepField(length, width, sweepFunc)
local turnRightNext = true
for x = 1, width do
for y = 1, length do
sweepFunc()

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

239

145.
-- ɧɟɩɟɪɟɦɟɳɚɬɶɫɹɜɩɟɪɟɞɜɩɨɫɥɟɞɧɟɣɫɬɪɨɤɟ
146.
if y ~= length then
147.
turtle.forward()
148.
end
149.
end
150.
151.
-- ɧɟɩɨɜɨɪɚɱɢɜɚɬɶɫɹɜɩɨɫɥɟɞɧɟɦɫɬɨɥɛɰɟ
152.
if x ~= width then
153.
-- ɩɟɪɟɯɨɞɤɫɥɟɞɭɸɳɟɦɭɫɬɨɥɛɰɭ
154.
if turnRightNext then
155.
turtle.turnRight()
156.
turtle.forward()
157.
turtle.turnRight()
158.
else
159.
turtle.turnLeft()
160.
turtle.forward()
161.
turtle.turnLeft()
162.
end
163.
164.
turnRightNext = not turnRightNext
165.
end
166.
end
167.
168.
-- ɜɨɡɜɪɚɳɟɧɢɟɤɢɫɯɨɞɧɨɣɩɨɡɢɰɢɢ
169.
if width % 2 == 0 then
170.
turtle.turnRight()
171.
else
172.
for y = 1, length - 1 do
173.
turtle.back()
174.
end
175.
turtle.turnLeft()
176.
end
177.
178.
for x = 1, width - 1 do
179.
turtle.forward()
180.
end
181.
turtle.turnRight()
182.
183.
return true
184. end
185.

240

DZǹǮǰǮ

186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.

-- buildFloor() ɜɵɤɥɚɞɵɜɚɟɬ
-- ɩɪɹɦɨɭɝɨɥɶɧɨɟɩɟɪɟɤɪɵɬɢɟ
-- ɢɡ ɛɥɨɤɨɜ ɜ ɢɧɜɟɧɬɚɪɟ
function buildFloor(length, width)
if countInventory() < length * width then
return false -- ɧɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ
end
turtle.up()
sweepField(length, width, selectAndPlaceDown)
end

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗȀȩȠȎȘȔȓȚȜȔȓȦȪȟȘȎȥȎȠȪȫȠȜȠȚȜȒȡșȪ
ȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin get wwzvaKuW hare.

ĎħēĚĎĠğęĖĢĔĔ;?--8.=6+
DzȎȐȎȗȞȎȟȟȚȜȠȞȖȚțȜȐȩȓȢȡțȘȤȖȖȐȚȜȒȡșȓhareȖțȎȥțȓȚ
ȟsweepField()ȋȠȎȢȡțȘȤȖȭȝȓȞȓȚȓȧȎȓȠȥȓȞȓȝȎȦȘȡȝȜ
ȐȟȓȚȡȐȩȘșȎȒȩȐȎȓȚȜȚȡȝȓȞȓȘȞȩȠȖȬȐȩȕȩȐȎȭȢȡțȘȤȖȬ
ȝȓȞȓȒȎțțȡȬȐȐȖȒȓȝȎȞȎȚȓȠȞȎǽȎȞȎȚȓȠȞȩlengthȖwidth
ȡȘȎȕȩȐȎȬȠȢȡțȘȤȖȖsweepField()ȟȘȜșȪȘȜȟȠȞȜȘȖȟȠȜșȏ
ȤȜȐȟȜȟȠȎȐșȭȓȠȝȓȞȓȘȞȩȠȖȓ
ȅȠȜȏȩȢȡțȘȤȖȭsweepField()ȒȓȗȟȠȐȜȐȎșȎțȎȐȟȓȚ
ȕȎȒȎțțȜȚȝȞȜȟȠȞȎțȟȠȐȓȚȩȖȟȝȜșȪȕȡȓȚȜȒȖțȤȖȘșȒșȭ
ȝȞȜȣȜȒȎ ȝȜȟȠȜșȏȤȎȚȎȒȞȡȑȜȗ²ȒșȭȝȞȜȣȜȒȎȝȜȟȠȞȜȘȎȚ
hare
134. -- sweepField() ɩɟɪɟɦɟɳɚɟɬɫɹɩɨɝɨɪɢɡɨɧɬɚɥɶɧɵɦ
135. -- ɢɜɟɪɬɢɤɚɥɶɧɵɦɪɹɞɚɦɫɩɟɪɟɞɢɢɫɩɪɚɜɚɨɬ
ɱɟɪɟɩɚɲɤɢ
136. -- to the right of the turtle, calling
137. -- ɨɛɪɚɳɚɹɫɶɤɩɚɪɚɦɟɬɪɭsweepFuncɜɤɚɠɞɨɣɩɨɡɢɰɢɢ
138. function sweepField(length, width, sweepFunc)
139.
local turnRightNext = true
140.
141.
for x = 1, width do
142.
for y = 1, length do
143.
sweepFunc()

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

241

ǰȘȜțȤȓȘȎȔȒȜȑȜȟȠȜșȏȤȎȥȓȞȓȝȎȦȘȎȥȓȞȓȒȡȓȠȝȜȐȜȞȜȠ
țȎȝȞȎȐȜȖțȎșȓȐȜȝȜȫȠȜȚȡȘȜȒȐȟȠȞȜȘȓȖȕțȎȥȎșȪțȜ
ȝȞȖȟȐȎȖȐȎȓȠȝȓȞȓȚȓțțȜȗturnRightNextȕțȎȥȓțȖȓtrue.
DzȎșȓȓȟșȓȒȡȬȠȒȐȎȐșȜȔȓțțȩȣȤȖȘșȎȝȜȕȐȜșȭȬȧȖȓ
ȜȠȟșȓȒȖȠȪȐȘȎȘȜȚȟȠȜșȏȤȓȖȐȘȎȘȜȗȟȠȞȜȘȓțȎȣȜȒȖȠȟȭ
ȥȓȞȓȝȎȦȘȎǽȓȞȓȚȓțțȎȭxȜȠȟșȓȔȖȐȎȓȠȟȠȜșȏȤȩȎȝȓȞȓ
ȚȓțțȎȭy²ȟȠȞȜȘȖǸȜȑȒȎȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗyȞȎȐțȜ
ȕțȎȥȓțȖȬle ng t hȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭȐȝȜȟșȓȒțȓȗ
ȟȠȞȜȘȓȠȓȘȡȧȓȑȜȟȠȜșȏȤȎǸȜȑȒȎȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗx
ȞȎȐțȜȕțȎȥȓțȖȬwidthȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭȐȝȜȟșȓȒțȓȚ
ȟȠȜșȏȤȓȠȓȘȡȧȓȗȟȠȞȜȘȖǻȎȞȖȟȝȜȘȎȕȎțȩȕțȎȥȓțȖȭ
ȝȓȞȓȚȓțțȩȣxȖyȒșȭȐȟȓȣȏșȜȘȜȐȖȕȘȜȠȜȞȩȣȥȓȞȓȝȎȦȘȎ
ȟȠȞȜȖȠȝȓȞȓȘȞȩȠȖȓǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȕțȎȥȓțȖȭȝȓȞȓ
ȚȓțțȜȗyțȎȥȖțȎȬȠȟȭȟ1ȟȜȏȓȖȣȟȠȜȞȜțȝȜȠȜȚȡȥȠȜȥȓȞȓ
ȝȎȦȘȎȥȓȞȓȒȡȓȠȒȐȖȔȓțȖȓȐȐȓȞȣȖȐțȖȕȝȞȖȝȓȞȓȚȓȧȓțȖȖ
ȝȜȟȠȜșȏȤȎȚ
x=1
y=3

x=2
y=1

x=3
y=3

x=4
y=1

x=1
y=2

x=2
y=2

x=3
y=2

x=4
y=2

x=1
y=1

x=2
y=3

x=3
y=1

x=4
y=3

ˀ̛̭͘ϭϯ͘ϭϬ͘ʿ̸̨̡̨̨̨̡̡̨̨̛̱̯͕̪̯̬̥̱̙̖̯̭̖̬̖̪̹͕̦̽̔̏́̌̌̐̔̌̌
̡̡̛̼̣̼̖̯̪̖̬̖̬̼̯̖̏̌̔̏̌;̭̣̖̏̌Ϳ̸̵̛̛͕̦̖̦̪̖̬̖̥̖̦̦̼̌́̚x̛y̡̨̨̙̌̔̐
̨̡̣̍̌;̭̪̬̌̏̌Ϳ

ǰțȡȠȞȖȐșȜȔȓțțȜȑȜȤȖȘșȎȘȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠ
ȢȡțȘȤȖȬsweepFunc()ǻȎȝȜȚțȬȥȠȜsweepFunc²ȫȠȜȝȎ
ȞȎȚȓȠȞȎțȓȖȚȭȢȡțȘȤȖȖǰțȎȦȓȗȝȞȜȑȞȎȚȚȓțȓȠȢȡțȘ
ȤȖȖsweepFunc()ȝȜȫȠȜȚȡȥȠȜȏȩȜȝȞȓȒȓșȖȠȪȢȡțȘȤȖȬȟ
ȠȎȘȖȚȖȚȓțȓȚțȎȒȜȝȓȞȓȒȎȠȪȘȎȘȡȬșȖȏȜȢȡțȘȤȖȬȝȎȞȎ
ȚȓȠȞȡsweepFuncȀȎȘȖȚȜȏȞȎȕȜȚȐsweepField()ȚȜȔȓȠ
ȏȩȠȪȝȓȞȓȒȎțȎșȬȏȎȭȢȡțȘȤȖȭȘȜȠȜȞȎȭȖȏȡȒȓȠȐȩȕȩȐȎȠȪ
ȟȭȐȟȠȞȜȘȓȘȎȘsweepFunc().

242

DZǹǮǰǮ

ěđĜđĘđĥđęĔđěĚĝĞĜĚĖČĘ
ĔĝĞĚėčĢČĘ
ǽȜȟșȓȐȩȕȜȐȎȢȡțȘȤȖȖsweepFunc()ȥȓȞȓȝȎȦȘȓțȡȔțȜ
ȝȞȜȗȠȖȘȝȜȕȖȤȖȖȟșȓȒȡȬȧȓȑȜȐȩȘșȎȒȩȐȎȓȚȜȑȜȏșȜȘȎ
ǰțȡȠȞȓțțȖȗȤȖȘșforțȎȥȖțȎȬȧȖȗȟȭȐȟȠȞȜȘȓȏȡȒȓȠ
ȟȜȐȓȞȦȎȠȪȖȠȓȞȎȤȖȖȝȜȝȓȞȓȚȓțțȜȗyȜȠ1ȒȜlengthȅȓȞȓ
ȝȎȦȘȓțȡȔțȜȝȓȞȓȚȓȧȎȠȪȟȭȐȐȓȞȣȖșȖȐțȖȕȝȜlength - 1
ȟȠȞȜȘȓȐȘȎȔȒȜȚȟȠȜșȏȤȓȀȎȘȖȚȜȏȞȎȕȜȚȐȟȠȞȜȘȎȣ²
ȏȡȒȓȠȝȞȜȖȟȣȜȒȖȠȪȐȩȕȜȐȢȡțȘȤȖȖturtle.forward()
ȝȞȖȘȎȔȒȜȗȖȠȓȞȎȤȖȖȤȖȘșȎforȕȎȖȟȘșȬȥȓțȖȓȚȝȜȟșȓȒ
țȓȗ ȘȜȑȒȎȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗyȞȎȐțȜlength 
hare
145.
146.
147.
148.
149.

-- ɧɟɩɟɪɟɦɟɳɚɬɶɫɹɜɩɟɪɟɞɜɩɨɫɥɟɞɧɟɣɫɬɪɨɤɟ
if y ~= length then
turtle.forward()
end
end

ǸȜȑȒȎȖȟȝȜșțȓțȖȓȒȜȟȠȖȑȎȓȠȟȠȞȜȘȖȤȖȘșforȘȜ
ȠȜȞȩȗțȎȥȎșȟȭȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȟȭȎȥȓȞȓȝȎȦȘȎțȎ
ȣȜȒȖȠȟȭȐȝȜȟșȓȒțȓȗȟȠȞȜȘȓȠȓȘȡȧȓȑȜȟȠȜșȏȤȎdzȟșȖȥȓȞȓ
ȝȎȦȘȎȓȧȓțȓȒȜȟȠȖȑșȎȝȜȟșȓȒțȓȑȜȟȠȜșȏȤȎ ȫȠȜȠȎȘȓȟșȖ
ȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗxțȓȞȎȐțȜȕțȎȥȓțȖȬwidth ȓȗțȡȔ
țȜȝȓȞȓȚȓȟȠȖȠȪȟȭȐȟșȓȒȡȬȧȖȗȟȠȜșȏȓȤ
ǻȎȝȞȎȐșȓțȖȓȐȘȜȠȜȞȜȚȥȓȞȓȝȎȦȘȎȒȜșȔțȎȝȜȐȓȞțȡȠȪ
ȥȠȜȏȩȝȓȞȓȗȠȖȘȟșȓȒȡȬȧȓȚȡȟȠȜșȏȤȡȕȎȐȖȟȖȠȜȠȠȜȑȜȘȎ
ȘȜȓȕțȎȥȓțȖȓȝȞȖȟȐȜȓțȜȝȓȞȓȚȓțțȜȗturnRightNexttrue
ȖșȖfalse ǿȚȞȖȟȖȥȠȜȏȩȝȜțȭȠȪȘȡȒȎȒȜșȔțȎ
ȝȜȐȜȞȎȥȖȐȎȠȪȥȓȞȓȝȎȦȘȎ dzȟșȖȝȓȞȓȚȓțțȜȗturnRightNextȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓtrueȐȟȠȞȜȘȎȣ²ȝȞȜȖȟ
ȣȜȒȖȠȝȜȐȜȞȜȠȥȓȞȓȝȎȦȘȖțȎȝȞȎȐȜȝȓȞȓȚȓȧȓțȖȓȐȝȓȞȓȒȖ
ȟțȜȐȎȝȜȐȜȞȜȠțȎȝȞȎȐȜdzȟșȖȝȓȞȓȚȓțțȜȗturnRightNext
ȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓfalseȐȟȠȞȜȘȎȣ²ȥȓȞȓȝȎȦȘȎ
ȝȜȐȜȞȎȥȖȐȎȓȠțȎșȓȐȜȝȞȜȒȐȖȑȎȓȠȟȭȐȝȓȞȓȒȖȜȝȭȠȪȝȜȐȜȞȎ
ȥȖȐȎȓȠțȎșȓȐȜǰȜȏȜȖȣȟșȡȥȎȭȣȥȓȞȓȝȎȦȘȎȜȘȎȕȩȐȎȓȠȟȭȐ
țȎȥȎșȓȟșȓȒȡȬȧȓȑȜȟȠȜșȏȤȎ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

243

hare
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.

-- ɧɟɩɨɜɨɪɚɱɢɜɚɬɶɫɹɜɩɨɫɥɟɞɧɟɦɫɬɨɥɛɰɟ
if x ~= width then
-- ɩɟɪɟɯɨɞɤɫɥɟɞɭɸɳɟɦɭɫɬɨɥɛɰɭ
if turnRightNext then
turtle.turnRight()
turtle.forward()
turtle.turnRight()
else
turtle.turnLeft()
turtle.forward()
turtle.turnLeft()
end
turnRightNext = not turnRightNext
end
end

ǰȟȭȘȖȗȞȎȕȘȜȑȒȎȥȓȞȓȝȎȦȘȎȝȓȞȓȣȜȒȖȠȘȟșȓȒȡȬȧȓȚȡ
ȟȠȜșȏȤȡȜțȎȒȜșȔțȎȖȕȚȓțȖȠȪțȎȝȞȎȐșȓțȖȓȝȜȐȜȞȜȠȎȝȜ
ȫȠȜȚȡȘȜȒȐȟȠȞȜȘȓȝȓȞȓȘșȬȥȎȓȠșȜȑȖȥȓȟȘȜȓȕțȎȥȓțȖȓ
ȝȓȞȓȚȓțțȜȗturnRightNextǶțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓ
ȕȎȐȓȞȦȎȓȠȘȜțȟȠȞȡȘȤȖȬifțȎȥȎȐȦȡȬȟȭȐȟȠȞȜȘȓȎȖț
ȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓ166ȕȎȐȓȞȦȎȓȠȤȖȘșforțȎȥȎȐȦȖȗ
ȟȭȐȟȠȞȜȘȓdzȟșȖȖȟȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩȒȜȟȠȖȑșȜȟȠȞȜ
ȘȖȕțȎȥȖȠȥȓȞȓȝȎȦȘȎȝȞȜȦșȎȐȟȓȝȓȞȓȘȞȩȠȖȓȖȑȜȠȜȐȎ
ȐȓȞțȡȠȪȟȭțȎȖȟȣȜȒțȡȬȝȜȕȖȤȖȬ

ĚěĜđĐđėđęĔđģđĞęĚĝĞĔģĔĝėČĝěĚĘĚĥĨĪ
ĚěđĜČĞĚĜČĐđėđęĔīěĚĘĚĐğėĪ
ǰȓȞțȡȠȪȥȓȞȓȝȎȦȘȡțȎȖȟȣȜȒțȡȬȝȜȕȖȤȖȬȝȜȟșȓȠȜȑȜȘȎȘ
ȜțȎȕȎȘȜțȥȖȠȐȩȘșȎȒȩȐȎȠȪȝȓȞȓȘȞȩȠȖȓȚȜȔțȜȒȐȡȚȭȝȡ
ȠȭȚȖǻȎȝȜȚțȬȥȠȜȫȠȖȝȡȠȖȏȩșȖȝȜȘȎȕȎțȩțȎȞȖȟ
ȖȖȥȠȜȝȡȠȪȘȜȠȜȞȩȗȒȜșȔțȎȟȜȐȓȞȦȖȠȪȥȓȞȓȝȎȦȘȎ
ȕȎȐȖȟȖȠȜȠȘȜșȖȥȓȟȠȐȎȏșȜȘȜȐȝȜȦȖȞȖțȓȝȓȞȓȘȞȩȠȖȭ²ȥȓȠ
țȜȓȜțȜȖșȖțȓȥȓȠțȜȓȅȠȜȏȩȜȝȞȓȒȓșȖȠȪȥȓȠțȜȓȖșȖțȓȥȓȠ
țȜȓȒȎțțȜȓȕțȎȥȓțȖȓțȡȔțȜȝȞȜȐȓȞȖȠȪȒȓșȖȠȟȭșȖȜțȜțȎ
ȏȓȕȜȟȠȎȠȘȎdzȟșȖȒȎȠȜȥȖȟșȜȥȓȠțȜȓdzȟșȖȔȓȒȓșȓțȖȓțȎ
ȒȎȓȠȐȜȟȠȎȠȘȓ²ȥȖȟșȜțȓȥȓȠțȜȓ

244

DZǹǮǰǮ

ǽȜȫȠȜȚȡȥȠȜȏȩȜȝȞȓȒȓșȖȠȪȥȓȠțȜȓȖșȖțȓȥȓȠțȜȓȒȎț
țȜȓȕțȎȥȓțȖȓțȡȔțȜȝȞȜȟȠȜțȎȗȠȖȜȟȠȎȠȜȘȝȜȟșȓȒȓșȓțȖȭ
țȎȒȐȎǺȩȚȜȔȓȚȫȠȜȟȒȓșȎȠȪȖȟȝȜșȪȕȡȭȜȝȓȞȎȠȜȞȒȓșȓțȖȭ
ȝȜȚȜȒȡșȬ (%  ȋȠȜțȎȕȐȎțȖȓțȓȟȐȭȕȎțȜȟȚȜȒȡșȭȚȖ/XD
ȅȠȜȏȩȝȜȟȚȜȠȞȓȠȪȘȎȘȞȎȏȜȠȎȓȠȜȝȓȞȎȠȜȞȒȓșȓțȖȭȝȜȚȜ
ȒȡșȬȐȜȏȜșȜȥȘȓ/XDȐȐȓȒȖȟșȓȒȡȬȧȓȓ
hare
lua> 6 % 2
0
lua> 7 % 2
1
lua> 8 % 2
0

ǼȝȓȞȎȠȜȞȒȓșȓțȖȭȝȜȚȜȒȡșȬȖȟȝȜșȪȕȡȓȠȟȭȝȜȒȜȏțȜ
ȜȏȩȥțȜȚȡȜȝȓȞȎȠȜȞȡȒȓșȓțȖȭ / ȡȘȎȔȖȒȓșȖȚȜȓȜȝȓȞȎȠȜȞ
%ȖȒȓșȖȠȓșȪ ȐțȎȦȓȚȟșȡȥȎȓȫȠȜȥȖȟșȜ2 ȅȓȠțȩȓȥȖȟșȎ
ȝȞȖȒȓșȓțȖȖȝȜȚȜȒȡșȬțȎ2ȐȜȟȠȎȠȘȓȐȟȓȑȒȎȏȡȒȡȠȒȎȐȎȠȪ
ȕțȎȥȓțȖȓ0ȝȜȠȜȚȡȥȠȜȒȓșȭȠȟȭțȎ2ȏȓȕȜȟȠȎȠȘȎǻȓȥȓȠțȩȓ
ȥȖȟșȎȐȜȟȠȎȠȘȓȐȟȓȑȒȎȏȡȒȡȠȖȚȓȠȪȕțȎȥȓțȖȓ1.
ǶȟȝȜșȪȕȡȭȫȠȜȠȠȞȬȘȚȩȟȚȜȔȓȚȜȝȞȓȒȓșȖȠȪȥȓȠțȜȓ
ȖșȖțȓȥȓȠțȜȓȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȖȟȝȜșȪȕȜȐȎțȜȝȜȦȖȞȖțȓ
ȝȓȞȓȘȞȩȠȖȭ

ĚčĜČĞęħĕěğĞĨĎĝėğģČđģđĞęĚďĚ
ĔęđģđĞęĚďĚĖĚėĔģđĝĞĎČčėĚĖĚĎěĚĤĔĜĔęđ
ɉɭɬɶɤɨɬɨɪɵɣɞɨɥɠɧɚɩɪɨɞɟɥɚɬɶɱɟɪɟɩɚɲɤɚɱɬɨɛɵɜɟɪɧɭɬɶɫɹɜ
ɢɫɯɨɞɧɨɟɩɨɥɨɠɟɧɢɟɡɚɜɢɫɢɬɨɬɬɨɝɨɱɟɬɧɨɟɢɥɢɧɟɱɟɬɧɨɟɤɨɥɢɱɟɫɬɜɨɛɥɨɤɨɜɢɫɩɨɥɶɡɨɜɚɧɨɩɨɲɢɪɢɧɟɩɟɪɟɤɪɵɬɢɹɩɨɷɬɨɦɭɦɵ
ɛɭɞɟɦɢɫɩɨɥɶɡɨɜɚɬɶɢɧɫɬɪɭɤɰɢɸif
hare
168.
169.
170.
171.
172.

-- ɜɨɡɜɪɚɳɟɧɢɟɤɢɫɯɨɞɧɨɣɩɨɡɢɰɢɢ
if width % 2 == 0 then
turtle.turnRight()
else
for y = 1, length - 1 do

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

245

173.
174.
175.
176.

turtle.back()
end
turtle.turnLeft()
end

dzȟșȖȝȜȦȖȞȖțȓȝȓȞȓȘȞȩȠȖȭȖȟȝȜșȪȕȜȐȎțȜȥȓȠțȜȓȘȜșȖ
ȥȓȟȠȐȜȏșȜȘȜȐȠȜȐȩȞȎȔȓțȖȓwidth % 2ȏȡȒȓȠȞȎȐțȜ0Ȏ
ȕțȎȥȖȠȡȟșȜȐȖȓȖțȟȠȞȡȘȤȖȖifȐȟȠȞȜȘȓȐȩȝȜșțȭȓȠȟȭ
(true ǰȫȠȜȚȟșȡȥȎȓȘȜȒȐȟȠȞȜȘȓȝȜȐȜȞȎȥȖȐȎȓȠȥȓȞȓ
ȝȎȦȘȡțȎȝȞȎȐȜǰȝȞȜȠȖȐțȜȚȟșȡȥȎȓȓȟșȖȝȜȦȖȞȖțȓȝȓȞȓ
ȘȞȩȠȖȭȖȟȝȜșȪȕȜȐȎțȜțȓȥȓȠțȜȓȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȘȜȒȐ
ȟȠȞȜȘȎȣ²ȝȓȞȓȚȓȧȎȬȠȥȓȞȓȝȎȦȘȡțȎȕȎȒțȎȒȞȡȑȜȗ
ȘȜțȓȤȞȭȒȎȎȘȜȒȐȟȠȞȜȘȓȝȜȐȜȞȎȥȖȐȎȓȠȥȓȞȓȝȎȦȘȡțȎ
șȓȐȜǰȜȏȜȖȣȟșȡȥȎȭȣȥȓȞȓȝȎȦȘȎȜȘȎȕȩȐȎȓȠȟȭȐțȎȥȎșȓȝȜ
ȟșȓȒțȓȑȜȟȠȜșȏȤȎȜȏȞȎȧȓțțȜȗțȎșȓȐȜ
ǵȎȠȓȚȘȜȒȐȟȠȞȜȘȎȣ²ȝȓȞȓȚȓȧȎȬȠȥȓȞȓȝȎȦȘȡ
ȐȝȓȞȓȒțȎwidth - 1ȏșȜȘȜȐȥȠȜȏȩȐȓȞțȡȠȪȥȓȞȓȝȎȦȘȡȐ
ȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓǮȘȜȒȐȟȠȞȜȘȓȝȜȐȜȞȎȥȖȐȎȓȠȓȓțȎ
ȝȞȎȐȜȥȠȜȏȩȐȓȞțȡȠȪȘȝȓȞȐȜțȎȥȎșȪțȜȚȡțȎȝȞȎȐșȓțȖȬ
hare
178.
for x = 1, width - 1 do
179.
turtle.forward()
180.
end
181.
turtle.turnRight()
182.
183.
return true
184. end

ǰȫȠȜȠȚȜȚȓțȠȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȟȭȐȖȟȣȜȒțȜȚȝȜșȜȔȓ
țȖȖȝȜȫȠȜȚȡȘȜȒȐȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrue.
ǶțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȘȜȒȢȡțȘȤȖȖ
sweepField().
ǻȎȝȜȚțȬȥȠȜȢȡțȘȤȖȭsweepField()țȎȝȖȟȎțȎțȓȠȜșȪ
ȘȜȒșȭȝȜȟȠȞȜȓțȖȭȝȜșȎȖșȖȝȜȠȜșȘȎǺȩȏȡȒȓȚȖȟȝȜșȪ
ȕȜȐȎȠȪȫȠȡȢȡțȘȤȖȬȒșȭȒȜȟȠȖȔȓțȖȭȞȎȕșȖȥțȩȣȤȓșȓȗ
ȝȜȠȜȚȡȥȠȜȟȓȓȝȜȚȜȧȪȬȥȓȞȓȝȎȦȘȎȐȩȘșȎȒȩȐȎȬȧȎȭȝȓ
ȞȓȘȞȩȠȖȓȚȜȔȓȠȐȩȕȩȐȎȠȪȞȎȕșȖȥțȩȓȢȡțȘȤȖȖȖȝȞȖȚȓ
țȭȠȪȖȣȐȘȎȔȒȜȗȝȜȕȖȤȖȖȝȓȞȓȘȞȩȠȖȭǮȐȜȠȥȠȜȏȩȟȠȞȜȖȠȪ
ȖȚȓțțȜȝȓȞȓȘȞȩȠȖȭȚȩȟȜȕȒȎȒȖȚȢȡțȘȤȖȬbuildFloor().

246

DZǹǮǰǮ

ĝĚēĐČęĔđĠğęĖĢĔĔ*=14,.477:
ǿȝȜȚȜȧȪȬȢȡțȘȤȖȖsweepField()ȢȡțȘȤȖȭbuildFloor()
ȟȠȞȜȖȠȝȞȭȚȜȡȑȜșȪțȜȓȝȓȞȓȘȞȩȠȖȓȏȓȞȭȏșȜȘȖȖȕȖțȐȓț
ȠȎȞȭȥȓȞȓȝȎȦȘȖȂȡțȘȤȖȭbuildFloor()ȝȞȖțȖȚȎȓȠȕțȎ
ȥȓțȖȭȝȓȞȓȚȓțțȩȣlengthȖwidthȐȘȎȥȓȟȠȐȓȎȞȑȡȚȓțȠȜȐ
ȒșȭȜȝȞȓȒȓșȓțȖȭȞȎȕȚȓȞȜȐȐȩȘșȎȒȩȐȎȓȚȜȑȜȝȓȞȓȘȞȩȠȖȭ
hare
187.
188.
189.
190.
191.
192.
193.

-- buildFloor() ɜɵɤɥɚɞɵɜɚɟɬ
-- ɩɪɹɦɨɭɝɨɥɶɧɨɟɩɟɪɟɤɪɵɬɢɟ
-- ɢɡɛɥɨɤɨɜɜɢɧɜɟɧɬɚɪɟ
function buildFloor(length, width)
if countInventory() < length * width then
return false -- ɧɟɞɨɫɬɚɬɨɱɧɨɛɥɨɤɨɜ
end

ǸȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬcountInventory()
ȖȟȞȎȐțȖȐȎȓȠȘȜșȖȥȓȟȠȐȜȏșȜȘȜȐȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖȟ
ȘȜșȖȥȓȟȠȐȜȚȏșȜȘȜȐțȓȜȏȣȜȒȖȚȩȣȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȝȓȞȓ
ȘȞȩȠȖȭDzșȭȝȓȞȓȘȞȩȠȖȭȒșȖțȜȗlengthȖȦȖȞȖțȜȗwidth
ȏșȜȘȜȐȝȜȠȞȓȏȡȓȠȟȭlength * widthȏșȜȘȜȐdzȟșȖȡȥȓȞȓ
ȝȎȦȘȖțȓȒȜȟȠȎȠȜȥțȜȏșȜȘȜȐȒșȭȟȠȞȜȖȠȓșȪȟȠȐȎȝȓȞȓȘȞȩȠȖȭ
ȕȎȒȎțțȩȣȞȎȕȚȓȞȜȐȐȩȝȜșțȓțȖȓȢȡțȘȤȖȖȝȞȓȘȞȎȧȎȓȠȟȭ
dzȟșȖȔȓȏșȜȘȜȐȒȜȟȠȎȠȜȥțȜȘȜȒȐȟȠȞȜȘȓȝȓȞȓȚȓȧȎȓȠ
ȥȓȞȓȝȎȦȘȡȐȐȓȞȣțȎȜȒțȡȝȜȕȖȤȖȬȠȎȘȥȠȜȏȩȥȓȞȓȝȎȦȘȎ
ȚȜȑșȎȞȎȕȚȓȧȎȠȪȝȜȒȟȜȏȜȗȏșȜȘȖȘȜȑȒȎțȎȥțȓȠȐȩȘșȎȒȩ
ȐȎȠȪȝȓȞȓȘȞȩȠȖȓ
hare
195.
turtle.up()
196.
sweepField(length, width, selectAndPlaceDown)
197. end

ǸȜȒ Ȑ ȟȠȞȜȘȓ 196 ȝȓȞȓȒȎȓȠ Ȑ ȢȡțȘȤȖȬ sweepField()
ȕțȎȥȓțȖȭ ȒșȖțȩ (length ȦȖȞȖțȩ (width Ȗ ȢȡțȘȤȖȬ
selectAndPlaceDown(). ǶȚȓțțȜȐȩȕȜȐȢȡțȘȤȖȖselectAndPlaceDown()ȐȘȎȔȒȜȗȝȜȕȖȤȖȖȝȓȞȓȘȞȩȠȖȭȏȡȒȓȠȐȩ
ȏȖȞȎȠȪȏșȜȘȖȕȖțȐȓțȠȎȞȭȥȓȞȓȝȎȦȘȖȖȞȎȕȚȓȧȎȠȪȓȑȜȝȜȒ
ȥȓȞȓȝȎȦȘȜȗ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

247

ȋȠȜȐȟȓȥȠȜȘȎȟȎȓȠȟȭȢȡțȘȤȖȖbuildFloor()ȂȡțȘȤȖȭ
ȘȜȞȜȠȘȎȭȝȜȠȜȚȡȥȠȜȕțȎȥȖȠȓșȪțȎȭȥȎȟȠȪȞȎȏȜȠȩȐȩȝȜșțȭ
ȓȠȟȭȢȡțȘȤȖȓȗsweepField().

ĝĚēĐČęĔđěĜĚďĜČĘĘħ*=14,.477:
ǺȩȝȜȚȓȟȠȖșȖȢȡțȘȤȖȖbuildFloor()ȖsweepField()Ȑ
ȚȜȒȡșȪhareȥȠȜȏȩȒȞȡȑȖȓȝȞȜȑȞȎȚȚȩȚȜȑșȖȐȩȕȩȐȎȠȪȫȠȖ
ȢȡțȘȤȖȖǻȜȏȩșȜȏȩȡȒȜȏțȜȖȚȓȠȪȝȞȜȑȞȎȚȚȡȠȜșȪȘȜȒșȭ
ȝȜȟȠȞȜȓțȖȭȝȓȞȓȘȞȩȠȖȗȀȎȘȔȓȘȎȘȝȞȜȑȞȎȚȚȩbuildwallȖbuildroomȖȕȑșȎȐȖȝȞȜȑȞȎȚȚȎEXLOGÀRRU
ȏȡȒȓȠȜȏȞȎȏȎȠȩȐȎȠȪȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȐȜ
ȒȖȠȪȟȜȜȏȧȓțȖȓȝȜșȪȕȜȐȎȠȓșȬȖȐȩȕȩȐȎȠȪȢȡțȘȤȖȬhare.
buildFloor()ȒșȭȝȜȟȠȞȜȓțȖȭȝȓȞȓȘȞȩȠȖȭ
ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit
EXLOGÀRRUȖȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
EXLOGÀRRU
1. --[[ɉɪɨɝɪɚɦɦɚɫɬɪɨɢɬɟɥɶɫɬɜɚɩɟɪɟɤɪɵɬɢɣɗɥɚɋɜɟɣɝɚɪɬɚ
2. ɜɵɤɥɚɞɵɜɚɟɬ ɩɟɪɟɤɪɵɬɢɟ.]]
3.
4. os.loadAPI('hare')
5.
6. -- ɨɛɪɚɛɨɬɤɚɚɪɝɭɦɟɧɬɨɜɤɨɦɚɧɞɧɨɣɫɬɪɨɤɢ
7. local cliArgs = {...}
8. local length = tonumber(cliArgs[1])
9. local width = tonumber(cliArgs[2])
10.
11. if length == nil or width == nil or cliArgs[1] ==
 " WKHQ
12.
print('Usage: buildwall ')
13.
return
14. end
15.
16. hare.buildFloor(length, width)

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗ
ǽȜȟȘȜșȪȘȡȝȞȜȑȞȎȚȚȎEXLOGÀRRUȎțȎșȜȑȖȥțȎȝȞȜȑȞȎȚ
ȚȎȚbuildwallȖbuildroomȭțȓȏȡȒȡȓȧȓȞȎȕȜȏȨȭȟțȭȠȪ

248

DZǹǮǰǮ

ȘȜȒǽȞȜȑȞȎȚȚȎȝȞȜȟȠȜȝȞȖțȖȚȎȓȠȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȒșȭȜȝȞȓȒȓșȓțȖȭȒșȖțȩȖȦȖȞȖțȩȝȓȞȓȘȞȩȠȖȭ
ȘȜȠȜȞȩȓȢȡțȘȤȖȭhare.buildFloor()ȝȓȞȓȒȎȓȠȢȡțȘȤȖȖ
sweepField().

ēČěğĝĖěĜĚďĜČĘĘħ*=14,.477:
ǾȎȕȚȓȟȠȖȥȓȞȓȝȎȦȘȡȖȧȓșȘțȖȝȜțȓȗȝȞȎȐȜȗȘțȜȝȘȜȗ
ȚȩȦȖȥȠȜȏȩȜȠȘȞȩȠȪȓȓȑȞȎȢȖȥȓȟȘȖȗȖțȠȓȞȢȓȗȟǵȎȑȞȡȕȖ
ȝȜȚȓțȪȦȓȗȚȓȞȓȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗ ȖșȖșȬȏȩȣȒȞȡ
ȑȖȣȟȠȞȜȖȠȓșȪțȩȣȏșȜȘȜȐ ȐȓȓȖțȐȓțȠȎȞȪǰȜȏȜșȜȥȘȓȘȜ
ȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡEXLOGÀRRU 5 6ȥȠȜȏȩ
ȡȐȖȒȓȠȪȘȎȘȥȓȞȓȝȎȦȘȎȝȜȟȠȞȜȖȠȝȓȞȓȘȞȩȠȖȓȝȭȠȪȏșȜȘȜȐ
ȒșȖțȜȗȖȦȓȟȠȪȏșȜȘȜȐȦȖȞȖțȜȗ
ǽȜȟșȓȫȠȜȑȜȚȜȔȓȦȪȐȩȝȜșțȖȠȪȘȜȚȎțȒȡbuildroom 5
6 4ȥȠȜȏȩȝȜȟȠȞȜȖȠȪȟȠȓțȩțȎȒȝȜșȜȚǸȜȑȒȎȫȠȎȘȜȚțȎȠȎ
ȏȡȒȓȠȕȎȘȜțȥȓțȎȝȜȐȓȞțȖȥȓȞȓȝȎȦȘȡțȎȝȞȎȐȜȖȟțȜȐȎȐȩ
ȝȜșțȖȘȜȚȎțȒȡEXLOGÀRRU 5 6ȥȠȜȏȩȝȜȟȠȞȜȖȠȪȝșȜȟȘȡȬ
ȘȞȩȦȡȒșȭȫȠȜȗȘȜȚțȎȠȩȀȓȝȓȞȪȡȠȓȏȭȓȟȠȪȐȟȓțȓȜȏȣȜȒȖ
ȚȜȓȒșȭȟȜȕȒȎțȖȭȝȞȭȚȜȡȑȜșȪțȩȣȘȜȚțȎȠ
dzȟșȖȝȞȖȕȎȝȡȟȘȓȫȠȜȗȝȞȜȑȞȎȚȚȩȐȜȕțȖȘȎȬȠȜȦȖȏȘȖ
ȠȧȎȠȓșȪțȜȟȞȎȐțȖȟȐȜȗȘȜȒȟșȖȟȠȖțȑȜȚȐȫȠȜȗȘțȖȑȓ²ȐȜȕ
ȚȜȔțȜȠȩțȎȗȒȓȦȪȜȝȓȥȎȠȘȖdzȟșȖȖȟȝȞȎȐȖȠȪȝȞȜȑȞȎȚ
ȚȡțȓȡȒȎȓȠȟȭȖȜȦȖȏȘȖȝȜȝȞȓȔțȓȚȡȐȜȕțȖȘȎȬȠȡȒȎșȖ
ȢȎȗșȐȩȝȜșțȖȐȘȜȚȎțȒȡdelete EXLOGÀRRUȎȕȎȠȓȚȕȎ
ȑȞȡȕȖȝȞȜȑȞȎȚȚȡȕȎțȜȐȜȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin get
Epr9CndN EXLOGÀRRU.

ĝĚēĐČęĔđğēĚĜģČĞĚďĚěđĜđĖĜħĞĔī
ǸȎȘȡȝȜȚȖțȎșȜȟȪȞȎțȓȓȢȡțȘȤȖȭsweepField()ȜȥȓțȪ
ȑȖȏȘȎȐțȎȟȠȞȜȗȘȓȖȝȜȕȐȜșȭȓȠȝȓȞȓȒȎȠȪȝȎȞȎȚȓȠȞȡsweepFuncșȬȏȡȬȢȡțȘȤȖȬDzȎȐȎȗțȎȝȖȦȓȚȝȞȜȑȞȎȚȚȡbuildcheckerboardȘȜȠȜȞȎȭȝȜȟȠȞȜȖȠȘșȓȠȥȎȠȜȓȝȓȞȓȘȞȩȠȖȓȖȕ
ȡȑȜșȪțȩȣȖȘȐȎȞȤȓȐȩȣȏșȜȘȜȐ
ȀȩȚȜȔȓȦȪȟȜȕȒȎȠȪȡȑȜșȪțȩȓȏșȜȘȖȖȕȒȓȐȭȠȖȘȡȟȘȜȐ
ȡȑșȭȎȘȐȎȞȤȓȐȩȓ²ȖȕȥȓȠȩȞȓȣȘȡȟȘȜȐȘȐȎȞȤȎǻȎȞȖȟ
ȝȜȘȎȕȎțȩȖȣȞȓȤȓȝȠȩǼȏȞȎȠȖȐțȖȚȎțȖȓȥȠȜȚȜȔțȜ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

249

ȖȟȝȜșȪȕȜȐȎȠȪȠȜșȪȘȜǻȓȕȓȞȘȐȎȞȤȖȕȖȕȚȓȞȓțȖȭǻȓȕȓȞ ȟȚ
PLQHFUDIWUXJDPHSHGLDFRPǸȐȎȞȤBǻȖȔțȓȑȜBȚȖȞȎ 

ˀ̛̭͘ϭϯ͘ϭϭ͘ˁ̵̨̨̛̦̖̱̣̦̼̔̌̐̽̚;̭̣̖̏̌Ϳ̶̵̡̨̡̨̛̬̖̼̣̏̌̏̍̏;̭̪̬̌̏̌Ϳ

ǽȜȟȘȜșȪȘȡȚȩȒȓșȎȓȚȘșȓȠȥȎȠȜȓȝȓȞȓȘȞȩȠȖȓȒȎȐȎȗȟȒȓ
șȎȓȚȓȑȜȐȐȖȒȓȦȎȣȚȎȠțȜȗȒȜȟȘȖȥȠȜȏȩȚȜȔțȜȏȩșȜȟȩ
ȑȞȎȠȪȐ0LQHFUDIWȐȦȎȦȘȖȟȥȓȞȓȝȎȦȘȎȚȖ

ĖĚĐěĜĚďĜČĘĘħ*=14,+0-+3-:*7):,
ȅȠȜȏȩȟȒȓșȎȠȪȦȎȣȚȎȠțȡȬȒȜȟȘȡȞȎȕȚȓȞȜȚðȏșȜȘȜȐ
țȎȚțȡȔțȜȟȘȞȎȢȠȖȠȪȡȑȜșȪțȩȣȖȘȐȎȞȤȓȐȩȣȏșȜȘȎ
ǽȜȟșȓȠȜȑȜȘȎȘȚȩȟȜȕȒȎȒȖȚȝȞȜȑȞȎȚȚȡbuildcheckerboardȚȩȖȕȚȓțȖȚȖȤȐȓȠȎȥȓȞȓȝȎȦȓȘȥȠȜȏȩȚȜȔțȜȏȩ
șȜȟȩȑȞȎȠȪȝȎȞȠȖȬȐȦȎȦȘȖțȎȒȜȟȘȓȞȎȕȚȓȞȜȚðȏșȜ
ȘȜȐǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit
buildcheckerboardȖȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
buildcheckerboard
>>ɉɪɨɝɪɚɦɦɚɞɥɹɭɡɨɪɱɚɬɨɝɨɫɬɪɨɢɬɟɥɶɫɬɜɚɗɥɚ
ɋɜɟɣɝɚɪɬɚ
ɋɬɪɨɢɬɤɥɟɬɱɚɬɨɟɩɟɪɟɤɪɵɬɢɟ@@
3.
4. os.loadAPI('hare')
5.
ɨɛɪɚɛɨɬɤɚɚɪɝɭɦɟɧɬɨɜɤɨɦɚɧɞɧɨɣɫɬɪɨɤɢ
7. local cliArgs = {...}
8. local length = tonumber(cliArgs[1])
9. local width = tonumber(cliArgs[2])
10.
11. if length == nil or width == nil or cliArgs[1] ==

250

DZǹǮǰǮ

 " WKHQ
12.
print('Usage: buildcheckerboard ')
13.
return
14. end
15.
16. local placeBlack = true
17.
18. function placeCheckerboard()
19.
-- ɜɵɛɨɪɭɝɥɹɢɥɢɤɜɚɪɰɚɜɡɚɜɢɫɢɦɨɫɬɢɨɬɡɧɚɱɟɧɢɹ
ɩɟɪɟɦɟɧɧɨɣ placeBlack
20.
if placeBlack then
21.
hare.selectItem('minecraft:coal_block')
22.
else
23.
hare.selectItem('minecraft:quartz_block')
24.
end
25.
26.
turtle.placeDown()
27.
placeBlack = not placeBlack
28. end
29.
30. turtle.up()
31. hare.sweepField(length, width, placeCheckerboard)

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗ

ēČěğĝĖěĜĚďĜČĘĘħ*=14,+0-+3-:*7):,
ǽȜȚȓȟȠȖȡȑȜșȪțȩȣȖȘȐȎȞȤȓȐȩȣȏșȜȘȎȐȖțȐȓțȠȎȞȪ
ȥȓȞȓȝȎȦȘȖȎȕȎȠȓȚȐȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜș
țȖȘȜȚȎțȒȡbuildcheckerboard 8 8ȅȓȞȓȝȎȦȘȎȝȜȟȠȞȜȖȠ
ȦȎȣȚȎȠțȜȓȝȜȘȞȩȠȖȓȞȎȕȚȓȞȜȚðȏșȜȘȜȐȘȜȠȜȞȜȓȖȕȜ
ȏȞȎȔȓțȜțȎȞȖȟ
dzȟșȖȝȞȖȕȎȝȡȟȘȓțȜȐȜȗȝȞȜȑȞȎȚȚȩȐȜȕțȖȘȎȬȠȜȦȖȏȘȖ
ȠȧȎȠȓșȪțȜȟȞȎȐțȖȟȐȜȗȘȜȒȟșȖȟȠȖțȑȜȚȐȫȠȜȗȘțȖȑȓȐȜȕ
ȚȜȔțȜțȎȗȒȓȦȪȜȝȓȥȎȠȘȖdzȟșȖȖȟȝȞȎȐȖȠȪȝȞȜȑȞȎȚȚȡțȓ
ȡȒȎȓȠȟȭȖȜȦȖȏȘȖȝȜȝȞȓȔțȓȚȡȐȜȕțȖȘȎȬȠȡȒȎșȖȢȎȗș
ȐȩȝȜșțȖȐȘȜȚȎțȒȡdelete buildcheckerboardȎȕȎȠȓȚ
ȕȎȑȞȡȕȖȝȞȜȑȞȎȚȚȡ ȕȎțȜȐȜȐȩȝȜșțȖȐȘȜȚȎțȒȡpastebin
get QQQK3mqk buildcheckerboard.

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

251

ˀ̛̭͘ϭϯ͘ϭϮ͘ˋ̶̵̡̨̨̨̨̨̡̛̛̛̖̬̖̪̹̪̬̖̭̭̖̯̣̖̦̹̥̯̦̜̭̌̌̏̐̏́̌̌̔̚

ǺȩțȎȝȖȟȎșȖȝȞȜȑȞȎȚȚȡbuildcheckerboardȥȠȜȏȩ
ȟȒȓșȎȠȪȘșȓȠȥȎȠȜȓȝȓȞȓȘȞȩȠȖȓȐȐȖȒȓȟȠȎțȒȎȞȠțȜȗȦȎȣ
ȚȎȠțȜȗȒȜȟȘȖțȜȠȩȚȜȔȓȦȪȟȜȕȒȎȐȎȠȪȘșȓȠȥȎȠȩȓȝȜȠȜșȘȖ
ȖȝȜșȩșȬȏȜȑȜȞȎȕȚȓȞȎǼțȖȚȜȑȡȠȏȩȠȪȥȎȟȠȪȬȝȞȖȥȡȒșȖ
ȐȜȑȜȕȎȚȘȎȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϯ͘ϭϯ͘ˌ̵̸̨̡̨̨̨̡̨̥̯̦̼̜̪̣̥̖͕̪̭̯̬̖̦̦̥̖̬̖̪̹̜̌̌̏̌̌̚

dzȟșȖȠȩȟȜȕȒȎȦȪȥȓȞȓȝȎȦȘȖȎȠȎȘȔȓȝȜȒȑȜȠȜȐȖȦȪ
ȘȞȎȟțȩȗȘȞȎȟȖȠȓșȪȖȘȜȟȠțȡȬȚȡȘȡȠȜȧȓșȘȎȭȝȞȎȐȜȗ
ȘțȜȝȘȜȗȚȩȦȖȝȜȥȓȞȓȝȎȦȘȎȚȖȣȚȜȔțȜȝȜȘȞȎȟȖȠȪȐ
ȘȞȎȟțȩȗȖȏȓșȩȗȤȐȓȠȎȟȜȜȠȐȓȠȟȠȐȓțțȜȀȎȘȖȚȜȏȞȎȕȜȚ
ȠȩȟȜȕȒȎȦȪȘȜȚȝșȓȘȠȒșȭȖȑȞȩȐȦȎȦȘȖȘȎȘȝȜȘȎȕȎțȜțȎ
ȞȖȟ

252

DZǹǮǰǮ

ˀ̛̭͘ϭϯ͘ϭϰ͘ʰ̸̡̛̛̬̖̬̖̪̹̹̹̐̌̏̌̽̌

ȀȓȝȓȞȪȒȎȔȓȟȜȕȒȎțȖȓȑȖȑȎțȠȟȘȜȑȜȝȜșȭȒșȭȦȎȦȓȘ
ȞȎȕȚȓȞȜȚðȏșȜȘȎȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟȟȠȎșȜ
ȝȞȜȟȠȜȗȕȎȒȎȥȓȗȐȓȒȪȥȓȞȓȝȎȦȘȎȟȒȓșȎȓȠȐȟȓȕȎȠȓȏȭ

ˀ̛̭͘ϭϯ͘ϭϱ͘ʿ̨̡̨̣̖̣̹̹̖̬̥̖̬̥̔́̌̌̚ϯϮпϯϮ̨̡̨̨̨̣͕̪̭̯̬̖̦̦̖̍̌
̸̡̨̖̬̖̪̹̜̌

ĖĚĐĠğęĖĢĔĔ84)+-+0-+3-:*7):,
ǰȜȠșȖȥȖȓȜȠȢȡțȘȤȖȖhare.selectAndPlaceDown()ȘȜ
ȠȜȞȎȭȝȞȜȟȠȜȐȩȏȖȞȎȓȠșȬȏȡȬȭȥȓȗȘȡȟȜȒȓȞȔȎȧȡȬȘȎ
ȘȖȓșȖȏȜȏșȜȘȖȖȝȜȚȓȧȎȓȠȜȒȖțȖȕȏșȜȘȜȐȝȜȒȥȓȞȓȝȎȦ
ȘȜȗȢȡțȘȤȖȭplaceCheckerboard()ȟțȎȥȎșȎȝȞȜȐȓȞȭȓȠ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

253

ȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗplaceBlackȥȠȜȏȩȜȝȞȓȒȓșȖȠȪȘȎ
ȘȜȗȏșȜȘȟșȓȒȡȓȠȐȩȏȞȎȠȪȡȑȜșȪțȩȗȖșȖȘȐȎȞȤȓȐȩȗ
ǽȓȞȓȚȓțțȎȭplaceBlackȜȏȨȭȐșȭȓȠȟȭȐȟȠȞȜȘȓȟȝȜȚȜ
ȧȪȬȖțȟȠȞȡȘȤȖȖlocalȐțȓȘȎȘȖȣșȖȏȜȢȡțȘȤȖȗ
buildcheckerboard
16. local placeBlack = true

DzȎșȓȓȢȡțȘȤȖȭplaceCheckerboard()ȝȞȜȐȓȞȭȓȠȖȟ
ȠȖțțȜ true ȖșȖșȜȔțȜ false ȕțȎȥȓțȖȓȫȠȜȗȝȓȞȓȚȓțțȜȗ
ȥȠȜȏȩȜȝȞȓȒȓșȖȠȪȘȎȘȜȗȏșȜȘȐȩȏȞȎȠȪ
buildcheckerboard
18. function placeCheckerboard()
ɜɵɛɨɪɭɝɥɹɢɥɢɤɜɚɪɰɚɜɡɚɜɢɫɢɦɨɫɬɢɨɬɡɧɚɱɟɧɢɹ
ɩɟɪɟɦɟɧɧɨɣSODFH%ODFN
20.
if placeBlack then
21.
hare.selectItem('minecraft:coal_block')
22.
else
23.
hare.selectItem('minecraft:quartz_block')
24.
end
25.
26.
turtle.placeDown()

dzȟșȖ ȝȓȞȓȚȓțțȜȗ placeBlack ȝȞȖȟȐȜȓțȜ ȕțȎȥȓțȖȓ true
ȝȞȜȑȞȎȚȚȎ ȐȩȕȩȐȎȓȠ ȢȡțȘȤȖȬ hare.selectItem()ȥȠȜȏȩ
ȐȩȏȞȎȠȪ ȭȥȓȗȘȡ ȖțȐȓțȠȎȞȭȟȜȒȓȞȔȎȧȡȬ ȡȑȜșȪțȩȓ ȏșȜȘȖ.
dzȟșȖȝȓȞȓȚȓțțȜȗplaceBlackȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓfalse
ȝȞȜȑȞȎȚȚȎȐȩȏȖȞȎȓȠȭȥȓȗȘȡȖțȐȓțȠȎȞȭȟȜȒȓȞȔȎȧȡȬȘȐȎȞ
ȤȓȐȩȓȏșȜȘȖǽȜȟșȓȠȜȑȜȘȎȘȟȝȜȚȜȧȪȬȖțȟȠȞȡȘȤȖȗifȖ
elseȜȝȞȓȒȓșȓțȠȖȝȏșȜȘȎȘȜȠȜȞȩȗțȡȔțȜȐȩȏȞȎȠȪȟȝȜȚȜ
ȧȪȬȢȡțȘȤȖȖhare.selectItem()ȘȜȒȐȟȠȞȜȘȓȞȎȕȚȓ
ȧȎȓȠȐȩȏȞȎțțȩȗȏșȜȘȝȜȒȥȓȞȓȝȎȦȘȜȗ
ǵȎȠȓȚȘȜȒȐȟȠȞȜȘȓȝȓȞȓȘșȬȥȎȓȠșȜȑȖȥȓȟȘȜȓȕțȎȥȓțȖȓ
ȝȓȞȓȚȓțțȜȗplaceBlack.
buildcheckerboard
27.
placeBlack = not placeBlack
28. end

254

DZǹǮǰǮ

dzȟșȖȝȓȞȓȚȓțțȜȗȏȩșȜȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓtrueȠȜ
ȝȞȖȟȐȎȖȐȎȓȠȟȭfalseǶțȎȜȏȜȞȜȠȋȠȜȕțȎȥȖȠȥȠȜȝȞȖȟșȓ
ȒȡȬȧȓȚȐȩȕȜȐȓȢȡțȘȤȖȖplaceCheckerboard()ȢȡțȘȤȖȓȗ
sweepField()ȏȡȒȓȠȐȩȏȞȎțȏșȜȘȟȝȞȜȠȖȐȜȝȜșȜȔțȩȚȤȐȓ
ȠȜȚȀȎȘȖȚȜȏȞȎȕȜȚȫȠȜȠȘȜȒȟȜȕȒȎȓȠȦȎȣȚȎȠțȜȓȝȜȘȞȩȠȖȓ

ĎħēĚĎĠğęĖĢĔĔ;?--8.1-4,
ǽȜȟșȓȕȎȐȓȞȦȓțȖȭȢȡțȘȤȖȖplaceCheckerboard()ȐȟȠȞȜ
ȘȓȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘȟȠȞȜȘȓȋȠȎȟȠȞȜȘȎȝȓȞȓ
ȚȓȧȎȓȠțȎȦȓȑȜȞȜȏȜȠȎțȎȜȒțȡȝȜȕȖȤȖȬȐȐȓȞȣȥȠȜȏȩȥȓȞȓ
ȝȎȦȘȎȚȜȑșȎȞȎȕȚȓȧȎȠȪȝȜȒȟȜȏȜȗȏșȜȘȖ
buildcheckerboard
30. turtle.up()
31. hare.sweepField(length, width, placeCheckerboard)

ǵȎȠȓȚȝȞȜȖȟȣȜȒȖȠȐȩȕȜȐȢȡțȘȤȖȖhare.sweepField()
ȘȜȠȜȞȜȗȝȓȞȓȒȎȬȠȟȭȕțȎȥȓțȖȭȎȞȑȡȚȓțȠȜȐȘȜȚȎțȒțȜȗȟȠȞȜ
ȘȖlengthwidthȖȢȡțȘȤȖȭplaceCheckerboardǶȚȭ
ȝȓȞȓȒȎȐȎȓȚȜȗȢȡțȘȤȖȖȕȎȝȖȟȩȐȎȓȠȟȭȏȓȕȘȞȡȑșȩȣȟȘȜȏȜȘ
ȠȎȘȘȎȘȝȞȜȑȞȎȚȚȎțȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬplaceCheckerboard()ȎȝȓȞȓȒȎȓȠȓȓȐȘȎȥȓȟȠȐȓȕțȎȥȓțȖȭȎȞȑȡȚȓțȠȎ
ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"ĜČēęĚĢĎđĞęČī
ĤČġĘČĞęČīĐĚĝĖČ

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

ģĞĚĘħğēęČėĔ
ǰȫȠȜȗȑșȎȐȓȚȩȟȜȕȒȎșȖȜȏȧȖȗȎșȑȜȞȖȠȚȒșȭȐȩȘșȎȒȩ
ȐȎțȖȭȝȓȞȓȘȞȩȠȖȭǽȜȫȠȜȚȡȎșȑȜȞȖȠȚȡȥȓȞȓȝȎȦȘȎȝȞȜ

ǿȀǾǼǶȀdzǹȊǿȀǰǼǽǼǹǮǶǽǼȀǼǹǸǮ

255

ȣȜȒȖȠȝȜȐȟȓȚȝȜȕȖȤȖȭȚȝȞȭȚȜȡȑȜșȪțȜȗȜȏșȎȟȠȖȐȩȝȜș
țȭȭȐȘȎȔȒȜȗȝȜȕȖȤȖȖȜȝȞȓȒȓșȓțțȜȓȒȓȗȟȠȐȖȓǽȞȜȑȞȎȚȚȎ
EXLOGÀRRUȖȟȝȜșȪȕȡȓȠȫȠȜȠȎșȑȜȞȖȠȚȒșȭȝȜȟȠȞȜȓțȖȭȝȜșȜȐ
ȖȝȜȠȜșȘȜȐțȜȠȩȟȚȜȔȓȦȪȝȞȖȚȓțȭȠȪȫȠȜȠȎșȑȜȞȖȠȚȒșȭ
ȞȓȦȓțȖȭȚțȜȔȓȟȠȐȎȒȞȡȑȖȣȕȎȒȎȥȋȠȜȐȜȕȚȜȔțȜȝȜȠȜȚȡ
ȥȠȜ/XDȝȜȕȐȜșȭȓȠȝȓȞȓȒȎȐȎȠȪȢȡțȘȤȖȖȒȞȡȑȖȚȢȡțȘȤȖȭȚ
ȠȎȘȔȓșȓȑȘȜȘȎȘȠȩȝȓȞȓȒȎȓȦȪȟȠȞȜȘȜȐȩȓȖșȖȤȓșȜȥȖȟ
șȓțțȩȓȎȞȑȡȚȓțȠȩǻȎȝȞȖȚȓȞȘȜȑȒȎȢȡțȘȤȖȭselectAndPlaceDown()ȏȩșȎȝȓȞȓȒȎțȎȢȡțȘȤȖȖsweepField()ȐȝȞȜ
ȑȞȎȚȚȓEXLOGÀRRUȥȓȞȓȝȎȦȘȎȝȜȟȠȞȜȖșȎȝȓȞȓȘȞȩȠȖȓǻȜ
ȘȜȑȒȎȏȜșȓȓȟȝȓȤȖȎșȖȕȖȞȜȐȎțțȎȭȢȡțȘȤȖȭplaceCheckerboard()ȏȩșȎȝȓȞȓȒȎțȎȢȡțȘȤȖȖsweepField()ȐȝȞȜȑȞȎȚ
ȚȓbuildcheckerboardȥȓȞȓȝȎȦȘȎȝȜȟȠȞȜȖșȎȦȎȣȚȎȠțȡȬ
ȒȜȟȘȡ
ȀȎȘȘȎȘȢȡțȘȤȖȭsweepField()țȎȟȠȜșȪȘȜȑȖȏȘȎȐțȎ
ȟȠȞȜȗȘȓȒșȭȝȞȜȑȞȎȚȚȖȞȜȐȎțȖȭțȜȐȩȣȒȓȗȟȠȐȖȗțȓȠȞȓ
ȏȡȓȠȟȭȚțȜȑȜȒȜȝȜșțȖȠȓșȪțȜȑȜȘȜȒȎǰȑșȎȐȓȚȩȏȡȒȓȚ
ȖȟȝȜșȪȕȜȐȎȠȪȢȡțȘȤȖȬsweepField()ȒșȭȟȜȕȒȎțȖȭȎȐȠȜ
ȚȎȠȖȕȖȞȜȐȎțțȜȗȢȓȞȚȩțȎȘȜȠȜȞȜȗȐȟȓȜȝȓȞȎȤȖȖȝȜȝȜȟȎȒ
ȘȓȖȡȏȜȞȘȓȡȞȜȔȎȭȏȡȒȡȠȎȐȠȜȚȎȠȖȕȖȞȜȐȎțȩ

14
ěĜĚďĜČĘĘĔĜĚĎČęĔđ
ģđĜđěČĤĖĔĠđĜĘđĜČ
ǰȞȓȔȖȚȓȐȩȔȖȐȎțȖȭțȓȜȏȣȜȒȖȚȜȕȎȏȜȠȖȠȪ
ȟȭȜȝȞȜȝȖȠȎțȖȖțȜȜȣȜȠȎȖȟȏȜȞȝȖȧȖȜȠțȖ
ȚȎȬȠȚțȜȑȜȐȞȓȚȓțȖǿȓșȪȟȘȜȓȣȜȕȭȗȟȠȐȜȖ
ȟȏȜȞȡȞȜȔȎȭ²șȡȥȦȓȓȞȓȦȓțȖȓțȜȟȜȒȓȞȔȎȠȪ
ȘȞȡȝțȡȬȢȓȞȚȡȒȜȐȜșȪțȜȣșȜȝȜȠțȜDzȎȐȎȗȐȩ
ȞȎȧȖȐȎȠȪȖȟȜȏȖȞȎȠȪȜȑȞȜȚțȩȗȡȞȜȔȎȗȟȝȜȚȜ
ȧȪȬȜȒțȜȗȕȎȝȞȜȑȞȎȚȚȖȞȜȐȎțțȜȗȥȓȞȓȝȎȦȘȖȢȓȞȚȓȞȎ
ȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϰ͘ϭ͘ʻ̸̴̸̡̨̨̨̨̨̨̡̛̬̱̪̦̜̪̹̖̦̦̜̖̬̥̖̥̙̖̯̬̯̯̭̖̦̖̬̖̪̹̌̌̍̌̽̏̐̔̌̌̌

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

257

ǰȫȠȜȗȑșȎȐȓȚȩȟȜȕȒȎȒȖȚȎșȑȜȞȖȠȚȘȜȠȜȞȩȗȝȜȕȐȜșȖȠ
ȠȐȜȖȚȥȓȞȓȝȎȦȘȎȚȐȩȞȎȧȖȐȎȠȪȟȜȏȖȞȎȠȪȖȟȒȎȐȎȠȪȡȞȜ
ȔȎȗțȎȣȞȎțȓțȖȓ

ěĚĐďĚĞĚĎĖČěĤđęĔģęĚďĚěĚėī
ȅȠȜȏȩȐȩȞȎȧȖȐȎȠȪȝȦȓțȖȤȡȐ0LQHFUDIWȟțȎȥȎșȎțȡȔțȜ
ȝȜȒȑȜȠȜȐȖȠȪȝȜșȓDzșȭȫȠȜȑȜȝȜțȎȒȜȏȖȠȟȭȚȜȠȩȑȎȞȜȐțȩȗ
ȡȥȎȟȠȜȘȕȓȚșȭțȩȣȖșȖȠȞȎȐȭțȩȣȏșȜȘȜȐȐȓȒȞȜȒȜȟȠȡȝȘ
ȖȟȠȜȥțȖȘȡȐȜȒȩțȎȝȞȖȚȓȞȘȜȘȓȎțȡȖșȖȞȓȘȓ ȖȟȠȜȥțȖȘȐȜ
ȒȩțȓȜȏȭȕȎȠȓșȪțȜȒȜșȔȓțțȎȣȜȒȖȠȪȟȭȞȭȒȜȚȟȡȥȎȟȠȘȜȚ 
ȏșȜȘȖȕȎȏȜȞȎȖȟȡțȒȡȘ
ǿțȎȥȎșȎȝȓȞȓȗȒȖȘȖȟȠȜȥțȖȘȡȐȜȒȩȟȝȡȟȠȩȚȐȓȒȞȜȚȖȟ
ȐȓȒȞȜȚȐȞȡȘȓȧȓșȘțȖȝȞȎȐȜȗȘțȜȝȘȜȗȚȩȦȖȝȜȐȜȒȓȥȠȜ
ȏȩțȎȝȜșțȖȠȪȐȓȒȞȜǵȎȠȓȚȝȜȒȜȗȒȖȘȟȐȜȓȚȡȡȥȎȟȠȘȡȕȓȚșȖ
ȖșȖȠȞȎȐȩǼȏȞȎȏȜȠȎȗȡȥȎȟȠȜȘȚȜȠȩȑȜȗȖȝȜȒȑȜȠȜȐȪȝȎȦțȬ
ȞȎȕȚȓȞȜȚðȏșȜȘȜȐǽȜȟȘȜșȪȘȡȝȎȦțȭȏȓȕȏșȖȕȜȟȠȖȐȜ
ȒȩȏȩȟȠȞȜȝȞȓȐȞȎȧȎȓȠȟȭȜȏȞȎȠțȜȐțȓȜȏȞȎȏȜȠȎțțȡȬȕȓȚșȬ
ȠȓȏȓțȎȒȜȐȩȘȜȝȎȠȪȭȚȡȐȤȓțȠȞȓȝȜșȭȎȕȎȠȓȚȧȓșȘț ȡȠȪ
ȝȜțȓȗȝȞȎȐȜȗȘțȜȝȘȜȗȚȩȦȖȟȝȜșțȩȚȐȜȒȩȐȓȒȞȜȚȐȞȡ
ȘȎȣȖȐȩșȖȠȪȐȜȒȡȐȭȚȡȀȎȘȖȚȜȏȞȎȕȜȚȠȩȕȎȝȜșțȖȦȪȭȚȡ
ȐȜȒȜȗ
ǼȒțȜȑȜȠȎȘȜȑȜȏșȜȘȎȐȜȒȩȒȜȟȠȎȠȜȥțȜȒșȭȡȐșȎȔțȓțȖȭ
ȝȜșȭțȎȞȎȟȟȠȜȭțȖȖȒȜȥȓȠȩȞȓȣȏșȜȘȜȐȐșȬȏȜȚțȎȝȞȎȐșȓ
țȖȖȠȜȓȟȠȪȡȥȎȟȠȘȎȞȎȕȚȓȞȜȚðȏșȜȘȜȐȅȠȜȏȩȟȜȕȒȎȠȪ
ȏȜșȓȓȘȞȡȝțȡȬȢȓȞȚȡȚȜȔțȜȞȎȕȚȓȟȠȖȠȪțȓȟȘȜșȪȘȜȠȎȘȖȣ
ȜȞȜȦȎȓȚȩȣȝȜșȓȗȞȭȒȜȚȒȞȡȑȟȒȞȡȑȜȚ
ǽȜȝȓȞȖȚȓȠȞȡȢȓȞȚȩțȎȒȜȡȟȠȎțȜȐȖȠȪȕȎȏȜȞȥȠȜȏȩțȓ
ȝȡȟȘȎȠȪȘȜȞȜȐȜȐȓȤȖȐȞȎȔȒȓȏțȩȣȚȜȏȜȐȘȜȠȜȞȩȓȏȡȒȡȠȚȓ
ȦȎȠȪȥȓȞȓȝȎȦȘȎȚǰșȓȐȜȚțȖȔțȓȚȡȑșȡȡȟȠȎțȜȐȖȟȡțȒȡȘ
țȎȐȩȟȜȠȓȜȒțȜȑȜȏșȜȘȎțȎȒȕȓȚșȓȗȐȫȠȜȠȟȡțȒȡȘȥȓȞȓȝȎȦ
ȘȖȏȡȒȡȠȟȘșȎȒȩȐȎȠȪȡȞȜȔȎȗǻȎȞȖȟȝȜȘȎȕȎțȜȘȎȘ
ȒȜșȔțȜȐȩȑșȭȒȓȠȪȝȜșȓ
ǽȞȖȚȓȥȎțȖȓ Ɉɞɧɚɱɟɪɟɩɚɲɤɚɦɨɠɟɬɨɛɪɚɛɚɬɵɜɚɬɶɩɪɹɦɨɭɝɨɥɶɧɨɟɩɨɥɟɥɸɛɨɝɨɪɚɡɦɟɪɚɋɚɦɨɟɝɥɚɜɧɨɟɪɚɡɦɟɫɬɢɨɞɢɧ
ɛɥɨɤɜɨɞɵɞɥɹɩɨɥɢɜɚɧɚɤɚɠɞɨɦɭɱɚɫɬɤɟɪɚɡɦɟɪɨɦîɛɥɨɤɨɜ

258

DZǹǮǰǮ

Ɍɚɤɠɟɩɨɧɚɞɨɛɢɬɫɹɡɚɛɨɪɩɨɩɟɪɢɦɟɬɪɭɜɫɟɝɨɩɪɹɦɨɭɝɨɥɶɧɨɝɨ
ɩɨɥɹ ɧɟɡɚɜɢɫɢɦɨɨɬɟɝɨɪɚɡɦɟɪɚɱɬɨɛɵɧɟɩɭɫɤɚɬɶɜɪɚɠɞɟɛɧɵɯɦɨɛɨɜɢɠɢɜɨɬɧɵɯ

ˀ̛̭͘ϭϰ͘Ϯ͘ʿ̸̨̨̨̛̹̖̦̦̖̪̣̖̬̥̖̬̥̌̚ϵпϵ̸̨̡̨̨̡̨̨̛̛̣̭̭̯̦̥̼̍̏̏̔
̨̛̪̭̖̬̖̦̖̔͘ʦ̵̸̨̨̡̡̛̛̣̖̥̦̙̦̖̥̱̣̱̦̯̭̖̬̖̪̹̭̱̦̱̏̐̌̔́́̌̌̔

ȀȓȝȓȞȪȘȜȑȒȎȝȜșȓȝȜȒȑȜȠȜȐșȓțȜȒȎȐȎȗȞȎȟȟȚȜȠȞȖȚȎș
ȑȜȞȖȠȚțȎȜȟțȜȐȓȘȜȠȜȞȜȑȜȝȞȜȑȞȎȚȚȎfarmwheatȏȡȒȓȠ
ȡȝȞȎȐșȭȠȪȢȓȞȚȜȗ

ĜČēĜČčĚĞĖČČėďĚĜĔĞĘČğěĜČĎėđęĔī
ěĤđęĔģęĚĕĠđĜĘĚĕ
ǰȫȠȜȗȑșȎȐȓȚȩțȎȝȖȦȓȚȝȞȜȑȞȎȚȚȡfarmwheatǻȜȟțȎ
ȥȎșȎțȡȔțȜȟȝȞȜȓȘȠȖȞȜȐȎȠȪȎșȑȜȞȖȠȚȫȠȜȗȝȞȜȑȞȎȚȚȩ
ǽȞȓȔȒȓȥȓȚȥȓȞȓȝȎȦȘȎțȎȥțȓȠȕȎțȖȚȎȠȪȟȭȝȜșȓȚțȡȔțȜ
ȝȞȜȐȓȞȖȠȪȒȐȎȚȜȚȓțȠȎǰȜȝȓȞȐȩȣȥȓȞȓȝȎȦȘȎȝȞȜȐȓȞȭȓȠ
ȥȠȜȞȭȒȜȚȟțȓȗȓȟȠȪȟȡțȒȡȘdzȟșȖȜțȎțȓȟȚȜȔȓȠȓȑȜțȎȗ
ȠȖȓȗțȓȑȒȓȏȡȒȓȠȣȞȎțȖȠȪȟȜȏȞȎțțȡȬȝȦȓțȖȤȡǽȜȟȘȜșȪ
ȘȡȝȞȜȑȞȎȚȚȎfarmwheatȏȡȒȓȠȟȜȒȓȞȔȎȠȪȢȡțȘȤȖȬhare.
sweepField()ȘȜȠȜȞȡȬȚȩțȎȝȖȟȎșȖȐȑșȎȐȓȥȓȞȓȝȎȦȘȓ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

259

ȠȎȘȔȓțȓȜȏȣȜȒȖȚȜȝȞȜȐȓȞȖȠȪȥȠȜȡțȓȓȒȜȟȠȎȠȜȥțȜȠȜȝșȖ
ȐȎȥȠȜȏȩȝȜșțȜȟȠȪȬȜȏȞȎȏȜȠȎȠȪȝȜșȓ
ǽȜȟșȓȠȜȑȜȘȎȘȥȓȞȓȝȎȦȘȎȡȏȓȒȖȠȟȭȥȠȜȡțȓȓȓȟȠȪȒȜ
ȟȠȡȝȘȟȡțȒȡȘȡȖȒȜȟȠȎȠȜȥțȜȓȘȜșȖȥȓȟȠȐȜȠȜȝșȖȐȎȜțȎȐȩ
ȕȜȐȓȠȢȡțȘȤȖȬhare.sweepField()ȖțȎȥțȓȠȒȐȖȔȓțȖȓȝȜ
ȐȟȓȚȡȝȞȜȟȠȞȎțȟȠȐȡȝȜșȭǽȜȟȘȜșȪȘȡȞȎȕțȩȓȏșȜȘȖȝȦȓțȖ
ȤȩȟȜȕȞȓȐȎȬȠȟȞȎȕțȜȗȟȘȜȞȜȟȠȪȬ ȐȏȜșȪȦȖțȟȠȐȓȟșȡȥȎȓȐȐ
ȠȓȥȓțȖȓ²ȚȖțȡȠ²Ƞȓ²ȖȑȞȜȐȩȣȒțȭ0LQHFUDIW Ȝȥȓ
ȐȖȒțȜȥȠȜțȓțȎȐȟȓȚȝȜșȓȝȦȓțȖȤȎȟȜȕȞȓȓȠȜȒțȜȐȞȓȚȓț
țȜǽȜȫȠȜȚȡțȎȚțȡȔțȜȟȜȕȒȎȠȪȢȡțȘȤȖȬȘȜȠȜȞȎȭȏȡȒȓȠțȓ
ȠȜșȪȘȜȐȩȕȩȐȎȠȪȢȡțȘȤȖȬhare.sweepField()țȜȖȜȝȞȓ
ȒȓșȭȠȪȥȠȜȥȓȞȓȝȎȦȘȎȒȜșȔțȎȒȓșȎȠȪțȎȘȎȔȒȜȚȘȜțȘȞȓȠ
țȜȚȏșȜȘȓȝȜșȭ
ȅȓȞȓȝȎȦȘȎȒȜșȔțȎȐȩȝȜșțȖȠȪȜȒțȜȖȕȠȞȓȣȒȓȗȟȠȐȖȗ
z ȝȜȟȓȭȠȪȟȓȚȓțȎȓȟșȖȡȥȎȟȠȜȘțȓȕȎȟȎȔȓț
z țȓȒȓșȎȠȪțȖȥȓȑȜȓȟșȖȝȦȓțȖȤȎȝȜȟȎȔȓțȎțȜȓȧȓțȓ
ȟȜȕȞȓșȎ
z ȡȏȞȎȠȪȝȦȓțȖȤȡȓȟșȖȜțȎȟȜȕȞȓșȎȖȐțȜȐȪȝȜȟȓȭȠȪȟȓ
ȚȓțȎ
ǽȜȟșȓȠȜȑȜȘȎȘȥȓȞȓȝȎȦȘȎȐȩȝȜșțȖȠȜȒțȜȖȕȡȘȎȕȎțțȩȣ
ȠȞȓȣȒȓȗȟȠȐȖȗțȎȐȟȓȚȝȞȜȟȠȞȎțȟȠȐȓȝȜșȭȜțȎȐȓȞțȓȠȟȭȐ
ȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓȐȟȜȜȠȐȓȠȟȠȐȖȖȟȎșȑȜȞȖȠȚȜȚȘȜȠȜȞȩȗ
ȚȩȕȎșȜȔȖșȖȐȢȡțȘȤȖȬhare.sweepField()ȐȑșȎȐȓ
ǰȒȎțțȜȚȟșȡȥȎȓȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓȥȓȞȓȝȎȦȘȖțȎȣȜȒȖȠ
ȟȭȞȭȒȜȚȟȟȡțȒȡȘȜȚȅȓȞȓȝȎȦȘȎȝȜȐȜȞȎȥȖȐȎȓȠȟȭȘȟȡțȒȡ
ȘȡȟȘșȎȒȩȐȎȓȠȐțȓȑȜȟȜȏȞȎțțȡȬȝȦȓțȖȤȡȎȕȎȠȓȚȟțȜȐȎ
ȝȜȐȜȞȎȥȖȐȎȓȠȟȭȘȝȜșȬǽȜȠȜȚȥȓȞȓȝȎȦȘȎȜȠȒȩȣȎȓȠȐȠȓ
ȥȓțȖȓȚȖțȡȠȥȠȜȏȩȒȎȠȪȝȜȟȓȭțțȜȗȝȦȓțȖȤȓȐȞȓȚȭȟȜ
ȕȞȓȠȪȖȟțȜȐȎȜȏȞȎȏȎȠȩȐȎȓȠȝȜșȓ
ȀȓȝȓȞȪȘȜȑȒȎȠȩȝȜțȖȚȎȓȦȪȎșȑȜȞȖȠȚȚȩȚȜȔȓȚȖȟ
ȝȜșȪȕȜȐȎȠȪȓȑȜȒșȭȞȎȕȞȎȏȜȠȘȖȢȓȞȚȓȞȟȘȜȗȝȞȜȑȞȎȚȚȩ
ǻȎȥțȓȚȟȒȜȏȎȐșȓțȖȭȐȟȝȜȚȜȑȎȠȓșȪțȜȗȢȡțȘȤȖȖfindBlock()ȐȚȜȒȡșȪhareǸȫȠȜȗȢȡțȘȤȖȖȥȓȞȓȝȎȦȘȎȏȡȒȓȠ
ȜȏȞȎȧȎȠȪȟȭȥȠȜȏȩȡȏȓȒȖȠȪȟȭȥȠȜȜțȎțȎȣȜȒȖȠȟȭȞȭȒȜȚȟ
ȟȡțȒȡȘȜȚ

260

DZǹǮǰǮ

ĐĚĜČčĚĞĖČĘĚĐğėī0):ȂȡțȘȤȖȭ¿QG%ORFN()ȝȜȐȜȞȎȥȖȐȎȓȠȥȓȞȓȝȎȦȘȡȐȜȘȞȡȑȟȐȜȓȗ
ȜȟȖȥȠȜȏȩȠȎȚȜȑșȎȞȎȟȟȚȜȠȞȓȠȪțȎȣȜȒȖȠȟȭșȖȞȭȒȜȚȜȝȞȓ
ȒȓșȓțțȩȗȏșȜȘȋȠȎȢȡțȘȤȖȭȝȜȚȜȔȓȠțȎȦȓȗȥȓȞȓȝȎȦȘȓ
ȢȓȞȚȓȞȡțȎȗȠȖȏșȖȔȎȗȦȖȗȟȡțȒȡȘȒșȭȣȞȎțȓțȖȭȟȜȏȞȎțțȜȗ
ȝȦȓțȖȤȩȂȡțȘȤȖȭ¿QG%ORFN()ȠȎȘȔȓȚȜȔȓȠȝȞȖȑȜȒȖȠȪȟȭȖ
ȐȒȞȡȑȖȣȝȞȜȑȞȎȚȚȎȣȝȜȫȠȜȚȡȒȜȏȎȐȖȚȓȓȐȚȜȒȡșȪhare.
ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit
hareǽȓȞȓȚȓȟȠȖȘȡȞȟȜȞȐțȖȔțȬȬȥȎȟȠȪȢȎȗșȎȖȝȞȜȒȜș
ȔȖȘȜȒȒȜȏȎȐȖȐȟșȓȒȡȬȧȖȓȟȠȞȜȘȖ
hare
...ɩɪɨɩɭɫɤ...
200. -- ¿QG%ORFN() ɩɨɜɨɪɚɱɢɜɚɟɬɱɟɪɟɩɚɲɤɭɞɥɹ
±ɩɨɢɫɤɚɛɥɨɤɚɫɭɤɚɡɚɧɧɵɦɢɞɟɧɬɢɮɢɤɚɬɨɪɨɦ
202. function ¿QG%ORFN(name)
203.
local result, block
204.
205.
for i = 1, 4 do
206.
result, block = turtle.inspect()
207.
if block ~= nil and block['name'] == name then
208.
return true
209.
end
210.
turtle.turnRight()
211.
end
212.
return false
213. end

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȐȟȓȣȖțȟȠȞȡȘȤȖȗdzȓȠȎȘȔȓȚȜȔțȜȟȘȎȥȎȠȪȐȩȝȜșțȖȐȘȜ
ȚȎțȒȡpastebin get wwzvaKuW hare.
ȂȡțȘȤȖȭfindBlock()ȜȥȓțȪȝȞȜȟȠȎȐȖȟȝȜșȪȕȜȐȎțȖȖ
ȀȩȝȓȞȓȒȎȓȦȪȢȡțȘȤȖȖfindBlock()ȟȠȞȜȘȡȟȖȒȓțȠȖȢȖ
ȘȎȠȜȞȜȚȏșȜȘȎȘȜȠȜȞȩȗȟșȓȒȡȓȠțȎȗȠȖǻȎȝȞȖȚȓȞȒșȭ
ȝȜȖȟȘȎȟȡțȒȡȘȎȚȩȝȓȞȓȒȎȒȖȚȢȡțȘȤȖȖȖȒȓțȠȖȢȖȘȎȠȜȞ
'minecraft:chest'ȂȡțȘȤȖȭ¿QG%ORFN()ȚȜȔȓȠȝȜȐȓȞ
țȡȠȪȥȓȞȓȝȎȦȘȡțȎȝȞȎȐȜȒȜȥȓȠȩȞȓȣȞȎȕȖȟȝȜșȪȕȡȭȤȖȘș
forȐȟȠȞȜȘȓȎȥȓȞȓȝȎȦȘȎțȎȘȎȔȒȜȗȖȠȓȞȎȤȖȖȝȞȜ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

261

ȐȓȞȭȓȠȖȒȓțȠȖȢȖȘȎȠȜȞȏșȜȘȎȞȎȟȝȜșȜȔȓțțȜȑȜȝȓȞȓȒțȓȗȟ
ȝȜȚȜȧȪȬȢȡțȘȤȖȖturtle.inspect().
ȂȡțȘȤȖȭturtle.inspect()ȐȜȕȐȞȎȧȎȓȠȜȒțȜȖȕȒȐȡȣ
ȕțȎȥȓțȖȗșȜȑȖȥȓȟȘȜȓȕțȎȥȓțȖȓtrueȓȟșȖȏșȜȘțȎȣȜȒȖȠȟȭ
ȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗȖșȖfalseȓȟșȖȏșȜȘȎțȓȠǸȜȑȒȎȓȟȠȪ
ȏșȜȘȒșȭȝȞȜȐȓȞȘȖȢȡțȘȤȖȭȠȎȘȔȓȐȜȕȐȞȎȧȎȓȠȒȎțțȩȓ
ȜȏșȜȘȓǰȟȠȞȜȘȓȚȩȟȜȣȞȎțȭȓȚșȜȑȖȥȓȟȘȜȓȕțȎȥȓțȖȓ
ȐȜȕȐȞȎȧȓțțȜȓȢȡțȘȤȖȓȗturtle.inspect()ȐȝȓȞȓȚȓțțȜȗ
resultȎȟȐȓȒȓțȖȭȜȏșȜȘȓȐȝȓȞȓȚȓțțȜȗblockǻȎȘȎȔȒȜȗ
ȖȠȓȞȎȤȖȖȤȖȘșȎȐȟȠȞȜȘȓȝȞȜȐȓȞȭȓȠȟȭȟȡȧȓȟȠȐȡȓȠșȖ
ȏșȜȘȖȓȟșȖȒȎȠȜȟȜȐȝȎȒȎȓȠșȖȓȑȜȖȒȓțȠȖȢȖȘȎȠȜȞȟȝȓȞȓ
ȒȎțțȩȚȢȡțȘȤȖȖ¿QG%ORFN().
dzȟșȖȥȓȞȓȝȎȦȘȎțȎȣȜȒȖȠȖȟȘȜȚȩȗȏșȜȘȜțȎȝȓȞȓȟȠȎȓȠ
ȝȜȐȜȞȎȥȖȐȎȠȪȟȭȖȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓtrueǰȝȞȜȠȖȐțȜȚ
ȟșȡȥȎȓȥȓȞȓȝȎȦȘȎȝȞȜȒȜșȔȎȓȠȐȞȎȧȎȠȪȟȭȝȜȘȎțȓȟȜȐȓȞ
ȦȖȠȥȓȠȩȞȓȝȜȐȜȞȜȠȎdzȟșȖȝȜȟșȓȥȓȠȩȞȓȣȝȜȐȜȞȜȠȜȐȥȓȞȓ
ȝȎȦȘȎțȓțȎȣȜȒȖȠȕȎȒȎțțȩȗȏșȜȘȢȡțȘȤȖȭ¿QG%ORFN()
ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseȀȓȝȓȞȪȏșȎȑȜȒȎȞȭȫȠȜȗȐȟȝȜ
ȚȜȑȎȠȓșȪțȜȗȢȡțȘȤȖȖȚȩȚȜȔȓȚțȎȝȖȟȎȠȪȘȜȒȜȟțȜȐțȜȗ
ȝȞȜȑȞȎȚȚȩȡȝȞȎȐșȓțȖȭȢȓȞȚȜȗ²farmwheat.

ĖĚĐěĜĚďĜČĘĘħ.):5?0-)<
DzȎȐȎȗțȎȝȖȦȓȚȝȞȜȑȞȎȚȚȡȟțȎȦȖȚȎșȑȜȞȖȠȚȜȚǰȜȏȜ
șȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖȐȩȝȜșțȖȘȜȚȎțȒȡedit farmwheatȖȐȐȓȒȖȟșȓȒȡȬȧȖȗȘȜȒ
farmwheat
>>ɉɪɨɝɪɚɦɦɚɞɥɹɜɵɪɚɳɢɜɚɧɢɹɩɲɟɧɢɰɵɗɥɚɋɜɟɣɝɚɪɬɚ
ȼɵɪɚɳɢɜɚɟɬɢɫɨɛɢɪɚɟɬɩɲɟɧɢɰɭ
ɉɪɟɞɩɨɥɚɝɚɟɬɫɹɱɬɨɩɨɥɟɧɚɯɨɞɢɬɫɹ
ɫɩɟɪɟɞɢɢɫɩɪɚɜɚɨɬɱɟɪɟɩɚɲɤɢɚ
ɫɡɚɞɢɢɧɟɟɭɫɬɚɧɨɜɥɟɧɫɭɧɞɭɤ@@
6.
7. os.loadAPI('hare')
8.
ɨɛɪɚɛɨɬɤɚɚɪɝɭɦɟɧɬɨɜɤɨɦɚɧɞɧɨɣɫɬɪɨɤɢ
10. local cliArgs = {...}
11. local length = tonumber(cliArgs[1])

262

DZǹǮǰǮ

12. local width = tonumber(cliArgs[2])
13.
ɨɬɨɛɪɚɠɟɧɢɟɢɧɮɨɪɦɚɰɢɢɨɛɢɫɩɨɥɶɡɨɜɚɧɢɢ
LIOHQJWK QLORUZLGWK QLORUFOL$UJV>@  "
then
16.
print('Usage: farmwheat ')
17.
return
18. end
19.
20. print('Hold Ctrl-T to stop.')
21.
ɩɪɨɜɟɪɤɚɞɨɫɬɭɩɚɤɫɭɧɞɭɤɭ
LIQRWKDUH¿QG%ORFN PLQHFUDIWFKHVW WKHQ
24.
error('Must start next to a chest.')
25. end
26.
ɩɨɜɨɪɨɬɤɩɨɥɸ
28. turtle.turnLeft()
29. turtle.turnLeft()
30.
31.
FKHFN:KHDW&URS ɫɨɛɢɪɚɟɬɭɪɨɠɚɣ
ɢɫɚɠɚɟɬɫɟɦɟɧɚ
34. function checkWheatCrop()
35.
local result, block = turtle.inspectDown()
36.
37.
if not result then
WXUWOHGLJ'RZQ ɩɨɞɝɨɬɨɜɤɚɩɚɲɧɢ
39.
plantWheatSeed()
40.
elseif block ~= nil and block['name'] ==
'minecraft:wheat' and block['metadata'] == 7 then
ɫɛɨɪɭɪɨɠɚɹɢɩɨɫɟɜɫɟɦɹɧ
42.
turtle.digDown()
43.
print('Collected wheat.')
44.
plantWheatSeed()
45.
end
46. end
47.
48.
SODQW:KHDW6HHG ɩɪɨɛɭɟɬɩɨɫɚɞɢɬɶ
ɫɟɦɟɧɚɩɲɟɧɢɰɵɩɨɞɱɟɪɟɩɚɲɤɨɣ
51. function plantWheatSeed()

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

263

52.

if not hare.selectItem('minecraft:wheat_seeds')
then
53.
print('Warning: Low on seeds.')
54.
else
WXUWOHSODFH'RZQ ɩɨɫɟɜɫɟɦɹɧ
56.
print('Planted seed.')
57.
end
58. end
59.
60.
VWRUH:KHDW ɩɨɦɟɳɟɧɢɟɭɪɨɠɚɹ
ɜɫɭɧɞɭɤ
63. function storeWheat()
ɩɨɜɨɪɨɬɤɫɭɧɞɭɤɭ
LIQRWKDUH¿QG%ORFN PLQHFUDIWFKHVW WKHQ
HUURU &RXOGQRW¿QGFKHVW
67.
end
68.
ɩɨɦɟɳɟɧɢɟɩɲɟɧɢɰɵɜɫɭɧɞɭɤ
70.
while hare.selectItem('minecraft:wheat') do
71.
print('Dropping off ' .. turtle.getItemCount() ..
' wheat...')
72.
if not turtle.drop() then
73.
error('Wheat chest is full!')
74.
end
75.
end
76.
ɩɨɜɨɪɨɬɤɩɨɥɸɫɧɨɜɚ
78.
turtle.turnLeft()
79.
turtle.turnLeft()
80. end
81.
82.
ɧɚɱɚɥɨɪɚɛɨɬɵɧɚɮɟɪɦɟ
84. while true do
ɩɪɨɜɟɪɤɚɭɪɨɜɧɹɬɨɩɥɢɜɚ
86.
if turtle.getFuelLevel() < (length * width + length
+ width) then
87.
error('Turtle needs more fuel!')
88.
end
89.

264

DZǹǮǰǮ

ɩɨɫɟɜɩɲɟɧɢɰɵ
SULQW 6ZHHSLQJ¿HOG
92.
hare.sweepField(length, width, checkWheatCrop)
93.
storeWheat()
94.
95.
print('Sleeping for 10 minutes...')
96.
os.sleep(600)
97. end

ǽȜȟșȓȐȐȜȒȎȐȟȓȣȫȠȖȣȖțȟȠȞȡȘȤȖȗȟȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖ
ȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎ

ēČěğĝĖěĜĚďĜČĘĘħ.):5?0-)<
ǽȓȞȓȒȕȎȝȡȟȘȜȚȝȞȜȑȞȎȚȚȩfarmwheatȟșȓȒȡȓȠȡȏȓȒȖȠȪȟȭ
ȥȠȜȞȎȟȟȠȜȭțȖȓȒȜȖȟȠȜȥțȖȘȎȐȜȒȩȟȜȟȠȎȐșȭȓȠțȓȏȜșȓȓȥȓ
ȠȩȞȓȣȏșȜȘȜȐȖȥȠȜȟȡțȒȡȘțȎȣȜȒȖȠȟȭȕȎȥȓȞȓȝȎȦȘȜȗȐȓȓ
ȖȟȣȜȒțȜȗȝȜȕȖȤȖȖȐșȓȐȜȚțȖȔțȓȚȡȑșȡȝȜșȭȘȎȘȝȜȘȎ
ȕȎțȜțȎȞȖȟȅȓȞȓȝȎȦȘȡțȎȒȜȜȏȜȞȡȒȜȐȎȠȪȎșȚȎȕțȜȗ
ȚȜȠȩȑȜȗȥȠȜȏȩȜțȎȚȜȑșȎȝȞȓȐȞȎȧȎȠȪȐȝȎȦțȬȕȓȚșȬȖșȖ
ȠȞȎȐȡǽȜȟșȓȠȜȑȜȘȎȘȥȓȞȓȝȎȦȘȎțȎȟȠȞȜȓțȎȐȜȏȜșȜȥȘȓȘȜ
ȚȎțȒțȜȗȟȠȞȜȘȖȐȐȓȒȖȘȜȚȎțȒȡfarmwheat 9 9ȥȠȜȏȩȥȓ
ȞȓȝȎȦȘȎțȎȥȎșȎȜȏȞȎȏȎȠȩȐȎȠȪȝȜșȓȞȎȕȚȓȞȜȚðȏșȜȘȜȐ

ˀ̛̭͘ϭ4.3.ˋ̡̨̨̨̨̨̡̖̬̖̪̹̬̥̖̺̖̦̦̼̭̯̖̦̣̦̖̥̣̖̜͕̌̌̌̌̌̏̔̐̍̌̌̔̌̚̚
̡̨̨̛̭̱̦̱̱̭̯̦̣̖̦̪̦̖̖̔̌̏̌̔̚

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

265

ǶȚȓȗȐȐȖȒȡȥȠȜȓȟșȖȠȩȡȗȒȓȦȪȜȠȥȓȞȓȝȎȦȘȖȟșȖȦ
ȘȜȚȒȎșȓȘȜȜțȎȝȓȞȓȟȠȎțȓȠȞȎȏȜȠȎȠȪdzȟșȖȥȓȞȓȝȎȦȘȎȜȠ
ȘșȬȥȖȠȟȭțȎȟȓȞȓȒȖțȓȝȜșȭȓȓțȡȔțȜȏȡȒȓȠȝȓȞȓȚȓȟȠȖȠȪ
ȜȏȞȎȠțȜȐșȓȐȩȗțȖȔțȖȗȡȑȜșȝȜșȭȖȟțȜȐȎȕȎȝȡȟȠȖȠȪȝȞȜ
ȑȞȎȚȚȡȥȠȜȏȩȥȓȞȓȝȎȦȘȎȝȞȜȒȜșȔȖșȎȕȎțȖȚȎȠȪȟȭȢȓȞ
ȚȜȗǻȎȦȞȜȏȜȠȝȞȜȒȜșȔȖȠȘȎȘȖȞȎțȪȦȓȝȓȞȓȚȓȧȎȠȪȟȭ
ȝȜȝȜșȬȝȞȜȐȓȞȭȠȪȕȞȓșȜȟȠȪȝȦȓțȖȤȩȟȜȏȖȞȎȠȪȓȓȖȝȞȜ
ȖȕȐȜȒȖȠȪȝȜȟȓȐ
dzȟșȖȝȞȖȕȎȝȡȟȘȓȫȠȜȗȝȞȜȑȞȎȚȚȩȐȜȕțȖȘȎȬȠȜȦȖȏȘȖ
ȠȧȎȠȓșȪțȜȟȞȎȐțȖȟȐȜȗȘȜȒȟșȖȟȠȖțȑȜȚȐȫȠȜȗȘțȖȑȓȥȠȜ
ȏȩțȎȗȠȖȐȜȕȚȜȔțȩȓȜȝȓȥȎȠȘȖdzȟșȖȖȟȝȞȎȐȖȠȪȝȞȜȑȞȎȚȚȡ
țȓȡȒȎȓȠȟȭȡȒȎșȖȢȎȗșȐȩȝȜșțȖȐȘȜȚȎțȒȡdelete farmwheatȎȕȎȠȓȚȕȎȑȞȡȕȖȝȞȜȑȞȎȚȚȡȟțȜȐȎȐȩȝȜșțȖȐȘȜȚȎț
Ȓȡpastebin get SfcB8b55 farmwheat.

ĖĚęĠĔďğĜČĢĔīěĜĚďĜČĘĘħ
.):5?0-)<
ǽȓȞȐȩȓȝȭȠȪȟȠȞȜȘȝȞȜȑȞȎȚȚȩȟȜȒȓȞȔȎȠȜȏȩȥțȩȓȘȜȚȚȓț
ȠȎȞȖȖȜȝȖȟȩȐȎȬȧȖȓȥȠȜȜțȎȒȓșȎȓȠȖȘȠȜȞȎȕȞȎȏȜȠȎșȝȞȜ
ȑȞȎȚȚȡǸȜȒȐȟȠȞȜȘȓȕȎȑȞȡȔȎȓȠȚȜȒȡșȪhareȥȠȜȏȩȝȞȜ
ȑȞȎȚȚȎȚȜȑșȎȐȩȕȩȐȎȠȪȓȑȜȢȡțȘȤȖȖ
ǵȎȠȓȚȝȞȜȑȞȎȚȚȎȟȥȖȠȩȐȎȓȠȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȒșȭȝȜșȡȥȓțȖȭȒșȖțȩȖȦȖȞȖțȩȝȜșȭdzȟșȖȎȞȑȡ
ȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖțȓȡȘȎȕȎțȩȝȞȜȑȞȎȚȚȎȐȩȐȜȒȖȠ
ȟȜȜȏȧȓțȖȓȝȜșȪȕȜȐȎȠȓșȬ
farmwheat
9. -- ɨɛɪɚɛɨɬɤɚɚɪɝɭɦɟɧɬɨɜɤɨɦɚɧɞɧɨɣɫɬɪɨɤɢ
10. local cliArgs = {...}
11. local length = tonumber(cliArgs[1])
12. local width = tonumber(cliArgs[2])
13.
14. -- ɨɬɨɛɪɚɠɟɧɢɟ ɢɧɮɨɪɦɚɰɢɢ ɨɛ ɢɫɩɨɥɶɡɨɜɚɧɢɢ
15. if length == nil or width == nil or cliArgs[1] ==
 " WKHQ
16.
print('Usage: farmwheat ')
17.
return
18. end

266

DZǹǮǰǮ

ǽȜȟȘȜșȪȘȡȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖ²ȫȠȜȐȟȓȑȒȎ
ȟȠȞȜȘȜȐȩȓȕțȎȥȓțȖȭȎȝȓȞȓȚȓțțȩȓlengthȖwidth²Ȑȟȓȑ
ȒȎȥȖȟșȎȘȜȒȐȟȠȞȜȘȎȣȖȝȓȞȓȒȎȓȠȝȓȞȐȩȗȖȐȠȜȞȜȗ
ȎȞȑȡȚȓțȠȩȘȜȚȎțȒțȜȗȟȠȞȜȘȖȢȡțȘȤȖȖtonumber()ǰȜȕ
ȐȞȎȧȎȓȚȩȓȕțȎȥȓțȖȭȟȜȣȞȎțȭȬȠȟȭȐȘȎȥȓȟȠȐȓȕțȎȥȓțȖȗ
ȝȓȞȓȚȓțțȩȣlengthȖwidth.
dzȟșȖȜȠȟȡȠȟȠȐȡȓȠȝȓȞȐȩȗȖșȖȐȠȜȞȜȗȎȞȑȡȚȓțȠȘȜȚȎțȒ
țȜȗȟȠȞȜȘȖȠȜȢȡțȘȤȖȭtonumber()ȐȓȞțȓȠȕțȎȥȓțȖȓnil
ȘȜȠȜȞȜȓȏȡȒȓȠȝȞȖȟȐȜȓțȜȝȓȞȓȚȓțțȜȗlengthȖșȖwidthȟȜ
ȜȠȐȓȠȟȠȐȓțțȜdzȟșȖȜȠȟȡȠȟȠȐȡȓȠȐȠȜȞȜȗȎȞȑȡȚȓțȠȘȜȚȎțȒțȜȗ
ȟȠȞȜȘȖȖșȖȓȟșȖȝȓȞȐȩȗȎȞȑȡȚȓțȠȘȜȚȎțȒțȜȗȟȠȞȜȘȖȝȞȓȒ
ȟȠȎȐșȭȓȠȟȜȏȜȗȕțȎȥȓțȖȓ " ȡȟșȜȐȖȓȖțȟȠȞȡȘȤȖȖifȐȟȠȞȜȘȓ
ȝȞȖțȖȚȎȓȠȕțȎȥȓțȖȓtrueȖȐȩȝȜșțȭȓȠȟȭȘȜȒȐȟȠȞȜȘȎȣ
ȖǸȜȒȐȟȠȞȜȘȓȜȠȜȏȞȎȔȎȓȠȟȜȜȏȧȓțȖȓȝȜșȪȕȜȐȎȠȓșȬ
ȎȖțȟȠȞȡȘȤȖȭendȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȞȎȏȜȠȡȝȞȜȑȞȎȚȚȩ
ǵȎȠȓȚȝȞȜȑȞȎȚȚȎȐȩȝȜșțȭȓȠȒȜȝȜșțȖȠȓșȪțȩȓȦȎȑȖȝȜ
ȝȜȒȑȜȠȜȐȘȓȝȞȜȐȓȞȭȭȥȠȜȡȥȓȞȓȝȎȦȘȖȓȟȠȪȐȟȓțȓȜȏȣȜȒȖ
ȚȜȓȒșȭȕȎȝȡȟȘȎȝȞȜȑȞȎȚȚȩfarmwheat.
farmwheat
20. print('Hold Ctrl-T to stop.')
21.
22. -- ɩɪɨɜɟɪɤɚ ɞɨɫɬɭɩɚ ɤ ɫɭɧɞɭɤɭ
LIQRWKDUH¿QG%ORFN PLQHFUDIWFKHVW WKHQ
24.
error('Must start next to a chest.')
25. end
26.
27. -- ɩɨɜɨɪɨɬɤɩɨɥɸ
28. turtle.turnLeft()
29. turtle.turnLeft()

ǸȜȒȐȟȠȞȜȘȓȐȩȐȜȒȖȠȟȜȜȏȧȓțȖȓȝȜșȪȕȜȐȎȠȓșȬȜȠȜȚ
ȥȠȜȜțȚȜȔȓȠȕȎȐȓȞȦȖȠȪȝȞȜȑȞȎȚȚȡȡȒȓȞȔȖȐȎȭȟȜȥȓȠȎțȖȓ
ȘșȎȐȖȦCtrl+TǵȎȠȓȚȥȓȞȓȝȎȦȘȎȝȩȠȎȓȠȟȭțȎȗȠȖȟȡțȒȡȘ
ȐȩȕȩȐȎȭȢȡțȘȤȖȬhare.¿QG%ORFN('minecraft:chest').
dzȟșȖȜțȎțȓțȎȣȜȒȖȠȟȡțȒȡȘȘȜȒȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠ
ȝȞȜȑȞȎȚȚȡȟȜȜȏȧȓțȖȓȚȜȏȜȦȖȏȘȓȝȜȠȜȚȡȥȠȜțȓȠțȓȜȏȣȜ
ȒȖȚȜȟȠȖȝȞȜȒȜșȔȎȠȪȝȞȜȑȞȎȚȚȡȓȟșȖțȓȠȟȡțȒȡȘȎȒșȭȣȞȎ
țȓțȖȭȝȦȓțȖȤȩ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

267

ǽȜȟȘȜșȪȘȡȟȡțȒȡȘțȎȣȜȒȖȠȟȭȕȎȥȓȞȓȝȎȦȘȜȗȖȝȦȓțȖȥ
țȩȚȝȜșȓȚȥȓȞȓȝȎȦȘȓțȡȔțȜȒȐȎȔȒȩȝȜȐȓȞțȡȠȪțȎșȓȐȜ
ȟȠȞȜȘȖȖ ȥȠȜȏȩȟțȜȐȎȜȘȎȕȎȠȪȟȭȝȜȐȓȞțȡȠȜȗșȖȤȓȐȜȗ
ȟȠȜȞȜțȜȗȘȝȜșȬ

ĖĚĐĠğęĖĢĔĕĔĝěĚėĨēğđĘħġ
ĎĚĝęĚĎęĚĕěĜĚďĜČĘĘđ
DzȎȐȎȗțȎȝȖȦȓȚȢȡțȘȤȖȬȟȖȚȓțȓȚcheckWheatCrop()
ȘȜȠȜȞȎȭȟȜȜȏȧȎȓȠȥȓȞȓȝȎȦȘȓȥȠȜȒȓșȎȠȪțȎȘȎȔȒȜȚȡȥȎȟȠ
ȘȓȝȜșȭȘȜȠȜȞȜȓȜțȎȜȏȞȎȏȎȠȩȐȎȓȠǵȎȠȓȚțȎȝȖȦȓȚȓȧȓ
ȜȒțȡȢȡțȘȤȖȬplantWheatSeed()ȘȜȠȜȞȎȭȟȜȒȓȞȔȖȠȖț
ȟȠȞȡȘȤȖȖȝȜȐȩȞȎȧȖȐȎțȖȬȟȓȚȭțȝȦȓțȖȤȩǺȩțȎȝȖȦȓȚ
ȓȧȓȖȠȞȓȠȪȬȢȡțȘȤȖȬȟȖȚȓțȓȚstoreWheat()ȘȜȠȜȞȎȭ
ȝȞȜȖțȟȠȞȡȘȠȖȞȡȓȠȥȓȞȓȝȎȦȘȡȜȠȜȚȥȠȜȜțȎȒȜșȔțȎȒȓșȎȠȪ
ȝȜȟșȓȟȏȜȞȎȡȞȜȔȎȭȋȠȖȠȞȖȢȡțȘȤȖȖȏȡȒȡȠȐȩȕȩȐȎȠȪȟȭȖȕ
ȜȟțȜȐțȜȗȥȎȟȠȖȝȞȜȑȞȎȚȚȩfarmwheat.

ĚĞĝėđĒĔĎČęĔđğĜĚĒČī
ȂȡțȘȤȖȭcheckWheatCrop()ȝȞȜȐȓȞȭȓȠȝȞȜȟȠȞȎțȟȠȐȜȝȜȒ
ȥȓȞȓȝȎȦȘȜȗȖȜȝȞȓȒȓșȭȓȠȘȎȘȜȓȒȓȗȟȠȐȖȓȒȜșȔțȎȝȞȜȖȕ
ȐȓȟȠȖȥȓȞȓȝȎȦȘȎțȎȣȜȒȭȟȪȐȒȎțțȜȗȝȜȕȖȤȖȖǺȩȝȓȞȓȒȎ
ȒȖȚȢȡțȘȤȖȬcheckWheatCrop()ȢȡțȘȤȖȖsweepField()
ȥȠȜȏȩȜțȎȐȩȕȩȐȎșȎȟȪȐȘȎȔȒȜȗȝȜȕȖȤȖȖȝȜșȭȘȜȠȜȞȜȓȜȏ
ȞȎȏȎȠȩȐȎȓȠȥȓȞȓȝȎȦȘȎ
ǽȜȘȎȕȎțțȩȗțȖȔȓȘȜȒȖțȟȠȞȡȘȠȖȞȡȓȠȥȓȞȓȝȎȦȘȡȝȜȟȎ
ȒȖȠȪȟȓȚȓțȎȓȟșȖȝȜȒȥȓȞȓȝȎȦȘȜȗțȓȠȝȦȓțȖȤȩ
farmwheat
32. -- checkWheatCrop() ɫɨɛɢɪɚɟɬɭɪɨɠɚɣ
33. -- ɢɫɚɠɚɟɬɫɟɦɟɧɚ
34. function checkWheatCrop()
35.
local result, block = turtle.inspectDown()
36.
37.
if not result then
38.
turtle.digDown() -- ɩɨɞɝɨɬɨɜɤɚ ɩɚɲɧɢ
39.
plantWheatSeed()

268

DZǹǮǰǮ

ȂȡțȘȤȖȭturtle.inspectDown()ȜȟȡȧȓȟȠȐșȭȓȠțȓȝȜ
ȟȞȓȒȟȠȐȓțțȡȬȝȞȜȐȓȞȘȡȏșȜȘȎȝȜȒȥȓȞȓȝȎȦȘȜȗdzȟșȖȠȎȚ
țȓȠȏșȜȘȎȝȓȞȓȚȓțțȜȗresultȐȟȠȞȜȘȓȝȞȖȟȐȎȖȐȎȓȠȟȭ
ȕțȎȥȓțȖȓfalseȎȘȜȒȐȟȠȞȜȘȓȜȏȞȎȏȎȠȩȐȎȓȠȏșȜȘȕȓȚ
șȖ ȖșȖȠȞȎȐȩ ǸȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬplantWheatSeed()ȘȜȠȜȞȡȬȚȩȟȜȕȒȎȒȖȚȐȟșȓȒȡȬȧȓȚȞȎȕȒȓșȓ
ȂȡțȘȤȖȭplantWheatSeed()ȟȓȓȠȟȓȚȓțȎȝȦȓțȖȤȩțȎȏșȜ
ȘȓȝȎȦțȖȝȜȒȥȓȞȓȝȎȦȘȜȗ
dzȟșȖȝȞȜȟȠȞȎțȟȠȐȜȝȜȒȥȓȞȓȝȎȦȘȜȗțȓȝȡȟȠȜ ȠȜȓȟȠȪȟȜ
ȒȓȞȔȖȠȝȦȓțȖȤȡȖșȖȟȓȚȓțȎ ȥȓȞȓȝȎȦȘȎȝȞȜȐȓȞȭȓȠȟȜȒȓȞ
ȔȖȠșȖȝȞȜȟȠȞȎțȟȠȐȜȕȞȓșȡȬȝȦȓțȖȤȡ
farmwheat
40.
elseif block ~= nil and block['name'] ==
'minecraft:wheat' and
block['metadata']
== 7 then
41.
-- ɫɛɨɪɭɪɨɠɚɹɢɩɨɫɟɜɫɟɦɹɧ
42.
turtle.digDown()
43.
print('Collected wheat.')
44.
plantWheatSeed()
45.
end
46. end

ǸȜȒȐȟȠȞȜȘȓȟțȎȥȎșȎȝȞȜȐȓȞȭȓȠȝȞȖȟȐȜȓțȜșȖȝȓȞȓ
ȚȓțțȜȗblockȕțȎȥȓțȖȓnilȎȕȎȠȓȚȝȞȜȐȓȞȭȓȠȟȜȐȝȎȒȎȓȠ
șȖȕțȎȥȓțȖȓblock['name']ȟȖȒȓțȠȖȢȖȘȎȠȜȞȜȚȏșȜȘȎȝȦȓ
țȖȤȩdzȟșȖȝȜȒȥȓȞȓȝȎȦȘȜȗțȖȥȓȑȜțȓȠȢȡțȘȤȖȭturtle.
inspectDown()ȐȟȠȞȜȘȓȝȞȖȟȐȎȖȐȎȓȠȝȓȞȓȚȓțțȜȗblock
ȕțȎȥȓțȖȓnilȋȠȜȚȜȑșȜȏȩȝȞȖȐȓȟȠȖȘȠȜȚȡȥȠȜblock
['name']ȐȟȠȞȜȘȓȐȩȕȜȐȓȠȜȦȖȏȘȡȝȜȠȜȚȡȥȠȜȝȓȞȓȚȓț
țȎȭblockȏȡȒȓȠȖȚȓȠȪȕțȎȥȓțȖȓnilȐȚȓȟȠȜȒȜȝȡȟȠȖȚȜȑȜ
ȠȎȏșȖȥțȜȑȜȕțȎȥȓțȖȭDzșȭȝȞȓȒȜȠȐȞȎȧȓțȖȭȫȠȜȗȜȦȖȏȘȖ
ȘȜȒȐȟȠȞȜȘȓȟțȎȥȎșȎȝȞȜȐȓȞȭȓȠȥȠȜȝȓȞȓȚȓțțȜȗblock
țȓȝȞȖȟȐȜȓțȜȕțȎȥȓțȖȓnil.
ȀȎȏșȖȥțȜȓȕțȎȥȓțȖȓȝȓȞȓȚȓțțȜȗblockȠȎȘȔȓȟȜȒȓȞȔȖȠ
ȘșȬȥ'metadata'ȕțȎȥȓțȖȓȘȜȠȜȞȜȑȜȡȘȎȕȩȐȎȓȠȘȎȘȒȜșȑȜ
ȞȜȟșȎȝȦȓțȖȤȎdzȟșȖȟȓȚȓțȎȝȦȓțȖȤȩȏȩșȖȝȜȟȎȔȓțȩ
ȠȜșȪȘȜȥȠȜȘșȬȥ'metadata'ȖȚȓȓȠȕțȎȥȓțȖȓ0dzȟșȖȔȓȜț

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

269

ȖȚȓȓȠȕțȎȥȓțȖȓ7ȝȦȓțȖȤȎȟȜȕȞȓșȎȖȝȜȟșȓȒțȓȓȡȟșȜȐȖȓȐ
ȟȠȞȜȘȓȐȩȝȜșțȭȓȠȟȭ true 
ǰȤȓșȜȚȘȜȒȐȟȠȞȜȘȓȝȞȜȐȓȞȭȓȠȟȜȏșȬȒȓțȖȓȠȞȓȣȞȎȕ
țȩȣȡȟșȜȐȖȗțȎȣȜȒȖȠȟȭșȖȝȜȒȥȓȞȓȝȎȦȘȜȗȘȎȘȜȗțȖȏȡȒȪ
ȏșȜȘȭȐșȭȓȠȟȭșȖȜțȏșȜȘȜȚȝȦȓțȖȤȩȖȟȜȕȞȓșșȖȫȠȜȠȏșȜȘ
ȝȦȓțȖȤȩdzȟșȖȘȎȘȜȓșȖȏȜȖȕȫȠȖȣȡȟșȜȐȖȗȐȜȕȐȞȎȧȎȓȠ
ȕțȎȥȓțȖȓfalseȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘȟȠȞȜȘȓȘȜȠȜȞȎȭ
ȕȎȐȓȞȦȎȓȠȏșȜȘȘȜȒȎȖȥȓȞȓȝȎȦȘȎțȖȥȓȑȜțȓȒȓșȎȓȠ
dzȟșȖȐȟȠȞȜȘȓȟȜȏșȬȒȓțȩ true ȐȟȓȡȟșȜȐȖȭȘȜȒȐ
ȟȠȞȜȘȓȟȜȏȖȞȎȓȠȝȦȓțȖȤȡȐȩȕȩȐȎȭȢȡțȘȤȖȬturtle.
digDown()ǻȓȕȎȐȖȟȖȚȜȜȠȠȜȑȜȒȜȏȩȐȎȬȠșȖȥȓȞȓȝȎȦȘȖ
ȞȡȒȡȞȡȏȭȠȒȓȞȓȐȜȖșȖȟȜȏȖȞȎȬȠȡȞȜȔȎȗȝȦȓțȖȤȩȢȡțȘ
ȤȖȖturtle.dig()ȝȞȜȟȠȜȟȜȏȖȞȎȬȠȏșȜȘȖȝȜȒȥȓȞȓȝȎȦȘȜȗ
ȟȝȜȚȜȧȪȬȖțȟȠȞȡȚȓțȠȎȖȕȓȓȖțȐȓțȠȎȞȭǮȐȜȠȘȜȒȐȟȠȞȜȘȓ
ȐȩȕȩȐȎȓȠȢȡțȘȤȖȬplantWheatSeed()ȘȜȠȜȞȎȭțȓȠȜșȪ
ȘȜȟȜȏȖȞȎȓȠȝȦȓțȖȤȡțȜȖȕȎȟȓȖȐȎȓȠțȎȓȓȚȓȟȠȓțȜȐȡȬDzȎ
șȓȓȚȩȞȎȟȟȚȜȠȞȖȚȫȠȡȢȡțȘȤȖȬ

ěĚĝđĎěĤđęĔĢħ
ǽȜȟȘȜșȪȘȡȐȟȠȞȜȘȎȣȖȠȞȓȏȡȓȠȟȭȜȒȖțȖȠȜȠȔȓȘȜȒ
ȞȎȕȡȚțȜȝȜȚȓȟȠȖȠȪȓȑȜȐȜȠȒȓșȪțȡȬȢȡțȘȤȖȬplantWheatSeed()ȠȜȑȒȎțȓȝȞȖȒȓȠȟȭțȎȏȖȞȎȠȪȓȑȜȒȐȎȔȒȩǰȜȜȏȧȓ
ȝȞȖțȎȝȖȟȎțȖȖȝȞȜȑȞȎȚȚțȎȭȕȩȘȓ/XDȘȜȒȏȡȒȓȠȏȜșȓȓȥȖ
ȠȎȏȓșȪțȩȚȖȓȟșȖȖȟȝȜșȪȕȜȐȎȠȪȢȡțȘȤȖȖȒșȭȖȕȏȎȐșȓțȖȭ
ȜȠȒȡȏșȖȞȡȬȧȓȑȜȘȜȒȎ
ǽȓȞȐȎȭȕȎȒȎȥȎȘȜȠȜȞȡȬȐȩȝȜșțȭȓȠȢȡțȘȤȖȭplantWheatSeed()ȐȟȠȞȜȘȓ²ȫȠȜȐȩȏȜȞȭȥȓȗȘȖȖțȐȓțȠȎȞȭȥȓ
ȞȓȝȎȦȘȖȘȜȠȜȞȎȭȟȜȒȓȞȔȖȠȟȓȚȓțȎȝȦȓțȖȤȩȋȠȎȕȎȒȎȥȎ
ȞȓȦȎȓȠȟȭȝȓȞȓȒȎȥȓȗȐȢȡțȘȤȖȬhare.selectItem()ȕțȎȥȓ
țȖȭ'minecraft:wheat _ seeds'.
farmwheat
49. -- plantWheatSeed() ɩɪɨɛɭɟɬɩɨɫɚɞɢɬɶ
50. -- ɫɟɦɟɧɚɩɲɟɧɢɰɵɩɨɞɱɟɪɟɩɚɲɤɨɣ
51. function plantWheatSeed()
52.
if not hare.selectItem('minecraft:wheat_seeds')
then
53.
print('Warning: Low on seeds.')

270

DZǹǮǰǮ

dzȟșȖȟȓȚȭțțȓȠȥȓȞȓȝȎȦȘȎȐȩȐȜȒȖȠȝȞȓȒȡȝȞȓȔȒȎȬȧȓȓ
ȟȜȜȏȧȓțȖȓȝȜȟȓȐțȓȝȞȜȖȕȐȜȒȖȠȖȝȞȜȒȜșȔȎȓȠȞȎȏȜȠȡȐȟȜ
ȜȠȐȓȠȟȠȐȖȖȟȜȟȠȎșȪțȜȗȥȎȟȠȪȬȝȞȜȑȞȎȚȚȩǵȎȐȓȞȦȓțȖȓ
ȝȞȜȑȞȎȚȚȩȐȫȠȜȚȟșȡȥȎȓțȓȠȞȓȏȡȓȠȟȭȝȜȠȜȚȡȥȠȜȥȓȞȓ
ȝȎȦȘȎȝȜșȡȥȖȠȟȓȚȓțȎȟȜȏȞȎȐȕȞȓșȡȬȝȦȓțȖȤȡǻȜȓȟșȖ
ȐȟȠȞȜȘȓȢȡțȘȤȖȭselectItem()ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓ
trueȟȓȚȓțȎȏȡȒȡȠȐȕȭȠȩȖȕȖțȐȓțȠȎȞȭȥȓȞȓȝȎȦȘȖ
ǯșȜȘȘȜȒȎȘȜȠȜȞȩȗȟșȓȒȡȓȠȕȎȖțȟȠȞȡȘȤȖȓȗelseȐȟȠȞȜ
ȘȓȕȎȟȓȐȎȓȠȟȓȚȓțȎȖȜȠȜȏȞȎȔȎȓȠȖȑȞȜȘȡȟȜȜȏȧȓțȖȓȜȏ
ȫȠȜȚ
farmwheat
54.
else
55.
turtle.placeDown() -- ɩɨɫɟɜ ɫɟɦɹɧ
56.
print('Planted seed.')
57.
end
58. end

ǰȟȠȞȜȘȓȢȡțȘȤȖȭturtle.placeDown()ȕȎȟȓȐȎȓȠȟȓ
ȚȓțȎȓȟșȖȜțȖȜȏțȎȞȡȔȓțȩȐȠȓȘȡȧȓȗȭȥȓȗȘȓȖțȐȓțȠȎȞȭ
ȎȝȜȒȥȓȞȓȝȎȦȘȜȗțȎȣȜȒȖȠȟȭȝȎȦțȭǵȎȠȓȚȘȜȒȐȟȠȞȜȘȓ
ȐȩȐȜȒȖȠȟȜȜȏȧȓțȖȓȜȠȜȚȥȠȜȟȓȚȓțȎȝȜȟȎȔȓțȩȎȘȜȒȐ
ȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȏșȜȘȘȜȒȎȢȡțȘȤȖȖplantWheatSeed().

ġĜČęđęĔđěĤđęĔĢħ
ǽȜȟșȓȠȜȑȜȘȎȘȥȓȞȓȝȎȦȘȎȜȏȞȎȏȜȠȎȓȠȐȟȓȝȜșȓȓȗțȡȔțȜ
ȝȜȚȓȟȠȖȠȪȟȜȏȞȎțțȡȬȝȦȓțȖȤȡȐȟȡțȒȡȘDzșȭȫȠȜȑȜȝȞȜ
ȑȞȎȚȚȎȐȩȕȩȐȎȓȠȢȡțȘȤȖȬstoreWheat()ȋȠȎȢȡțȘȤȖȭ
ȖțȟȠȞȡȘȠȖȞȡȓȠȥȓȞȓȝȎȦȘȡțȎȗȠȖȟȡțȒȡȘȖȝȜȐȓȞțȡȠȪȟȭȘ
țȓȚȡșȖȤȓȐȜȗȟȠȜȞȜțȜȗ
farmwheat
61. -- storeWheat() ɩɨɦɟɳɟɧɢɟɭɪɨɠɚɹ
62. -- ɜɫɭɧɞɭɤ
63. function storeWheat()
64.
-- ɩɨɜɨɪɨɬ ɤ ɫɭɧɞɭɤɭ
LIQRWKDUH¿QG%ORFN PLQHFUDIWFKHVW
HUURU &RXOGQRW¿QGFKHVW
67.
end

WKHQ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

271

ǸȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬhare.¿QG%ORFN()
ȖȝȓȞȓȒȎȓȠȓȗȕțȎȥȓțȖȓ'minecraft:chest'ȖȕȕȎȥȓȑȜȥȓ
ȞȓȝȎȦȘȎțȎȥȖțȎȓȠȐȞȎȧȓțȖȓȐȜȘȞȡȑȟȐȜȓȗȜȟȖȖȜȟȠȎțȎȐ
șȖȐȎȓȠȟȭȘȜȑȒȎȜȏțȎȞȡȔȖȐȎȓȠȟȡțȒȡȘdzȟșȖȥȓȞȓȝȎȦȘȎ
țȓȚȜȔȓȠțȎȗȠȖȟȡțȒȡȘȐȩȕȜȐȢȡțȘȤȖȖhare.¿QG%ORFN()
ȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseȎȘȜȒȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠ
ȝȞȜȑȞȎȚȚȡȟȟȜȜȏȧȓțȖȓȚȜȏȜȦȖȏȘȓ
dzȟșȖȟȡțȒȡȘȜȏțȎȞȡȔȓțȐȩȝȜșțȓțȖȓȝȞȜȑȞȎȚȚȩȝȞȜ
ȒȜșȔȎȓȠȟȭǽȞȖȫȠȜȚȥȓȞȓȝȎȦȘȎȜȘȎȕȩȐȎȓȠȟȭȜȏȞȎȧȓțțȜȗ
ȘȟȡțȒȡȘȡDzȎșȓȓȜțȎȐȩȏȖȞȎȓȠȭȥȓȗȘȡȖțȐȓțȠȎȞȭȟȜȒȓȞ
ȔȎȧȡȬȝȦȓțȖȤȡȖȝȓȞȓȚȓȧȎȓȠȓȓȟȜȒȓȞȔȖȚȜȓȐȟȡțȒȡȘ
ȐȩȕȩȐȎȭȢȡțȘȤȖȬturtle.drop().
farmwheat
69.
-- ɩɨɦɟɳɟɧɢɟɩɲɟɧɢɰɵɜɫɭɧɞɭɤ
70.
while hare.selectItem('minecraft:wheat') do
71.
print('Dropping off ' .. turtle.getItemCount() ..
' wheat...')
72.
if not turtle.drop() then
73.
error('Wheat chest is full!')
74.
end
75.
end

ǰȟȠȞȜȘȓțȎȥȖțȎȓȠȟȭȤȖȘșwhileȡȟșȜȐȖȓȘȜȠȜȞȜ
ȑȜȝȞȜȐȓȞȭȓȠȕțȎȥȓțȖȓȐȜȕȐȞȎȧȎȓȚȜȓȐȩȕȜȐȜȚȢȡțȘȤȖȖ
hare.selectItem('minecraft:wheat')ǽȜȘȎȝȦȓțȖȤȎțȎ
ȣȜȒȖȠȟȭȐȖțȐȓțȠȎȞȓȥȓȞȓȝȎȦȘȖȫȠȎȢȡțȘȤȖȖȐȜȕȐȞȎȧȎȓȠ
ȕțȎȥȓțȖȓtrueȖȤȖȘșwhileȐȩȝȜșțȭȓȠȟȭǸȜȒȐȟȠȞȜȘȓ
ȐțȡȠȞȖȫȠȜȑȜȤȖȘșȎȟȜȜȏȧȎȓȠȖȑȞȜȘȡȘȜșȖȥȓȟȠȐȜȝȦȓțȖȤȩ
ȐȠȓȘȡȧȓȗȭȥȓȗȘȓȎȘȜȒȐȟȠȞȜȘȓȝȩȠȎȓȠȟȭȝȜȚȓȟȠȖȠȪȫȠȡ
ȝȦȓțȖȤȡȐȟȡțȒȡȘȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗ
dzȟșȖȟȡțȒȡȘȡȔȓȕȎȝȜșțȓțȐȩȕȜȐȢȡțȘȤȖȖturtle.
drop()ȐȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseǰȫȠȜȚȟșȡ
ȥȎȓȘȜȒȐȟȠȞȜȘȓȕȎȐȓȞȦȎȓȠȝȞȜȑȞȎȚȚȡȟȟȜȜȏȧȓțȖȓȚȜȏ
ȜȦȖȏȘȓǰȝȞȜȠȖȐțȜȚȟșȡȥȎȓȤȖȘșȐȩȝȜșțȭȓȠȟȭȝȜȘȎȝȦȓ
țȖȤȎȓȧȓȓȟȠȪȎȕȎȠȓȚȖȟȝȜșțȓțȖȓȝȓȞȓȣȜȒȖȠȘȟȠȞȜȘȓ
ǸȜȑȒȎȥȓȞȓȝȎȦȘȎȐȕȎȖȚȜȒȓȗȟȠȐȡȓȠȟȟȡțȒȡȘȜȚȜțȎȝȜ
ȐȓȞțȡȠȎȟȝȖțȜȗȘȝȜșȬȅȠȜȏȩȟțȜȐȎȜȘȎȕȎȠȪȟȭȐȝȜșȓȓȗ
țȡȔțȜȞȎȕȐȓȞțȡȠȪȟȭ

272

DZǹǮǰǮ

farmwheat
77.
-- ɩɨɜɨɪɨɬɤɩɨɥɸɫɧɨɜɚ
78.
turtle.turnLeft()
79.
turtle.turnLeft()
80. end

ǸȜȒȐȟȠȞȜȘȎȣȖȒȐȎȔȒȩȝȜȐȜȞȎȥȖȐȎȓȠȥȓȞȓȝȎȦȘȡ
țȎșȓȐȜȥȠȜȏȩȜțȎȟțȜȐȎ©ȟȚȜȠȞȓșȎªțȎȝȜșȓǸȜȒȐȟȠȞȜȘȓ
ȕȎȐȓȞȦȎȓȠȢȡțȘȤȖȬstoreWheat().
ȀȓȝȓȞȪȡțȎȟȓȟȠȪȐȟȓȠȞȖȢȡțȘȤȖȖȘȜȠȜȞȩȓȏȡȒȡȠȐȩȕȩ
ȐȎȠȪȟȭȖȕȜȟțȜȐțȜȗȝȞȜȑȞȎȚȚȩcheckWheatCrop()plantWheatSeed()ȖstoreWheat()DzȎȐȎȗȕȎȗȚȓȚȟȭȟȓșȪȟȘȖȚ
ȣȜȕȭȗȟȠȐȜȚ

ĜČčĚĞČĎĢĔĖėđ
ǾȎȟȟȚȜȠȞȖȚȜȟțȜȐțȜȗȤȖȘșȝȞȜȑȞȎȚȚȩ ȐȟȠȞȜȘȎȣ² 
ȘȜȠȜȞȩȗȏȡȒȓȠȐȩȕȩȐȎȠȪȐȟȓțȓȜȏȣȜȒȖȚȩȓȢȡțȘȤȖȖǰȫȠȜȚ
ȤȖȘșȓȥȓȞȓȝȎȦȘȎȟțȎȥȎșȎȝȞȜȐȓȞȭȓȠȥȠȜȡțȓȓȒȜȟȠȎȠȜȥ
țȜȠȜȝșȖȐȎdzȟșȖȒșȭȜȏȞȎȏȜȠȘȖȝȜșȭȠȜȝșȖȐȎȒȜȟȠȎȠȜȥțȜ
țȎȦȞȜȏȜȠțȎȥȖțȎȓȠȐȩȞȎȧȖȐȎȠȪȖȟȜȏȖȞȎȠȪȡȞȜȔȎȗȟȜ
ȣȞȎțȭȠȪȟȜȏȞȎțțȡȬȝȦȓțȖȤȡȐȟȡțȒȡȘȓȝȜȠȜȚȜȠȒȩȣȎȠȪ
ȚȖțȡȠȥȠȜȏȩȝȦȓțȖȤȎȡȟȝȓșȎȟȜȕȞȓȠȪȖȝȜȐȠȜȞȭȠȪȐȓȟȪ
ȝȞȜȤȓȟȟȟțȎȥȎșȎ
ǻȎȝȓȞȐȜȚȦȎȑȓȤȖȘșȎȥȓȞȓȝȎȦȘȎȝȞȜȐȓȞȭȓȠȥȠȜȡțȓȓ
ȒȜȟȠȎȠȜȥțȜȠȜȝșȖȐȎȒșȭȝȓȞȓȚȓȧȓțȖȭȝȜȐȟȓȚȡȝȜșȬȖȐȜȕ
ȐȞȎȧȓțȖȭȐȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓ
farmwheat
83. -- ɧɚɱɚɥɨɪɚɛɨɬɵɧɚɮɟɪɦɟ
84. while true do
85.
-- ɩɪɨɜɟɪɤɚ ɭɪɨɜɧɹ ɬɨɩɥɢɜɚ
86.
if turtle.getFuelLevel() < (length * width +
length + width) then
87.
error('Turtle needs more fuel!')
88.
end

ȁȟșȜȐȖȓȤȖȘșȎwhileȐȟȠȞȜȘȓȐȟȓȑȒȎȖȟȠȖțțȜȀȜ
ȓȟȠȪȫȠȜȏȓȟȘȜțȓȥțȩȗȤȖȘșȝȜȫȠȜȚȡȝȞȜȑȞȎȚȚȎȕȎȐȓȞȦȎ
ȓȠȟȭȠȜșȪȘȜȓȟșȖȐȩȕȩȐȎȓȠȟȭȢȡțȘȤȖȭerror()ȖșȖȖȑȞȜȘ
ȡȒȓȞȔȖȐȎȓȠȟȜȥȓȠȎțȖȓȘșȎȐȖȦCtrl+T.

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

273

ȅȠȜȏȩȐȩȝȜșțȖȠȪȝȓȞȐȩȗȦȎȑțȎȚțȡȔțȜȟȜȟȠȎȐȖȠȪ
ȡȞȎȐțȓțȖȓȒșȭȞȎȟȥȓȠȎȘȜșȖȥȓȟȠȐȎȠȜȝșȖȐȎȘȜȠȜȞȜȓȝȜȠȞȓ
ȏȡȓȠȟȭȥȓȞȓȝȎȦȘȓȥȠȜȏȩȜȏȞȎȏȜȠȎȠȪȐȟȓȝȜșȓDzșȭȡȝȞȜȧȓ
țȖȭȞȎȟȥȓȠȎȚȩțȓȟȘȜșȪȘȜȝȓȞȓȜȤȓțȖȚȝȜȠȞȓȏțȜȟȠȖȥȓȞȓ
ȝȎȦȘȖȐȠȜȝșȖȐȓ
ǰȜȝȓȞȐȩȣȜȝȞȓȒȓșȖȚȟȘȜșȪȘȜȠȜȝșȖȐȎȠȞȓȏȡȓȠȟȭȥȓȞȓ
ȝȎȦȘȓȒșȭȝȓȞȓȚȓȧȓțȖȭȝȜȘȎȔȒȜȚȡȟȠȜșȏȤȡȝȜșȭǼțȎȖȟ
ȝȜșȪȕȡȓȠȜȒțȡȓȒȖțȖȤȡȠȜȝșȖȐȎȝȞȖȘȎȔȒȜȚȝȓȞȓȚȓȧȓțȖȖ
țȎȜȒȖțȏșȜȘȠȎȘȖȚȜȏȞȎȕȜȚȒșȭȝȓȞȓȚȓȧȓțȖȭȝȜȟȠȜșȏȤȡ
ȒșȖțȎȘȜȠȜȞȜȑȜȟȜȟȠȎȐșȭȓȠlengthȏșȜȘȜȐȝȜȠȞȓȏȡȓȠȟȭȟȜ
ȐȓȞȦȖȠȪlength - 1ȦȎȑȜȐȖȟȜȜȠȐȓȠȟȠȐȓțțȜȝȜȠȞȎȠȖȠȪ
length - 1ȓȒȖțȖȤȠȜȝșȖȐȎǻȜȥȓȞȓȝȎȦȘȎȖȟȝȜșȪȕȡȓȠ
ȠȜȝșȖȐȜȖȝȞȖȝȓȞȓȚȓȧȓțȖȖȖȕȜȒțȜȑȜȟȠȜșȏȤȎȐȒȞȡȑȜȗ
ȠȜȑȒȎȜȏȧȓȓȘȜșȖȥȓȟȠȐȜțȓȜȏȣȜȒȖȚȜȓȒșȭȝȓȞȓȒȐȖȔȓțȖȭ
ȝȜȐȟȓȚȡȟȠȜșȏȤȡȟȜȟȠȎȐȖȠlength - 1 + 1ȓȒȖțȖȤ
ǵȎȠȓȚȝȜșȡȥȓțțȜȓȥȖȟșȜȡȚțȜȔȎȓȚțȎȘȜșȖȥȓȟȠȐȜȟȠȞȜȘ
ȐȝȜșȓȀȎȘȖȚȜȏȞȎȕȜȚȜȏȧȓȓȘȜșȖȥȓȟȠȐȜȝȓȞȓȚȓȧȓțȖȗȖ
ȟȜȜȠȐȓȠȟȠȐȓțțȜȓȒȖțȖȤȠȜȝșȖȐȎțȓȜȏȣȜȒȖȚȩȣȒșȭȜȏȞȎ
ȏȜȠȘȖȝȜșȭȟȜȟȠȎȐȖȠlength * width.
ǸȞȜȚȓȠȜȑȜȥȓȞȓȝȎȦȘȓțȓȜȏȣȜȒȖȚȜȠȜȝșȖȐȜȥȠȜȏȩȐȓȞ
țȡȠȪȟȭȐȖȟȣȜȒțȜȓȝȜșȜȔȓțȖȓdzȟșȖȥȓȞȓȝȎȦȘȎȕȎȐȓȞȦȎȓȠ
ȞȎȏȜȠȡȐȒȎșȪțȓȚȜȠȖȟȣȜȒțȜȑȜȝȜșȜȔȓțȖȭȘȜțȤȓȝȜșȭȓȗ
țȡȔțȜȝȓȞȓȚȓȟȠȖȠȪȟȭȐțȖȕȐȒȜșȪȜȒțȜȑȜȟȠȜșȏȤȎ ȘȜșȖȥȓ
ȟȠȐȜȦȎȑȜȐȐȒșȖțȡ ȖțȎȕȎȒȐȒȜșȪȜȒțȜȗȟȠȞȜȘȖ ȘȜșȖȥȓ
ȟȠȐȜȦȎȑȜȐȐȦȖȞȖțȡ ȀȜȑȒȎȢȜȞȚȡșȎȒșȭȞȎȟȥȓȠȎțȓȜȏ
ȣȜȒȖȚȜȑȜȘȜșȖȥȓȟȠȐȎȠȜȝșȖȐȎȝȞȖȜȏȞȓȠȎȓȠȐȖȒlength *
width + length + widthǻȎȞȖȟȝȜȘȎȕȎțȎȒȖȎȑȞȎȚ
ȚȎȫȠȜȗȢȜȞȚȡșȩ
ȋȠȎȢȜȞȚȡșȎȞȎȟȟȥȖȠȎțȎțȎȘȞȎȗțȖȗȟșȡȥȎȗȝȜȠȜȚȡ
ȥȠȜȥȓȞȓȝȎȦȘȎȚȜȔȓȠȕȎȘȜțȥȖȠȪȞȎȏȜȠȡțȓȐȟȎȚȜȗȜȠȒȎ
șȓțțȜȗȠȜȥȘȓȝȜșȭȖȠȜȑȒȎȥȠȜȏȩȐȓȞțȡȠȪȟȭȐȖȟȣȜȒțȜȓ
ȝȜșȜȔȓțȖȓȓȗȏȡȒȓȠȒȜȟȠȎȠȜȥțȜȝȞȜȗȠȖțȎȕȎȒȐȒȜșȪȜȒțȜȗ
ȟȠȞȜȘȖǸȞȜȚȓȠȜȑȜȝȡȠȪȝȜȘȞȎȟțȜȗȟȠȞȓșȘȓȐȒȜșȪȘȞȎȗțȓ
ȑȜșȓȐȜȑȜȟȠȜșȏȤȎȟȜȟȠȎȐȖȠlength - 1ȏșȜȘȜȐȟȡȥȓȠȜȚțȎ
ȥȎșȪțȜȗȝȜȕȖȤȖȖȒȎȖȟȖțȭȭȟȠȞȓșȘȎȒȜșȔțȎȏȩȠȪȒșȖțȜȗ
length - 1ȏșȜȘȜȐȒșȭȡȥȓȠȎȡȑșȜȐȜȑȜȏșȜȘȎǻȜȫȠȎȢȜȞȚȡ
șȎȐȝȜșțȓȝȞȖȓȚșȓȚȎȝȜȠȜȚȡȥȠȜșȡȥȦȓȝȓȞȓȜȤȓțȖȠȪȥȓȚ
țȓȒȜȜȤȓțȖȠȪȘȜșȖȥȓȟȠȐȜțȓȜȏȣȜȒȖȚȜȑȜȠȜȝșȖȐȎ

274

DZǹǮǰǮ

Начало
length * width + length + width

ˀ̛̭͘ϭϰ͘ϰ͘ʪ̸̶̨̡̡̨̛̛̛̬̥̥͕̪̼̺̙̱̭̯̪̖̬̌̐̌̌̌̏̌̀̌́̌̔̀̌̽̌̚length *
width + length + width

dzȟșȖȡȥȓȞȓȝȎȦȘȖțȓȒȜȟȠȎȠȜȥțȜȠȜȝșȖȐȎȡȟșȜȐȖȓȐ
ȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠȕțȎȥȓțȖȓfalseȎȘȜȒȐȟȠȞȜȘȓȕȎ
ȐȓȞȦȎȓȠȝȞȜȑȞȎȚȚȡȐȩȕȩȐȎȭȢȡțȘȤȖȬerror()ȖȐȩȐȜȒȖȠ
ȟȜȜȏȧȓțȖȓȜȝȜȐȓȧȎȬȧȓȓȖȑȞȜȘȎȥȠȜȥȓȞȓȝȎȦȘȓȠȞȓȏȡȓȠȟȭ
ȏȜșȪȦȓȠȜȝșȖȐȎdzȟșȖȔȓȡȟșȜȐȖȓȐȟȠȞȜȘȓȐȜȕȐȞȎȧȎȓȠ
ȕțȎȥȓțȖȓtrueȥȓȞȓȝȎȦȘȎȚȜȔȓȠțȎȥȎȠȪȞȎȏȜȠȡȐȩȕȐȎȐ
ȢȡțȘȤȖȬhare.sweepField()ȐȟȠȞȜȘȓ
farmwheat
ɩɨɫɟɜɩɲɟɧɢɰɵ
SULQW 6ZHHSLQJ¿HOG
92.
hare.sweepField(length, width, checkWheatCrop)
93.
storeWheat()

ǸȎȘȖȢȡțȘȤȖȖȖȕȝȞȓȒȩȒȡȧȖȣȑșȎȐȢȡțȘȤȖȭhare.
sweepField()ȝȞȖțȖȚȎȓȠȕțȎȥȓțȖȭȒșȖțȩȖȦȖȞȖțȩȝȜ
șȭȐȐȜȒȖȚȩȓȝȜșȪȕȜȐȎȠȓșȓȚȖȡȝȞȎȐșȭȓȠȝȓȞȓȚȓȧȓțȖȓȚ
ȥȓȞȓȝȎȦȘȖȝȜȐȟȓȚȡȝȞȜȟȠȞȎțȟȠȐȡȝȜșȭǸȜȒȐȟȠȞȜȘȓ
ȝȓȞȓȒȎȓȠȢȡțȘȤȖȬcheckWheatCrop()ȢȡțȘȤȖȖsweepField().
ǻȓȕȎȏȩȐȎȗȥȠȜȝȞȖȡȘȎȕȎțȖȖȖȚȓțȖȢȡțȘȤȖȖcheckWheatCrop()ȐȘȎȥȓȟȠȐȓȝȎȞȎȚȓȠȞȎțȓțȎȒȜȡȘȎȕȩȐȎȠȪ
ȘȞȡȑșȩȓȟȘȜȏȘȖȖțȎȥȓȖțȠȓȞȝȞȓȠȎȠȜȞ/XDȝȞȜȟȠȜȐȩȕȜ
ȐȓȠȫȠȡȢȡțȘȤȖȬȖȝȓȞȓȒȎȟȠȢȡțȘȤȖȖhare.sweepField()
ȕțȎȥȓțȖȓȐȜȕȐȞȎȧȎȓȚȜȓcheckWheatCrop()ȎțȓȟȎȚȡ
ȢȡțȘȤȖȬ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

275

ȂȡțȘȤȖȭhare.sweepField()ȐȜȕȐȞȎȧȎȓȠȥȓȞȓȝȎȦȘȡȐ
ȖȟȣȜȒțȡȬȝȜȕȖȤȖȬȝȜȟșȓȟȏȜȞȎȡȞȜȔȎȭȟȜȐȟȓȑȜȝȜșȭǽȜ
ȟșȓȠȜȑȜȘȎȘȥȓȞȓȝȎȦȘȎȕȎȘȜțȥȖȠȜȏȞȎȏȎȠȩȐȎȠȪȝȜșȓȓȗ
țȓȜȏȣȜȒȖȚȜȝȓȞȓȚȓȟȠȖȠȪȟȜȏȞȎțțȡȬȝȦȓțȖȤȡȖȕȟȐȜȓȑȜȖț
ȐȓțȠȎȞȭȐȟȡțȒȡȘȘȜȠȜȞȩȗțȎȣȜȒȖȠȟȭȞȭȒȜȚȟȖȟȣȜȒțȜȗȝȜ
ȕȖȤȖȓȗDzșȭȫȠȜȑȜȚȩȖțȎȝȖȟȎșȖȢȡțȘȤȖȬstoreWheat()
ȘȜȠȜȞȡȬȐȩȕȩȐȎȓȚȐȟȠȞȜȘȓ
ǺȩȣȜȠȖȚȥȠȜȏȩȥȓȞȓȝȎȦȘȎȟȎȔȎșȎȖȟȜȏȖȞȎșȎȡȞȜȔȎȗ
țȓȝȞȓȞȩȐțȜțȜȝȜȟȓȭțțȜȗȝȦȓțȖȤȓȠȞȓȏȡȓȠȟȭȐȞȓȚȭȒșȭ
ȟȜȕȞȓȐȎțȖȭǽȜȫȠȜȚȡȓȟșȖȥȓȞȓȝȎȦȘȎțȓȚȓȒșȓțțȜțȎȥțȓȠ
ȜȏȞȎȏȎȠȩȐȎȠȪȝȜșȓȟțȜȐȎȝȦȓțȖȤȎțȓȡȟȝȓȓȠȐȩȞȎȟȠȖȖ
ȥȓȞȓȝȎȦȘȎșȖȦȪțȎȝȞȎȟțȜȝȜȠȞȎȠȖȠȠȜȝșȖȐȜȅȠȜȏȩȫȠȜȑȜ
ȖȕȏȓȔȎȠȪȐȟȠȞȜȘȓȚȩȒȓșȎȓȚȚȖțȡȠțȡȬȝȎȡȕȡȖȟȜ
ȜȏȧȎȓȚȜȏȫȠȜȚȖȑȞȜȘȡȐȩȐȜȒȭȟȜȜȏȧȓțȖȓ
farmwheat
95.
print('Sleeping for 10 minutes...')
96.
os.sleep(600)
97. end

ǸȜȒȐȟȠȞȜȘȓȐȩȕȩȐȎȓȠȢȡțȘȤȖȬRVVOHHS ȝȓȞȓȒȎ
ȐȎȭȐȘȎȥȓȟȠȐȓȝȎȞȎȚȓȠȞȎȥȖȟșȓțțȜȓȕțȎȥȓțȖȓȥȠȜ
ȏȩȥȓȞȓȝȎȦȘȎȜȟȠȎțȜȐȖșȎȟȪțȎȟȓȘȡțȒ ȠȓȚȖțȡȠ 
ǰȟȠȞȜȘȓȖțȟȠȞȡȘȤȖȭHQGȕȎȐȓȞȦȎȓȠȤȖȘșZKLOHȘȜȠȜȞȩȗ
țȎȥȎșȟȭȐȟȠȞȜȘȓ
ĐĚěĚėęĔĞđėĨęĚđēČĐČęĔđ"
ďĔďČęĞĝĖĔđěĤđęĔģęħđěĚėī

В этой главе мы создали ферму размером 9×9 блоков, но программа farmwheat позволяет обрабатывать пространства
любого размера. Создай гигантское пшеничное поле, как показано на рис. 14.1. Затем запусти программу с аргументами
командной строки, соответствующими размеру поля, чтобы
черепашка обработала его!

276

DZǹǮǰǮ

ĝĚĎđĞħěĚČĎĞĚĘČĞĔēČĢĔĔĐĜğďĔġ
ĎĔĐĚĎēđĘėđĐđėĔī
ǵțȎȥȖȠȓșȪțȎȭȥȎȟȠȪȘȜȒȎȝȞȜȑȞȎȚȚȩfa r m wheat țȎ
ȣȜȒȖȠȟȭȐȢȡțȘȤȖȖhare.sweepField()ǻȜȝȜȟȘȜșȪȘȡ
ȠȩȚȜȔȓȦȪșȬȏȡȬȢȡțȘȤȖȬȝȓȞȓȒȎȠȪȢȡțȘȤȖȖhare.
sweepField()ȜțȎȚȜȔȓȠȐȩȝȜșțȭȠȪȚțȜȔȓȟȠȐȜȒȞȡȑȖȣ
ȕȎȒȎȥ
dzȟșȖȠȩȕȎȣȜȥȓȦȪȟȜȕȒȎȠȪȒȞȡȑȖȓȠȖȝȩȢȓȞȚȟȝȜȚȜȧȪȬ
ȚȜȒȎ&RPSXWHU&UDIWȠȩȚȜȔȓȦȪȝȖȟȎȠȪȖȝȓȞȓȒȎȐȎȠȪȢȡțȘ
ȤȖȖȘȜȠȜȞȩȓȏȡȒȡȠȖȟȝȜșȪȕȜȐȎȠȪȘȜȒhare.sweepField()
țȎȢȓȞȚȎȣȟȒȞȡȑȖȚȖȞȎȟȠȓțȖȭȚȖȖȒȎȔȓȔȖȐȜȠțȩȚȖ
ǰȟșȓȒȡȬȧȖȣȝȜȒȞȎȕȒȓșȎȣȭȒȎȚțȓȟȘȜșȪȘȜȟȜȐȓȠȜȐȝȜȞȎȕ
ȞȎȏȜȠȘȓȝȞȜȑȞȎȚȚȒșȭȢȓȞȚȞȎȕșȖȥțȜȑȜȠȖȝȎ

ĚĎĚĥęħđěėČęĞČĢĔĔ
ǽȦȓțȖȤȡȚȜȔțȜșȓȑȘȜȕȎȚȓțȖȠȪȜȐȜȧȎȚȖȝȞȜȟȠȜȖȕȚȓțȖȐ
țȓȟȘȜșȪȘȜȕțȎȥȓțȖȗȖȖȚȓțȐȖȚȓȬȧȓȚȟȭȘȜȒȓǻȎȝȞȖȚȓȞ
ȢȡțȘȤȖȖcheckWheatCrop()ȖplantWheatSeed()ȚȜȔțȜ
ȝȓȞȓȖȚȓțȜȐȎȠȪȐcheckVegCrop()ȖplantVeg()DzșȭȘȎȞ
ȠȜȢȓșȭȖȚȜȞȘȜȐȖȐȖȑȞȓ0LQHFUDIWțȓȖȟȝȜșȪȕȡȬȠȟȭȟȓȚȓ
țȎǸȎȞȠȜȢȓșȪȖȚȜȞȘȜȐȪȚȜȔțȜȟȎȔȎȠȪțȓȝȜȟȞȓȒȟȠȐȓțțȜ
ȐȝȎȦțȬȖȟȝȜșȪȕȡȭȢȡțȘȤȖȬturtle.placeDown()ȝȞȖ
ȡȏȜȞȘȓȟȜȕȞȓȐȦȓȑȜȡȞȜȔȎȭǻȎȞȖȟȝȜȘȎȕȎțȎȥȓȞȓȝȎȦ
ȘȎȐȩȞȎȧȖȐȎȬȧȎȭȚȜȞȘȜȐȪ
ȀȓȏȓȠȎȘȔȓȝȜȠȞȓȏȡȓȠȟȭȕȎȚȓțȖȠȪȖȒȓțȠȖȢȖȘȎȠȜȞȩȏșȜ
ȘȜȐ0LQHFUDIWȖȟȝȜșȪȕȡȓȚȩȓȝȞȜȑȞȎȚȚȜȗǻȎȝȞȖȚȓȞȐȚȓ
ȟȠȜȐȩȕȜȐȎhare.selectItem('minecraft:wheat _ seeds')
ȝȞȜȑȞȎȚȚȎȜȐȜȧȓȐȜȒȟȠȐȎȒȜșȔțȎȖȟȝȜșȪȕȜȐȎȠȪȘȜȒhare.
selectItem('minecraft:potato')ȒșȭȐȩȞȎȧȖȐȎțȖȭȘȎȞ
ȠȜȢȓșȭȖhare.selectItem('minecraft:carrot')ȒșȭȐȩ
ȞȎȧȖȐȎțȖȭȚȜȞȘȜȐȖ
ȅȓȞȓȝȎȦȘȎțȓȒȜșȔțȎȝȓȞȓȘșȎȒȩȐȎȠȪȐȓȟȪȡȞȜȔȎȗȜȐȜ
ȧȓȗȐȟȡțȒȡȘȝȜȠȜȚȡȥȠȜȓȗȝȜțȎȒȜȏȖȠȟȭȝȜȟȎȒȜȥțȩȗȚȎ
ȠȓȞȖȎșȘȜȑȒȎȜțȎȐțȜȐȪțȎȥțȓȠȜȏȞȎȏȎȠȩȐȎȠȪȝȜșȓ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

277

ˀ̛̭͘ϭϰ͘ϱ͘ˋ̡̨̨̨̡̨̛̛̛̛̖̬̖̪̹͕̪̬̬̥̥̬̦̦̦̼̬̺̦̖̥̬̌̌̌̐̌̏̌̌́̌̏̌̏̌̏̚

ĐĚĕĖČĖĚĜĚĎĔĝĞĜĔĒĖČĚĎđĢ
ǿȝȡȟȠȩȚȐȓȒȞȜȚȥȓȞȓȝȎȦȘȎȚȜȔȓȠȒȜȖȠȪȘȜȞȜȐȀȎȘȔȓ
țȎȦȞȜȏȜȠȚȜȔȓȠȟȠȞȖȥȪȦȓȞȟȠȪȟȜȐȓȤȓȟșȖȐȓȑȜȖțȐȓț
ȠȎȞȓȓȟȠȪțȜȔțȖȤȩǼȟțȎȧȎȠȪȥȓȞȓȝȎȦȘȡțȜȔțȖȤȎȚȖȖșȖ
ȐȓȒȞȜȚȘȎȘȖțȟȠȞȡȚȓțȠȎȚȖțȓțȡȔțȜȒȜȟȠȎȠȜȥțȜȝȞȜȟȠȜ
ȝȜȚȓȟȠȖȠȪȖȣȐȠȓȘȡȧȡȬȭȥȓȗȘȡȖțȐȓțȠȎȞȭȥȓȞȓȝȎȦȘȖ
ȅȠȜȏȩȥȓȞȓȝȎȦȘȎȚȜȑșȎȞȎȏȜȠȎȠȪȓȓțȎȒȜȝȞȖȝȜȒțȭȠȪțȎȒ
ȘȜȞȜȐȎȚȖȖȜȐȤȎȚȖțȎȐȩȟȜȠȡȒȐȡȣȏșȜȘȜȐțȎȒȡȞȜȐțȓȚ
ȕȓȚșȖ ȐȜȠșȖȥȖȓȜȠȒȞȡȑȖȣȢȓȞȚȑȒȓȥȓȞȓȝȎȦȘȎȝȜȒțȖȚȎ
ȓȠȟȭțȎȜȒȖțȏșȜȘ ǻȎȞȖȟȝȜȘȎȕȎțȎȥȓȞȓȝȎȦȘȎȝȜȒ
țȭȠȎȭțȎȒȕȓȚșȓȗțȎȐȩȟȜȠȡȒȐȡȣȏșȜȘȜȐȥȠȜȏȩȜțȎȚȜȑșȎ
ȐȕȎȖȚȜȒȓȗȟȠȐȜȐȎȠȪȟȘȜȞȜȐȎȚȖȖȜȐȤȎȚȖ

ˀ̛̭͘ϭϰ͘ϲ͘ˋ̸̶̸̨̨̡̨̨̨̡̨̛̛̛̛̯̼̯̬̣̭̯̬̖͕̖̬̖̪̹̣̙̦̍̔̽̏̽̏̌̌̔̌
̵̵̨̨̨̡̨̨̛̛̦̯̭̦̼̭̯̖̱̣̦̱̬̦̖̥̖̥̣̌̔̽́̌̏̔̏̍̏̌̔̏̚

278

DZǹǮǰǮ

ȅȠȜȏȩȝȜȒȜȖȠȪȘȜȞȜȐȡȐȠȓȘȡȧȓȗȭȥȓȗȘȓȖțȐȓțȠȎȞȭȥȓȞȓ
ȝȎȦȘȖȒȜșȔțȜțȎȣȜȒȖȠȪȟȭȝȡȟȠȜȓȐȓȒȞȜǸȜȑȒȎȥȓȞȓȝȎȦȘȎ
țȎȣȜȒȖȠȟȭțȎȒȘȜȞȜȐȜȗȐȩȕȜȐȖȢȡțȘȤȖȬturtle.placeDown()ȖȜțȎȕȎȝȜșțȖȠȐȓȒȞȜȚȜșȜȘȜȚDzșȭȟȠȞȖȔȘȖȜȐȓȤȐ
ȠȓȘȡȧȓȗ ȭȥȓȗȘȓȒȜșȔțȩȏȩȠȪțȜȔțȖȤȩǸȜȑȒȎȥȓȞȓȝȎȦȘȎ
ȏȡȒȓȠțȎȣȜȒȖȠȪȟȭțȎȒȜȐȤȜȗȐȩȕȜȐȖȢȡțȘȤȖȬturtle.
placeDown()ȖȜțȎȝȜȟȠȞȖȔȓȠȜȐȤȡǿȜȟȠȞȖȔȓțțȡȬȦȓȞȟȠȪ
ȥȓȞȓȝȎȦȘȎȟȜȏȓȞȓȠȎȐȠȜȚȎȠȖȥȓȟȘȖ
ǸȜȞȜȐȩȖȜȐȤȩȏȡȒȡȠȞȎȕȏȞȓȒȎȠȪȟȭțȜȠȩȟȚȜȔȓȦȪȡȒȓȞ
ȔȎȠȪȖȣȐȝȞȓȒȓșȎȣȢȓȞȚȩȝȜȟȠȞȜȖȐȝȜȝȓȞȖȚȓȠȞȡȕȎȏȜȞ
ǰȜȕȚȜȔțȜȔȖȐȜȠțȩȓȏȡȒȡȠȝȩȠȎȠȪȟȭȡȏȓȔȎȠȪȜȠȥȓȞȓȝȎȦ
ȘȖțȜȖȚȐȞȭȒșȖȫȠȜȡȒȎȟȠȟȭȠȎȘȘȎȘȥȓȞȓȝȎȦȘȎȝȞȜȐȜȞ
țȓȓǸȞȜȚȓȠȜȑȜȝȜȟȘȜșȪȘȡȘȜȞȜȐȩȖȜȐȤȩțȓȭȐșȭȬȠȟȭȏșȜ
ȘȎȚȖȐȩȕȜȐȢȡțȘȤȖȖturtle.inspectDown()țȓȟȞȎȏȜȠȎȓȠ
ǰȚȓȟȠȜȫȠȜȑȜȥȓȞȓȝȎȦȘȓȝȞȖȒȓȠȟȭȐȩȕȩȐȎȠȪȢȡțȘȤȖȬturtle.placeDown()ȐȟșȓȝȡȬȖțȎȡȒȎȥȡȖȟȝȜșȪȕȜȐȎȠȪȝȡȟȠȜȓ
ȐȓȒȞȜȖșȖțȜȔțȖȤȩȖȕȠȓȘȡȧȓȗȭȥȓȗȘȖ

ěĞĔĢđĠČčĜĔĖČ
ǸȡȞȩȝȞȜȖȕȐȜȒȭȠȭȗȤȎȘȎȔȒȩȓȝȭȠȪȒȓȟȭȠȪȚȖțȡȠțȜ
ȘȎȘȖȐȟȓȒȞȜȝȩȓȟșȖȖȣțȓȝȜȒțȭȠȪȭȗȤȎȖȟȥȓȕȎȬȠȥȓȞȓȕ
ȝȭȠȪȚȖțȡȠǺȜȔțȜȕȎȝȞȜȑȞȎȚȚȖȞȜȐȎȠȪȥȓȞȓȝȎȦȓȘȠȎȘ
ȥȠȜȏȩȜțȖȜȏȞȎȏȎȠȩȐȎșȖȝȜșȓȑȒȓȝȎȟȡȠȟȭȘȡȞȩȖȟȜȏȖȞȎ
șȖȭȗȤȎȟȕȓȚșȖ

ˀ̛̭͘ϭϰ͘ϳ͘ˋ̶̡̨̡̛̛̖̬̖̪̹̭̬̖̯̜͕̭̦̖̭̖̦̦̼̖̱̬̥̌̌̍̌́̌̌

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

279

DzșȭȟȜȕȒȎțȖȭȝȠȖȤȓȢȓȞȚȩȕȎȑȜțȖȘȡȞțȎȜȑȜȞȜȔȓțțȜȓ
ȝȞȭȚȜȡȑȜșȪțȜȓȝȜșȓȜȏȟșȡȔȖȐȎȓȚȜȓȥȓȞȓȝȎȦȘȜȗǵȎȠȓȚ
ȝȓȞȓȒȎȗȢȡțȘȤȖȬturtle.suckDown() ȏȓȕȘȞȡȑșȩȣȟȘȜȏȜȘ 
ȢȡțȘȤȖȖhare.sweepField()ȥȠȜȏȩȥȓȞȓȝȎȦȘȎȕȎȏȖȞȎșȎ
șȬȏȩȓȝȞȓȒȚȓȠȩȘȜȠȜȞȩȓȐȎșȭȬȠȟȭțȎȕȓȚșȓǻȎȞȖȟ
ȖȕȜȏȞȎȔȓțȎȥȓȞȓȝȎȦȘȎȟȜȏȖȞȎȬȧȎȭȭȗȤȎǽȜȒȜȏțȜȔȖȐȜȠ
țȩȚȭȗȤȎțȓȭȐșȭȬȠȟȭȏșȜȘȎȚȖȝȜȫȠȜȚȡȢȡțȘȤȖȭturtle.inspectDown()țȓȟȚȜȔȓȠȖȣȖȒȓțȠȖȢȖȤȖȞȜȐȎȠȪ

ĎħĜČĥĔĎČęĔđĖČĖĞğĝĚĎĔĝČġČĜęĚďĚ
ĞĜĚĝĞęĔĖČ
ǸȎȘȠȡȟȩȖȟȎȣȎȞțȩȗȠȞȜȟȠțȖȘȠȞȓȏȡȬȠȜȟȜȏȩȣȡȟșȜȐȖȗȒșȭ
ȐȩȞȎȧȖȐȎțȖȭǻȎȝȞȖȚȓȞțȡȔȓțȘȎȘȚȖțȖȚȡȚȜȒȖțȏșȜȘ
ȟȐȜȏȜȒțȜȑȜȝȞȜȟȠȞȎțȟȠȐȎȞȎȕȒȓșȭȬȧȖȗȞȎȟȠȓțȖȭȥȠȜȏȩ
ȜțȖȚȜȑșȖȟȐȜȏȜȒțȜȞȎȟȠȖǽȜȫȠȜȚȡȝȜȠȞȓȏȡȓȠȟȭȖȕȚȓțȖȠȪ
ȘȜȒǻȎȢȓȞȚȓȒșȭȐȩȞȎȧȖȐȎțȖȭȘȎȘȠȡȟȜȐțȎȒȜȏȡȒȓȠȜȟȠȎȐ
șȭȠȪȝȡȟȠȩȓȑȜȞȖȕȜțȠȎșȪțȩȓȖȐȓȞȠȖȘȎșȪțȩȓȝȜșȜȟȩȕȓȚșȖ
ǸȞȜȚȓȠȜȑȜȘȎȘȠȡȟȩȚȜȑȡȠȞȎȟȠȖȠȜșȪȘȜțȎȝȓȟȥȎțȩȣ
ȏșȜȘȎȣȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϰ͘ϴ͘ʶ̡̨̡̨̡̨̨̛̯̱̭̼̬̭̯̱̯̯̣̦̪̖̭̖̣̙̦̼̬̭̪̣̯̭̦̌̌̽̌̔̌̌̐̌̽́̌
̨̨̨̨̨̡̨̛̛̬̭̭̯̦̦̣̥̖̙̱̬̱̬̱̥̌́̔̐̍̌̔̔̐̔̐

280

DZǹǮǰǮ

ǿȎȣȎȞțȩȗȠȞȜȟȠțȖȘȞȎȟȠȓȠȠȜșȪȘȜțȎȝȓȟȥȎțȩȣȖșȖȕȓȚ
șȭțȩȣȏșȜȘȎȣȘȜȠȜȞȩȓȝȞȖșȓȑȎȬȠȘȐȜȒȓȝȜȫȠȜȚȡȘȎȔȒȩȗ
ȞȭȒȚȓȔȒȡȞȭȒȎȚȖȠȞȜȟȠțȖȘȎȒȜșȔȓțȟȜȟȠȜȭȠȪȖȕȐȜȒȭțȩȣ
ȏșȜȘȜȐȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϰ͘ϵ͘ˋ̵̡̨̡̛̛̖̬̖̪̹̼̬̺̖̯̭̬̦̼̜̯̬̭̯̦̌̌̏̌̏̌̌̌͘ʽ̛̛̛̬̯̦̥̦̖͕̍̌̏̌
̸̵̨̨̡̨̨̨̛̯̭̬̦̼̜̯̬̭̯̦̭̣̖̱̖̯̭̙̯̬̥̭̜̌̌̔̌̌̽́̔̏̔

ǼȏȓȘȡșȪȠȡȞȩȐȩȞȎȟȠȎȬȠțȎȐȩȟȜȠȡȒȜȠȞȓȣȏșȜȘȜȐǽȜȫ
ȠȜȚȡȥȓȞȓȝȎȦȘȡțȡȔțȜȝȜȒțȭȠȪțȎȐȩȟȜȠȡȥȓȠȩȞȓȣȏșȜȘȜȐ
ȥȠȜȏȩȜțȎȚȜȑșȎȐȩȕȩȐȎȠȪȢȡțȘȤȖȬturtle.digDown()
ȒșȭȟȏȜȞȎȡȞȜȔȎȭȐȩȞȜȟȦȓȑȜȒȜȚȎȘȟȖȚȎșȪțȜȗȐȩȟȜȠȩ
ǶȒȓțȠȖȢȖȘȎȠȜȞȩ0LQHFUDIWȒșȭȘȎȘȠȡȟȎȖȟȎȣȎȞțȜȑȜȠȞȜȟȠ
țȖȘȎ²ȫȠȜ'minecraft:cactus'Ȗ'minecraft:reeds'9ȟȜ
ȜȠȐȓȠȟȠȐȓțțȜ

ģĞĚĘħğēęČėĔ
ǺțȜȑȜȘȞȎȠțȜȖȟȝȜșȪȕȡȭȘȜȒhare.sweepField()ȠȩȚȜ
ȔȓȦȪșȓȑȘȜȝȞȜȑȞȎȚȚȖȞȜȐȎȠȪȥȓȞȓȝȎȦȓȘțȎȎȐȠȜȚȎȠȖȥȓ
ȟȘȖȗȟȏȜȞȞȎȕșȖȥțȩȣȘȡșȪȠȡȞǰȫȠȜȗȑșȎȐȓȠȩȡȕțȎșȘȎȘ
ȖȟȝȜșȪȕȜȐȎȠȪȥȓȞȓȝȎȦȓȘȒșȭȜȏȞȎȏȜȠȘȖȕȓȚșȖȝȜȟȓȐȎȟȓ
ȚȭțȖȟȏȜȞȎȕȞȓșȜȗȝȦȓțȖȤȩǰȩȕȜȐȢȡțȘȤȖȖturtle.inspectDown()ȐȜȕȐȞȎȧȎȓȠȠȎȏșȖȥțȜȓȕțȎȥȓțȖȓȟȜȒȓȞȔȎȧȓȓ
ȘșȬȥ'metadata'ȟȜȕțȎȥȓțȖȓȚȐȒȖȎȝȎȕȜțȓȜȠ0ȒȜ7dzȟșȖ
ȕțȎȥȓțȖȓȞȎȐțȜ7ȕțȎȥȖȠȝȦȓțȖȤȎȝȜșțȜȟȠȪȬȟȜȕȞȓșȎȅȓ
9

В версии 1.13 – 'minecraft:sugar_cane' (прим. перев.)

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȂdzǾǺdzǾǮ

281

ȞȓȝȎȦȘȎȟȎșȚȎȕțȜȗȚȜȠȩȑȜȗȖȟȝȜșȪȕȡȓȠȫȠȜȕțȎȥȓțȖȓȥȠȜ
ȏȩȜȝȞȓȒȓșȖȠȪȘȜȑȒȎȝȦȓțȖȤȎȑȜȠȜȐȎȘȡȏȜȞȘȓȟȜȏȖȞȎȓȠȓȓ
ȖȝȞȜȖȕȐȜȒȖȠȝȜȟȓȐȟȓȚȭț
ǮșȑȜȞȖȠȚȢȡțȘȤȖȖhare.sweepField()ȏȩșȖȟȝȜșȪ
ȕȜȐȎțȝȞȖȞȓȦȓțȖȖȚțȜȔȓȟȠȐȎȞȎȕșȖȥțȩȣȕȎȒȎȥǰȑșȎȐȓ
ȚȩȞȎȕȞȎȏȜȠȎȓȚțȜȐȩȗȎșȑȜȞȖȠȚȘȜȠȜȞȩȗȝȜȕȐȜșȖȠȘȜ
ȝȎȠȪȭȚȩȐȢȜȞȚȓșȓȟȠțȖȤȩȡȣȜȒȭȧȓȗȐȕȓȚșȬ

15
ěĜĚďĜČĘĘĔĜĚĎČęĔđ
ģđĜđěČĤĖĔĤČġĞđĜČ
ȀȓȝȓȞȪȥȓȞȓȝȎȦȘȖȐȩȝȜșțȭȬȠȕțȎȥȖȠȓșȪțȡȬ
ȥȎȟȠȪțȓȜȏȣȜȒȖȚȩȣȠȓȏȓȞȎȏȜȠȜȠȞȡȏȘȖȒȓ
ȞȓȐȪȓȐȖȖȕȑȜȠȜȐșȓțȖȭȘȎȚȓțțȩȣȘȖȞȝȖȥȓȗ
ȒȜȐȜȕȒȓșȩȐȎțȖȭȟȓșȪȟȘȜȣȜȕȭȗȟȠȐȓțțȩȣȡȑȜ
ȒȖȗǻȜȓȧȓȓȟȠȪȞȓȟȡȞȟȩȘȜȠȜȞȩȓțȓȜȏȣȜȒȖȚȜ
ȒȜȏȩȐȎȠȪȖȕȝȜȒȕȓȚșȖȞȎȕȞȎȏȎȠȩȐȎȭȞȡȒțȖȘȖ
ȋȠȜȔȓșȓȕȜȕȜșȜȠȜȎșȚȎȕȩȡȑȜșȪȞȓȒȟȠȜȡțȖșȎȕȡȞȖȠ
ȅȓȞȓȝȎȦȘȖȚȜȑȡȠȖȫȠȜȁțȖȣȐȝȎȚȭȠȖȓȟȠȪȝȞȓȒȡȟȠȎ
țȜȐșȓțțȎȭȝȞȜȑȞȎȚȚȎȝȜȒțȎȕȐȎțȖȓȚexcavateȘȜȠȜȞȡȬ
ȠȩȚȜȔȓȦȪȖȟȝȜșȪȕȜȐȎȠȪȥȠȜȏȩȝȞȜȘȜȝȎȠȪȘȐȎȒȞȎȠțȜȓȜȠ
ȐȓȞȟȠȖȓȝȞȭȚȜȘȜȟțȜȐȎțȖȬȚȖȞȎ0LQHFUDIWǼȒțȎȘȜȘȎȘ
ȝȜȘȎȕȎțȜțȎȞȖȟȚȜȔțȜșȓȑȘȜȡȝȎȟȠȪȐȫȠȖȑșȡȏȜȘȖȓ
ȘȜșȜȒȤȩȥȠȜȒȓșȎȓȠȖȣȜȝȎȟțȩȚȖ
ǰȫȠȜȗȑșȎȐȓȚȩțȎȝȖȦȓȚȝȞȜȑȞȎȚȚȡȒȜȏȩȥȖȝȜșȓȕ
țȩȣȖȟȘȜȝȎȓȚȩȣȝȜȒțȎȕȐȎțȖȓȚstairminerȘȜȠȜȞȎȭȐȩ
ȘȎȝȩȐȎȓȠȘȜșȜȒȓȤȟșȓȟȠțȖȤȓȗȡȣȜȒȭȧȓȗȝȜȒȕȓȚșȬȘȎȘ
ȝȜȘȎȕȎțȜțȎȞȖȟǼȘȜșȜȝȜȐȓȞȣțȜȟȠȖȥȓȞȓȝȎȦȘȎȏȡȒȓȠ
ȒȜȏȩȐȎȠȪȐȜȟțȜȐțȜȚȕȓȚșȬȖȏȡșȩȔțȖȘțȜȝȜȚȓȞȓȞȎȕȞȎ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȆǮȃȀdzǾǮ

283

ȏȜȠȘȖȞȡȒțȖȘȎȐȑșȡȏȪȟȚȜȔȓȠțȎȣȜȒȖȠȪȖȒȜȏȩȐȎȠȪȞȎȕțȡȬ
ȞȡȒȡȖȎșȚȎȕȩ

ˀ̛̭͘ϭϱ͘ϭ͘ʿ̨̬̬̥̥̐̌̌excavatę̶̨̡̨̡̨̨̛̭̖̯̣̱̖͕̪̭̦̼̖̣̼̔̌̐̍̌̔̚

ˀ̛̭͘ϭϱ͘Ϯ͘ʿ̨̬̬̥̥̐̌̌stairminer̶̨̨̨̛̭̖̯̣̖̭̯̦̱̣̖̪̭̦̜̔̌̔́̍̌̚̚
̸̵̵̨̨̡̨̛̛̼̪̣̖̦̼̭̪̖̥̼̔̍̌̚

ǽȜȟșȓȠȜȑȜȘȎȘȚȩȟȜȕȒȎȒȖȚȝȞȜȑȞȎȚȚȡstairminer
ȚȜȔțȜȏȡȒȓȠȒȜȏȩȐȎȠȪȞȡȒȡțȓȜȝȎȟȎȭȟȪȡȝȎȟȠȪȐȝȞȜȝȎȟȠȪ
ȋȠȖșȓȟȠțȖȤȩȠȎȘȔȓȝȜȕȐȜșȭȠȏȓȕȜȝȎȟțȜȟȝȡȟȘȎȠȪȟȭțȎȒțȜ
ȦȎȣȠȥȠȜȏȩțȎȝȞȖȚȓȞȝȞȜȘȜȝȎȠȪȑȜȞȖȕȜțȠȎșȪțȩȓȠȡțțȓ
șȖȖșȖȝȜȟȠȞȜȖȠȪȝȜȒȕȓȚțȡȬȏȎȕȡ

284

DZǹǮǰǮ

ĜČēĜČčĚĞĖČČėďĚĜĔĞĘČĝĚēĐČęĔī
ĤČġĞħĝėđĝĞęĔĢđĕ
ǻȎȥ țȓȚ ȟ ȞȎȕȞȎȏ Ȝ Ƞ Ș Ȗ Ȏ ș ȑ ȜȞȖ Ƞ ȚȎ ȟȜȕȒȎ ț Ȗ ȭ ȦȎ ȣ Ƞ ȩ ȟ
șȓȟȠțȖȤȓȗǰȚȓȟȠȜȠȜȑȜȥȠȜȏȩȝȞȜȟȠȜȘȜȝȎȠȪȐțȖȕȒȜȏȓ
ȒȞȜȘȎȝȞȜȑȞȎȚȚȎstairminerȐȩȞȡȏȎȓȠȡȕȜȞȐȢȜȞȚȓșȓȟȠ
țȖȤȩȀȎȘȖȚȜȏȞȎȕȜȚȥȓȞȓȝȎȦȘȎțȓțȎȒȓșȎȓȠȟȚȓȞȠȓșȪțȜ
ȜȝȎȟțȩȣȒȩȞȐȘȜȠȜȞȩȓȚȜȔțȜȡȝȎȟȠȪǾȎȕȞȎȏȜȠȘȎȑȞȡțȠȎ
țȎȥȖțȎȓȠȟȭȟȝȜȐȓȞȣțȜȟȠȖȕȓȚșȖȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ

ˀ̛̭͘ϭϱ͘ϯ͘ˋ̵̸̸̵̡̨̨̨̨̨̛̛̖̬̖̪̹̦̪̖̬̦̭̯̪̖̬̖̦̣̥̼̪̣̖̦̼̌̌̌̏̔̌̌̔̍̚
̵̡̨̛̭̪̖̥̼̌

ǻȎȚțȡȔțȜȥȠȜȏȩȥȓȞȓȝȎȦȘȎȝȞȜȘȜȝȎșȎțȎȜȒȖțȏșȜȘ
ȐțȖȕȕȎȠȓȚȝȓȞȓȚȓȟȠȖșȎȟȪțȎȜȒȖțȏșȜȘȐȝȓȞȓȒȝȞȜȘȜȝȎșȎ
țȎȏșȜȘȎȐțȖȕȕȎȠȓȚȜȝȭȠȪȝȓȞȓȒȐȖțȡșȎȟȪțȎȏșȜȘȐȝȓȞȓȒ
ȖȐȩȘȜȝȎșȎȡȔȓȠȞȖȏșȜȘȎȖȠȒȅȓȞȓȝȎȦȘȎȒȜșȔțȎȝȞȜ
ȒȜșȔȎȠȪȘȜȝȎȠȪȒȜȠȓȣȝȜȞȝȜȘȎțȓȒȜȟȠȖȑțȓȠȏȓȒȞȜȘȎȖșȖ
ȑșȡȏȖțȩȡȘȎȕȎțțȜȗȖȑȞȜȘȜȚ
DzșȭȞȎȕȞȎȏȜȠȘȖȫȢȢȓȘȠȖȐțȜȗȝȞȜȑȞȎȚȚȩțȡȔțȜȜȝȞȓ
ȒȓșȖȠȪȘȜțȘȞȓȠțȩȓȒȓȗȟȠȐȖȭȘȜȠȜȞȩȓȒȜșȔțȎȟȜȐȓȞȦȖȠȪ
ȥȓȞȓȝȎȦȘȎȥȠȜȏȩȞȓȎșȖȕȜȐȎȠȪȜȝȖȟȎțțȩȗȎșȑȜȞȖȠȚȝȜȐȓ
ȒȓțȖȭǸȎȔȒȩȗȞȎȕȝȜȟșȓȠȜȑȜȘȎȘȥȓȞȓȝȎȦȘȎȟȝȡȟȘȎȓȠȟȭ
ȐțȖȕȜțȎȒȜșȔțȎȐȜȕȐȞȎȧȎȠȪȟȭțȎȝȜȐȓȞȣțȜȟȠȪȝȞȓȔȒȓȥȓȚ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȆǮȃȀdzǾǮ

285

ȘȜȝȎȠȪȟțȜȐȎǽȜȟȘȜșȪȘȡȘȎȔȒȩȗȣȜȒȖȟȝȜșȪȕȡȓȠȠȜȝșȖȐȜ
ȠȜȘȜșȖȥȓȟȠȐȜȣȜȒȜȐȟȜȐȓȞȦȎȓȚȩȣȥȓȞȓȝȎȦȘȜȗȣȜȠȓșȜȟȪ
ȏȩȟȒȓșȎȠȪȚȖțȖȚȎșȪțȩȚǺȩȟȒȓșȎȓȚȫȠȜȕȎȝȞȜȑȞȎȚȚȖ
ȞȜȐȎȐȥȓȞȓȝȎȦȘȡȠȎȘȥȠȜȏȩȜțȎȘȜȝȎșȎȐȐȓȞȣȘȜȑȒȎȏȡȒȓȠ
ȐȩȏȖȞȎȠȪȟȭțȎȝȜȐȓȞȣțȜȟȠȪǰȞȓȕȡșȪȠȎȠȓȥȓȞȓȝȎȦȘȎȏȡȒȓȠ
ȖȟȝȜșȪȕȜȐȎȠȪȠȜȝșȖȐȜțȎȟȠȜșȪȘȜȫȢȢȓȘȠȖȐțȜțȎȟȘȜșȪȘȜȫȠȜ
ȐȜȜȏȧȓȐȜȕȚȜȔțȜȝȜȟȘȜșȪȘȡȏȡȒȓȠțȓȠȜșȪȘȜȐȩȏȖȞȎȠȪȟȭțȎ
ȝȜȐȓȞȣțȜȟȠȪțȜȖȞȎȕȞȎȏȎȠȩȐȎȠȪȑȞȡțȠțȎȒȟȜȏȜȗ
DzȎȐȎȗȞȎȟȟȚȜȠȞȖȚȒȓȗȟȠȐȖȭțȎȘȜȠȜȞȩȣȝȜȟȠȞȜȓțȎșȑȜ
ȞȖȠȚȟȜȕȒȎțȖȭȦȎȣȠȩȟșȓȟȠțȖȤȓȗȖȐȩȭȟțȖȚȘȎȘȚȜȔțȜ
ȚȖțȖȚȖȕȖȞȜȐȎȠȪȞȎȟȣȜȒȠȜȝșȖȐȎȖȟȝȜșȪȕȡȓȚȜȑȜȥȓȞȓȝȎȦ
ȘȜȗțȎȘȎȔȒȜȚȫȠȎȝȓ
ǸȎȘȝȜȘȎȕȎțȜțȎȞȖȟȥȓȞȓȝȎȦȘȎțȎȥȖțȎȓȠȞȎȕȞȎ
ȏȜȠȘȡȟȏșȜȘȎȜȠȚȓȥȓțțȜȑȜȟȖȚȐȜșȜȚðȀȎȘȖȚȜȏȞȎȕȜȚȜțȎ
ȟȜȕȒȎȓȠȝȓȞȐȡȬȟȠȡȝȓțȪșȓȟȠțȖȤȩǽȜȟȘȜșȪȘȡȥȓȞȓȝȎȦȘȎțȓ
ȒȐȖȑȎȓȠȟȭțȎȫȠȜȚȫȠȎȝȓȜțȎțȓȖȟȝȜșȪȕȡȓȠȠȜȝșȖȐȜǽȓȞȐȩȗ
ȦȎȑșȓȟȠțȖȤȩțȡȔțȜȐȩȘȜȝȎȠȪȜȒȖțȞȎȕȐțȎȥȎșȓȝȞȜȑȞȎȚ
ȚȩȝȜȫȠȜȚȡȎșȑȜȞȖȠȚȏȜșȪȦȓțȓȝȜȐȠȜȞȭȓȠȫȠȜȠȦȎȑ

ˀ̛̭͘ϭϱ͘ϰ͘ˋ̸̡̡̨̨̨̨̛̖̬̖̪̹̦̦̖̯̪̯̪̭̜̌̌̌̌̌̽̔̍

ǵȎȠȓȚȥȓȞȓȝȎȦȘȎȝȓȞȓȚȓȧȎȓȠȟȭȐȝȓȞȓȒțȎȜȒȖțȏșȜȘȘ
ȟșȓȒȡȬȧȓȚȡȏșȜȘȡȜȠȘȜȠȜȞȜȑȜȏȡȒȓȠȞȩȠȪȘȜșȜȒȓȤȐțȖȕȘȎȘ
ȝȜȘȎȕȎțȜțȎȞȖȟȋȠȜȒȓȗȟȠȐȖȓȜțȎȏȡȒȓȠȝȜȐȠȜȞȭȠȪȘȎȔ
ȒȩȗȞȎȕȘȜȑȒȎȏȡȒȓȠțȎȥȖțȎȠȪȘȜȝȎȠȪțȜȐȩȗȘȜșȜȒȓȤȟȝȜ
ȐȓȞȣțȜȟȠȖȕȓȚșȖ

286

DZǹǮǰǮ

ˀ̛̭͘ϭϱ͘ϱ͘ʿ̸̨̡̨̨̨̡̡̛̛̭̣̖̼̪̼̦̪̖̬̣̖̬̖̪̹̙̖̯̭̪̖̬̖̦̏̌̏̌́̏̐̍̌̌̌̔̏́̏̔̌
̸̸̶̨̨̡̨̡̨̡̨̨̨̡̛̛̛̦̣͕̯̼̦̯̪̯̭̣̖̱̺̜̣̖̦͕̱̙̖̦̣̔̍̍̌̌̽̌̽̔̀̔̏̌̔̏̌̍̌̚

ǸȜȑȒȎȥȓȞȓȝȎȦȘȎțȎȥȖțȎȓȠȞȎȕȞȎȏȜȠȘȡȟșȓȒȡȬȧȓȑȜȘȜ
șȜȒȤȎȜțȎȞȎȟȘȎȝȩȐȎȓȠțȎȜȒȖțȏșȜȘȏȜșȪȦȓȥȓȚțȎȝȞȓ
ȒȩȒȡȧȓȚȦȎȑȓȖȜȝȡȟȘȎȓȠȟȭțȎȒțȜȘȜșȜȒȤȎȘȜȠȜȞȩȗȞȎȕ
ȞȎȏȎȠȩȐȎȓȠǻȎȞȖȟȝȜȘȎȕȎțȫȠȜȠȝȞȜȤȓȟȟ

ˀ̛̭͘ϭϱ͘ϲ͘ˋ̶̸̵̡̡̨̡̨̨̨̨̛̛̛̖̬̖̪̹̪̖̯̭̣̖̱̺̜̣̖͕̦̦̭̪̖̬̦̭̯̌̌̌̔̀̔̌̌́̏

ǽȜȟșȓȠȜȑȜȘȎȘȥȓȞȓȝȎȦȘȎȕȎȘȜțȥȖȠȒȜȏȩȥȡȐȫȠȜȚȘȜșȜȒ
ȤȓȞȎȕȞȎȏȜȠȘȡȟșȓȒȡȬȧȓȑȜȜțȎțȎȥțȓȠȟȓȑȜȒțȎȅȓȞȓȝȎȦȘȎ
ȒȜȏȡȒȓȠȏșȜȘȘȜȠȜȞȩȗțȎȣȜȒȖȠȟȭȝȓȞȓȒțȓȗȝȓȞȓȚȓȟȠȖȠȟȭ
ȐȝȓȞȓȒȖȜȘȎȔȓȠȟȭȐȟșȓȒȡȬȧȓȚȘȜșȜȒȤȓȀȎȚȜțȎȒȜȏȩȐȎȓȠ
ȏșȜȘȘȜȠȜȞȩȗțȎȣȜȒȖȠȟȭȝȜȒțȓȗȒȓșȎȭȫȠȜȠȘȜșȜȒȓȤțȎȜȒ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȆǮȃȀdzǾǮ

287

țȡȝȜȕȖȤȖȬȑșȡȏȔȓȝȞȓȒȩȒȡȧȓȑȜȘȎȘȝȜȘȎȕȎțȜțȎȞȖȟ
DzȜȏȩȥȎȏșȜȘȎȝȜȒȥȓȞȓȝȎȦȘȜȗțȓȠȞȓȏȡȓȠȠȜȝșȖȐȎȝȜȫȠȜȚȡ
ȥȓȞȓȝȎȦȘȎȖȟȝȜșȪȕȡȓȠȠȜșȪȘȜȜȒțȡȓȒȖțȖȤȡȠȜȝșȖȐȎȒșȭ
ȒȜȏȩȥȖȒȐȡȣȏșȜȘȜȐȋȠȖȒȓȗȟȠȐȖȭȝȜȐȠȜȞȭȬȠȟȭȘȎȔȒȩȗȞȎȕ
ȘȜȑȒȎȞȎȕȞȎȏȜȠȘȎȘȜșȜȒȤȎțȎȥȖțȎȓȠȟȭȐțȡȠȞȖȦȎȣȠȩ

ˀ̛̭͘ϭϱ͘ϳ͘ˋ̡̡̨̡̨̨̨̛̖̬̖̪̹̼̪̼̖̯̣̪̖̬̖̭̜͕̪̖̬̖̥̖̺̖̯̭̦̦̌̌̏̌̏̌̍̔̍̌́̌̔
̨̡̡̨̡̨̨̨̣̪̖̬̖͕̯̖̥̼̪̼̖̯̣̪̭̜̍̏̔̌̌̏̌̏̌̍̔̍̚

ǰȕȎȐȓȞȦȎȬȧȓȗȥȎȟȠȖȎșȑȜȞȖȠȚȎȥȓȞȓȝȎȦȘȎȒȜșȔțȎ
ȐȩȗȠȖțȎȝȜȐȓȞȣțȜȟȠȪȥȠȜȏȩȝȜșțȜȟȠȪȬȞȎȕȞȎȏȜȠȎȠȪȠȓȘȡ
ȧȖȗȘȜșȜȒȓȤǻȎȞȖȟȢȖțȎșȪțȩȗȝȡȠȪȥȓȞȓȝȎȦȘȖȝȜ
ȘȎȕȎțȜȞȎțȔȓȐȜȗȟȠȞȓșȘȜȗ

ˀ̛̭͘ϭϱ͘ϴ͘ˋ̸̶̡̡̨̡̡̨̨̨̛̖̬̖̪̹̦̖̯̬̬̯̱̣͕̬̺̭̦̌̌̌̌̏̌̌̌̍̔̌̏̏̌̌́̽̌̚̚̚
̵̨̨̪̖̬̦̭̯̏̽

ǰȟȓȜȝȖȟȎțțȩȓȒȓȗȟȠȐȖȭȘȞȜȚȓțȎȥȎșȪțȜȑȜȥȓȞȓȝȎȦȘȎ
ȝȜȐȠȜȞȭȓȠȤȖȘșȖȥȓȟȘȖDzȞȡȑȖȚȖȟșȜȐȎȚȖȥȓȞȓȝȎȦȘȎȘȜ

288

DZǹǮǰǮ

ȝȎȓȠȐȝȓȞȓȒțȎȥȖțȎȭțȜȐȩȗȘȜșȜȒȓȤȖțȓȜȝȡȟȘȎȭȟȪțȎ
ȓȑȜȒțȜȕȎȘȎțȥȖȐȎȓȠȓȑȜȒȜȏȩȥȡȒȐȖȑȎȭȟȪȐȐȓȞȣȝȜȐȠȜȞȭȭ
ȝȡȠȖȜȏȜȕțȎȥȓțțȩȓțȎȞȖȟȢȖȜșȓȠȜȐȩȚȖȕȓșȓțȩȚȖ
ȖȜȞȎțȔȓȐȩȚȖȟȠȞȓșȘȎȚȖǽȜȫȠȜȚȡȦȎȏșȜțȡȝȞȜȖȟȣȜȒȖȠ
ȞȎȕȞȎȏȜȠȘȎȑȜȞțȜȑȜȚȎȟȟȖȐȎȝȜȒȐȎȘȜșȜȒȤȎȕȎȜȒȖțȝȞȜȣȜȒ
ȐțȖȕȎȕȎȠȓȚȐȐȓȞȣǰȩȝȜșțȓțȖȓȦȎȏșȜțȎȜȟȡȧȓȟȠȐșȭȓȠȟȭ
ȒȜȠȓȣȝȜȞȝȜȘȎȥȓȞȓȝȎȦȘȎțȓȒȜȟȠȖȑțȓȠȏȓȒȞȜȘȎȖșȖȡȘȎ
ȕȎțțȜȗȑșȡȏȖțȩ

ˀ̛̭͘ϭϱ͘ϵ͘ˌ̶̸̨̨̡̨̛̣̦̣̖̭̯̦̼͕̬̬̯̼̖̥̜̖̬̖̪̹̜̌̍̌̌̍̌̏̌̌̚

ǽȞȓȔ Ȓȓ ȥȓȚ ȝȞȖȟȠ ȡ ȝ Ȗ Ƞ Ȫ Ș ȞȎȕȞȎȏȜȠ Șȓ ȝȞȜȑ ȞȎ ȚȚȩ
stairminerȐȘȜȠȜȞȜȗȖȟȝȜșȪȕȡȓȠȟȭȠȜșȪȘȜȥȠȜȜȝȖȟȎțțȩȗ
ȎșȑȜȞȖȠȚȟȜȕȒȎțȖȭȦȎȣȠȩȟșȓȟȠțȖȤȓȗțȓȜȏȣȜȒȖȚȜțȎȝȖ
ȟȎȠȪțȓȘȜȠȜȞȩȓȐȟȝȜȚȜȑȎȠȓșȪțȩȓȢȡțȘȤȖȖǼțȖțȎȚȝȜțȎ
ȒȜȏȭȠȟȭȒșȭȜȏȞȎȏȜȠȘȖȟȖȠȡȎȤȖȗȘȜȑȒȎȥȓȞȓȝȎȦȘȓȏȡȒȡȠ
ȝȜȝȎȒȎȠȪȟȭȝȓȟȥȎțȩȓȖșȖȑȞȎȐȖȗțȩȓȏșȜȘȖ

ǽǾǼDZǾǮǺǺǶǾǼǰǮǻǶdzȅdzǾdzǽǮȆǸǶȆǮȃȀdzǾǮ

289

ĐĚĜČčĚĞĖČĘĚĐğėī0):dzȟșȖȠȩȒȡȚȎȓȦȪȥȠȜȐȩȕȜȐȢȡțȘȤȖȖturtle.dig()Ȑȟȓȑ
ȒȎȜȥȖȧȎȓȠȝȞȜȟȠȞȎțȟȠȐȜȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗȠȜȫȠȜțȓ
ȠȎȘǽȓȟȥȎțȩȓȖȑȞȎȐȖȗțȩȓȏșȜȘȖțȎȒȏșȜȘȜȚȘȜȠȜȞȩȗ
ȒȜȏȩȐȎȓȠȥȓȞȓȝȎȦȘȎȝȎȒȎȬȠȐțȖȕȖȏșȜȘȖȞȡȬȠȓȓǶȝȜ
ȟȘȜșȪȘȡȞȎȕȞȎȏȜȠȎțțȩȗțȎȚȖȎșȑȜȞȖȠȚȟȜȕȒȎțȖȭȦȎȣȠȩȟ
șȓȟȠțȖȤȓȗȝȞȓȒȝȜșȎȑȎȓȠȥȠȜȥȓȞȓȝȎȦȘȎȝȓȞȖȜȒȖȥȓȟȘȖȏȡ
ȒȓȠȜȥȖȧȎȠȪȝȞȜȟȠȞȎțȟȠȐȜȝȓȞȓȒȖșȖțȎȒȟȜȏȜȗțȎȚțȡȔțȎ
ȠȎȘȎȭȢȡțȘȤȖȭȟȝȜȚȜȧȪȬȘȜȠȜȞȜȗȥȓȞȓȝȎȦȘȎȏȡȒȓȠȞȎȟ
ȘȎȝȩȐȎȠȪȠȎȘȖȓȝȎȒȎȬȧȖȓȏșȜȘȖȒȜȠȓȣȝȜȞȝȜȘȎȠȞȓȏȡȓ
ȚȜȓȝȞȜȟȠȞȎțȟȠȐȜȝȜșțȜȟȠȪȬțȓȜȟȐȜȏȜȒȖȠȟȭ
ǻȎȞȖȟȝȜȘȎȕȎțȩȠȞȖȝȓȟȥȎțȩȣȏșȜȘȎȡșȜȔȓțțȩȣ
ȒȞȡȑțȎȒȞȡȑȎȝȓȞȓȒȥȓȞȓȝȎȦȘȜȗȅȠȜȏȩȟȜȏȞȎȠȪȝȓȟȜȘȥȓ
ȞȓȝȎȦȘȎȒȜșȔțȎȐȩȕȐȎȠȪȢȡțȘȤȖȬturtle.dig()ȠȞȖȞȎȕȎ
Dz ș ȭ ȫ Ƞ Ȗ ȣ Ȥȓ șȓȗ Ț ȩ țȎ
ȝȖȦȓȚȢȡțȘȤȖȖdigUntilClear()ȖdigUpUntilClear()
ȘȜȠȜȞȩȓȝȜȥȠȖȖȒȓțȠȖȥțȩțȜ
ȞȎȕȞȎȏȎȠȩȐȎȬȠȝȞȜȟȠȞȎțȟȠȐȜ
ȝȓȞȓȒȖțȎȒȥȓȞȓȝȎȦȘȜȗȟȜ
ȜȠȐȓȠȟȠȐȓțțȜ

ˀ̛̭͘ϭϱ͘ϭϬ͘ˋ̡̨̖̬̖̪̹̣̙̦̌̌̔̌
̸̨̨̡̨̛̼̯̣̯̬̬͕̯̼̔̍̽̍̌̌̍̚
̸̨̨̨̛̛̭̯̯̪̬̭̯̬̦̭̯̪̖̬̖̽̌̏̔
̸̸̨̨̨̨̨̭̜͕̪̯̥̱̯̪̖̭̦̼̖̍̌
̨̡̛̛̣̱̱̯̪̯̦̍̍̔̌̔̌̽̏̚

ǽȜȟȘȜșȪȘȡȚȩȟȚȜȔȓȚȖȟ
ȝȜșȪȕȜȐȎȠȪȫȠȖȢȡțȘȤȖȖțȓ
Ƞ Ȝ ș Ȫ Ș Ȝ Ȑ ȫ Ƞ Ȝȗ ȝ Ȟ Ȝȑ ȞȎ Ț Țȓ
ȒȜȏȎȐȖȚȖȣȐȚȜȒȡșȪh a re.
ǰȜȏȜșȜȥȘȓȘȜȚȎțȒțȜȗȟȠȞȜȘȖ
ȐȩȝȜșțȖȘȜȚȎțȒȡedit hare.
ǽȓȞȓȚȓȟȠȖȘȡȞȟȜȞȐțȖȔțȬȬ
ȥȎȟȠȪȢȎȗșȎȖȝȞȜȒȜșȔȖȘȜȒ
ȒȜȏȎȐȖȐȟșȓȒȡȬȧȖȓȟȠȞȜȘȖ

hare
...ɩɪɨɩɭɫɤ...
216. -- digUntilClear() ɩɪɨɞɨɥɠɚɟɬɞɨɛɵɱɭɩɟɪɟɞ
ɱɟɪɟɩɚɲɤɨɣ
217. -- ɩɨɤɚɨɛɧɚɪɭɠɢɜɚɟɬɛɥɨɤɢ ɢɫɩɨɥɶɡɭɟɬɫɹɟɫɥɢ
218. -- ɩɟɫɨɤɢɥɢɝɪɚɜɢɣɩɚɞɚɸɬɧɚɩɭɬɢɪɚɡɪɚɛɨɬɤɢ
219. function digUntilClear()

290

DZǹǮǰǮ

220.
while turtle.detect() do
221.
if not turtle.dig() then
222.
return false
223.
end
224.
end
225.
return true
226. end
227.
228. -- digUpUntilClear() ɩɪɨɞɨɥɠɚɟɬɞɨɛɵɱɭɧɚɞ
ɱɟɪɟɩɚɲɤɨɣ
229. -- ɩɨɤɚɨɛɧɚɪɭɠɢɜɚɟɬɛɥɨɤɢ ɢɫɩɨɥɶɡɭɟɬɫɹɟɫɥɢ
230. -- ɩɟɫɨɤɢɥɢɝɪɚɜɢɣɩɚɞɚɸɬɧɚɩɭɬɢɪɚɡɪɚɛɨɬɤɢ
231. function digUpUntilClear()
232.
while turtle.detectUp() do
233.
if not turtle.digUp() then
234.
return false
235.
end
236.
end
237.
return true
238. end

ǿȜȣȞȎțȖȝȞȜȑȞȎȚȚȡȖȐȩȗȒȖȖȕȞȓȒȎȘȠȜȞȎȝȜȟșȓȐȐȜȒȎ
ȖțȟȠȞȡȘȤȖȗȋȠȡȝȞȜȑȞȎȚȚȡȠȎȘȔȓȚȜȔțȜȟȘȎȥȎȠȪȐȩȝȜș
țȖȐȘȜȚȎțȒȡpastebin get wwzvaKuW hare.

ĖĚĐĠğęĖĢĔĕ,1/=6