Введение в программирование на языке Python
Урок 9: понятие функций; как создавать и использовать функции; концепция комментариев для кода и как использовать комментарии.
Посадка семян:
функции
Миссия урока
Тебе необходимо помочь расширить возможности Агента. CodingMine планирует использовать Агента совместно с экологической организацией. Эта организация должна в кротчайшие сроки посадить большое количество деревьев. Но подготовить почву для посадки саженцев не так-то просто. Вот почему организация хочет использовать Агента.  У разработчиков возникли проблемы с их кодом, и ты должен им помочь найти и исправить ошибки.
Начать игру: щелкнуть правой кнопкой мыши на персонажа, над головой которого буквы CEO. В Minecraft подобные персонажи называются NPC – неигровые персонажи.
Сделать паузу в игре: нажать на клавиатуре esc в левом верхнем углу.
Продолжить игру: нажать на стрелочку в левом верхнем углу рядом с надписью «продолжить игру».
Миссия 1:
инструкция
ответ
Миссия 2:
комментарии
ответ
Миссия 3:
подсказки
ответ
Игровая задача:
Разработчику нужна помощь, чтобы запрограммировать Агента для обработки, посадки и удобрения ряда деревьев в местах их посадки. Подсказка: слово вспахать till означает «подготовить участок почвы» для посадки. Поскольку промежутки между точками посадки не одинаковые, мы не можем использовать простой цикл for. Для выполнения заданий необходимо создать функцию с последовательностью действий, которые должен выполнить Агент.

Игрок вводит логин и пароль на платформе Minecraft: Education Edition.
Выполняет последовательность действий: ИГРАТЬ - БИБЛИОТЕКА - ПРЕДМЕТНЫЕ НАБОРЫ - ИНФОРМАТИКА - PYTHON - ВВЕДЕНИЕ В PYTHON - УРОК 08 "Посев семян" - СОЗДАТЬ МИР.

Это задание состоит из двух частей.

Часть 1. Необходимо закодировать Агента, чтобы он двигался вперед, возделывал землю и сажал саженцы на блоках травы слева от него. Для этого потребуется составить 2 последовательности для функций: первая для возделывания и посадки, вторая – для движения Агента к следующей лунке. Тебе также требуется написать свои комментарии к коду.

Часть 2. Теперь необходимо добавить код, чтобы Агент пять раз помещал удобрение под каждое дерево. Так как ты составил две функции, то не придется менять каждый раз основной код, а требуется внести изменения только в коде функции. Когда код будет запущен, Агент будет двигаться вперед и на блоках травы возделывать землю, сажать саженцы и добавлять удобрения. Когда Агент доберется до золотого блока, Задание 1 завершится.
PS: не все деревья должны расти. Достаточно вырасти хотя бы одному.


Подсказка: У Агента уже есть саженцы в первой ячейке инвентаря, а во второй ячейке – удобрения. Давать их Агенту не нужно.

Игровая задача:
Разработчику нужна помощь, чтобы закодировать Агента для очистки земли от камней (destroy), вспахивания и посадки саженцев в определенных местах. Тебе необходимо использовать более сложные фрагменты кода со своими функциями.

Задание состоит из 2 частей.

Часть 1. Тебе необходимо закодировать Агента, чтобы он двигался вперед и разрушал каменные блоки STONE, которые окажутся на его пути.
Для этого необходимо написать функцию, которая заставит Агента сделать это.

Часть 2. Теперь Агенту необходимо делать то же самое – идти и разбивать каменные блоки, - но при этом возделывать почву и сажать деревья. Когда код будет запущен, Агент будет двигаться вперед, разбивая каждый камень, возделывать и сажать деревья на блоках травы. Подсказка: параметры для команд till и place должны быть установлены на BACK (назад), так как Агент не может возделывать почву и сажать саженцы на блоке, на котором стоит.  

Когда Агент дойдет до золотого блока, Задание 2 будет завершено.
Игровая задача:
Разработчику требуется помощь, чтобы запрограммировать Агента для перемещения по большой территории и посадки саженцев только на блоках с травой. Агенту необходимо пройти через каждый блок. Ранее для этого мы бы использовали вложенный цикл. Но теперь в этом нет необходимости, поскольку мы можем выполнить то же действие с помощью функций.

Задание состоит из 2 частей.

Часть 1. Необходимо закодировать три новые функции с помощью последовательностей:  первую для движения вперед forward, вторую для поворота налево turn left, третью для поворота направо turn right. Затем использовать эти функции в цикле for, чтобы Агент проходил по каждому блоку на поле, ряд за рядом, пока не достигнет золотого блока.

Часть 2. Необходимо добавить код, чтобы Агент дошел до блоков травы, через которые раньше он проходил, и посадил на них деревья. Для этого необходимо добавить в функцию условную инструкцию if else, чтобы проверить являются ли блоки травой. Когда код запущен, Агент будет перемещаться по всему полю, пока не обнаружит блок травы. Он обработает этот блок и посадит на нем дерево. Когда Агент доберется до золотого блока, Задание 3 и урок будут завершены. 
Команды, используемые на уроке
Словарь
Функция -
это команда, которую можно создать и которая при вызове запускает группу других команд или любой фрагмент кода.

Комментарии - 
это фрагменты текста, полезные для разработчика, вставленные в код, который не запускается на компьютере.
Place your function below - Разместите свою функцию ниже.

This function makes the Agent plant trees to its left - Эта функция заставляет агента сажать деревья слева от себя.
Set the Agent’s inventory slot to 2 - Установите слот инвентаря агента на 2.

Make the Agent place fertilizer to its left - Заставьте Агента поместить удобрение слева от себя.

Видеоразбор урока 9
Курс "Введение в программирование на языке Python"
Проверь себя
Ответь на несколько вопросов.
Получи максимальный результат или пройди тест повторно. 
Левелнись! 
Начать тест
Что такое функция?
Упс! Ответ неверный.
Упс! Ответ неверный.
И это правильный ответ!
Следующий вопрос
Проверить
Узнать результат
Чем полезны функции?
И это правильный ответ! 
Упс! Ответ неверный. 
Упс! Ответ неверный. 
Следующий вопрос
Проверить
Узнать результат
Что такое комментарии?
Это правильный ответ!
Упс! Ответ неверный. 
Упс! Ответ неверный. Это определение синтаксиса.
Следующий вопрос
Проверить
Узнать результат
Как написать комментарий?
Упс! Ответ неверный. 
Упс! Ответ неверный. 
Ответ верный! 
Следующий вопрос
Проверить
Узнать результат
Нууу это что-то неральное!
Пройди тест заново. 
Пройти еще раз
Что-то ты не очень старался. 
Пройди тест заново и набери максимальное количество правильных ответов. 
Пройти еще раз
Что-то ты не очень старался. 
Пройди тест заново и набери максимальное количество правильных ответов. 
Пройти еще раз
Все хорошо, но может быть лучше!  
Пройди тест заново и набери максимальное количество правильных ответов. 
Пройти еще раз
Уже хорошо, но может быть лучше!  
Пройди тест заново и набери максимальное количество правильных ответов. 
Пройти еще раз
Ты круто справился! 
Тест пройден успешно! Урок завершен. Впереди тебя ждут новые миссии.
Играй и учись. Левелнись! 
Пройти еще раз
Возник вопрос?
Задай его!
Заполни форму или отправь сообщение на info@levelbox-game.com.
Мы ответим как можно быстрее.
*Отправляя сообщение, ты подтверждаешь согласие на обработку персональных данных