УДК 373
DOI 10.25688/2072-9014.2019.47.1.12
А.Г. Сиденко
Изучение цикла while при обучении программированию на языке Python с элементами геймификации в Minecraft
В статье рассмотрены некоторые возможности использования программирования на языке Python в основной и средней школе на основе применения игровых сценариев в виртуальном мире Minecraft. Особенностью изучения данной темы в школьном курсе информатики является ее практико-ориентированная направленность, возможность применения полученных теоретических знаний на практике, в том числе и с построением примеров использования в различных областях.
Ключевые слова: геймификация образовательного процесса; язык Python; программирование; игровая среда; теория и методика обучения информатике в школе.
При изучении основ программирования необходимо сформировать у учащихся понятия базовых алгоритмических конструкций, в число которых входит алгоритмическая структура «следование», алгоритмическая конструкция «условие», алгоритмическая конструкция «цикл» [1, 2]. Кроме того, важной частью изучения основ программирования является практико-ориентированный подход. Применение такого подхода обеспечивает необходимую связь между теоретическими навыками и практическим применением полученных знаний.
Циклы позволяют программам выполнять один и тот же код снова и снова. Такая структура применяется, когда нужно использовать написанный код несколько раз. В настоящей статье рассматривается цикл с условием while — «пока». Выполнение такого кода зависит от условия. Цикл будет выполняться, пока условие будет принимать значение true — «истина». Цикл прекращает работу, когда условие принимает значение false — «ложь».
Пример кода, который реализует конструкцию цикла while:
k=1
while k <= 10: print(k) count += 1
рпп^«конец цикла»)
Переменная k используется для подсчета повторений цикла. Сначала присваиваем значение k=1. Внутри цикла значение k будет изменяться на единицу
© Сиденко А.Г., 2019
ТРИБУНА МОЛОДЫХ УЧЕНЫХ
95
при каждом запуске цикла. После того как значение превысит 10, цикл остановится. Вывод на экран фразы «конец цикла» после остановки цикла известит пользователя о том, что цикл прекратил свою работу.
В школьном курсе информатики изучению таких циклов отводится 1 час, что является недостаточным временем, для того чтобы рассмотреть возможности применения цикла на практике.
Для этого предлагаем рассмотреть возможность изучения данной темы с реализацией программ в игровом мире Minecraft [3]. Сюжет игры строится на том, что необходимо взаимодействовать с предметами окружающего мира — кубическими конструкциями различного типа, искать ископаемые ресурсы, выполнять сценарии и взаимодействовать с другими игроками. Рассмотрим возможность интегрировать программный код, написанный в среде разработки Python и виртуального игрового мира, при помощи модуля Python IDLE (версия 3.7.1), Minecraft Python API и Spigot Minecraft сервер. Данные программы являются кросс-платформенными и могут быть установлены на различные операционные системы.
Возьмем за основу игру «Найди спрятанное» и напишем код для реализации такой игры. Случайным образом, при помощи генератора случайных чисел, разместим «золотой» блок (minecraft:gold_block). Задача игрока его обнаружить. В процессе поиска игроку будут выводиться на экран подсказки, которые сообщают, насколько далеко он находится от цели. Если цель очень далеко, то на экран выводится подсказка «Очень далеко», если близко — «Ты у цели». Если игрок встанет на «золотой» блок, игра завершится. Рассмотрим код такой программы:
from mcpi.minecraft import Minecraft
import Math
import time
import random
mc = Minecraft.create( )
dX = random.randint(-132, 132) dZ = random.randint(-132, 132) dY = mc.getHeight(dX, dZ)
block = 41
mc.setBlock(dX, dY, dZ, block) mc.postToChat(«Co3AaeM блок»)
while True:
pos = mc.player.getPos( )
dist = math.sqrt((pos.x - dX) ** 2 + (pos.z - dZ) ** 2)
if dist > 150 :
mc.postToChat(«04eHb далеко»)
elif dist > 75 :
mc.postToChat(«Далеко») elif dist > 38 :
mc.postToChat(«Tbi почти рядом»)
elif dist > 19 :
mc.postToChat(«He далеко»)
elif dist > 9 :
mc.postToChat(«Ty у цели») elif dist == 0 :
mc.postToChat(«Цель достигнута»)
break
Прежде чем создать «золотой» блок, программа выбирает для него место, чтобы он не оказался под землей. Для этого используется функция getHeight ( ). Функция случайным образом выбирает координаты x и z на поверхности и находит соответствующую координату y блока, не являющегося воздухом, но расположенного выше остальных, а значит лежащего на поверхности земли. Затем программа создает «золотой» блок (block = 41), который можно разместить на указанном месте случайным образом. Команда import math импортирует модуль math, отвечающий за вычисления в языке Python. При помощи строки dist = math.sqrt((pos.x - dX) ** 2 + (pos.z - dZ) ** 2) находим расстояние от игрока до «золотого» блока. В данной формуле используется теорема Пифагора, которая определяет расстояние до объекта, в какой бы точке от координат игрока он ни находился. Сообщение-подсказку выводит программа, и его содержание зависит от удаленности игрока от объекта. Имеющаяся в конце кода команда break останавливает работу цикла.
С использованием такого подхода реализуются на практике теоретические знания об алгоритмической конструкции цикла с условием while. Задачи подобного типа встречаются в заданиях государственной итоговой аттестации в 9-м классе, они являются одними из самых сложных из числа проверяющих навыки самостоятельного составления программного кода и введения его в реализацию.
Литература
1. Заславская О.Ю. Модель, алгоритм и содержание подготовки учителя информатики в современных условиях // Вестник Российского университета дружбы народов. Серия «Информатизация образования». 2007. № 4. С. 52-58.
2. Поляков К.Ю., Еремин Е.А. Информатика. 10 класс. Углубленный уровень: учебник в 2 ч. Ч.1. М.: БИНОМ. Лаборатория знаний, 2018. 344 с.
3. Amazing Activity Book For Minecrafters: Puzzles, Mazes, Dot-To-Dot, Spot The Difference, Crosswords, Maths, Word Search And More. Gameplay Publishing, 2016. 82 p.
Трибуна молодых ученых
97
Literatura
1. Zaslavskaya O.Yu. Model', algoritm i soderzhanie podgotovki uchitelya informatiki v sovremenny'x usloviyax // Vestnik Rossijskogo universiteta druzhby' narodov. Seriya «Informatizaciya obrazovaniya». 2007. № 4. S. 52-58.
2. Polyakov K.Yu., Eremin E.A. Informatika. 10 klass. Uglublenny'j uroven': uchebnik: v 2 ch. Ch. 1. M.: BINOM. Laboratoriya znanij, 2018. 344 s.
3. Amazing Activity Book For Minecrafters: Puzzles, Mazes, Dot-To-Dot, Spot The Difference, Crosswords, Maths, Word Search And More. Gameplay Publishing, 2016. 82 p.
A.G. Sidenko
Learning the While Cycle when Teaching Programming in a Python Language with Gamification Elements in Minecraft Virtual World
The article discusses some of the possibilities of using programming in Python language in primary and secondary schools based on the use of game scripts in the virtual world Minecraft. The peculiarity of studying this topic in the school course of computer science is its practical orientation, the possibility of applying the received theoretical knowledge in practice, including the construction of examples of using it in various fields.
Keywords: gamification of the educational process; Python language; programming; gaming environment; theory and methods of teaching computer science in school.