Учебный курс по разработке на Python
Глава
>
Уровень
Использование словарей
Пользовательские функции с использованием словарей
Цель
Используйте пользовательскую функцию, которая проходит по полю, сажая и поливая растения.
Поле содержит несколько деревьев, которые нужно посадить; возьмите мешок с семенами, а затем пополните запасы воды у колодца. Используйте пользовательскую функцию со словарем для обхода поля, чтобы посадить и затем полить семена.
Возьмите мешок с семенами, который предоставит вам следующие семена деревьев в словаре: "orange : 3" , "pear : 4" , "apple : 3" , "peach : 2". Пройдите к яркому знаку X рядом с колодцем и используйте функцию collect(), чтобы собрать воду, следующим образом: player.collect("water").
После того как вы соберете все необходимые материалы, создайте пользовательскую функцию с именем sow_field, используя семена и воду для посадки и полива поля. Пользовательская функция будет принимать три (3) аргумента, а именно: tree, loops и direction. Используя эти аргументы, функция выполнит цикл for для полива поля.
def sow_field(tree,loops,direction):
for x in range(loops):
if direction == "right":
player.move_forward(2)
player.turn_left()
player.plant(seeds,tree)
player.water()
player.turn_right()
player.move_forward()
if direction == "left":
player.move_forward()
player.turn_right()
player.plant(seeds,tree)
player.water()
player.turn_left()
player.move_forward(2)
Первый аргумент, tree, представляет собой имя ключа, используемого в словаре, а именно: "orange", "pear", "apple" и "peach". Выберите соответствующее название при посадке.
Следующий аргумент loops определяет количество циклов, которое функция должна выполнить. Это соответствует количеству семян каждого типа в поле. Последний аргумент — direction, который может принимать значения "left" и "right". Выберите, в каком направлении должен двигаться игрок при выполнении цикла функции.
Перейдите в верхнюю часть карты после сбора воды и используйте пользовательскую функцию, например: sow_field("orange", 3, "right"). Сделайте это для всех семян деревьев, чтобы завершить уровень.