Top.Mail.Ru
← Все статьи журнала

Алгоритмы в программировании. Разбор в игре Minecraft

Алгоритмы в программировании Minecraft

Программирование – это увлекательное занятие, которое позволяет создавать компьютерные программы, игры и многое другое. Чтобы написать программу, нужно использовать специальные инструменты и техники. Одной из таких техник является использование алгоритмов.

Алгоритм – это набор инструкций, которые нужно выполнить, чтобы достичь определенного результата. Алгоритмы используются в разных областях, включая математику, науку, бизнес и программирование.

Представьте, что у вас есть коробка с лего-кубиками разных цветов и форм. Вы хотите построить машинку из этих кубиков. Как вы это сделаете?

Вот пример алгоритма, который поможет вам построить машинку из лего-кубиков:

  1. Выберите кубики для основания машины.

  2. Соедините выбранные кубики, чтобы получилось основание машины с колесами.

  3. Выберите кубики для кузова машины.

  4. Соедините выбранные кубики, чтобы получился кузов машины.

  5. Поместите кузов машины на основание с колесами.

В программировании существует множество различных алгоритмов, которые используются для решения разных задач. Вот несколько примеров алгоритмов:

Последовательный алгоритм – это простой вид алгоритма, в котором действия выполняются по очереди, одно за другим, как в списке инструкций.

Например, построим домик в Майнкрафте при помощи языка программирования Python. Наш алгоритм будет выглядеть так:

import mc from mc import world world.buildHome(0,0,0,7,7,5,5)

Первым делом мы связываем наш код с Майнкрафтом, чтоб Майнкрафт мог понимать наши команды (инструкции) с помощью команды import mc.

Вторым действием мы подключаем возможность строительства, для этого служит модуль world, его мы и берем.

Модули содержат команды, которые мы можем использовать, из модуля world. Третьим действием мы берем команду buildHome, которая строит домик, цифры в скобках – параметры нашего домика, первые три нуля – его координаты x,y,z, затем идут размеры: ширина и длина 7 блоков, а высота – 5, потом указываем id блока, из которого будет домик, то есть его материал, в данном случае 5 – дубовые доски.

Так, при помощи алгоритма из трех команд у нас получился вот такой домик:

Домик в Minecraft

Алгоритм ветвления – это алгоритм, который выполняет различные действия в зависимости от условий. Например, напишем программу с таким условием: если мы задаем число 41, то программа ставит блок золота, а если 57, то алмазный блок.

Программа будет иметь вид:

import mc from mc import world block = 41 if block == 41: world.setBlock(0,0,0,41) elif block == 57: world.setBlock(0,0,0,57)

На 3 строчке мы создаем переменную, это такая коробочка, которая может что-нибудь хранить, в нашем случае она будет хранить число, которое мы туда напишем.

На 4 строчке мы пишем условие при помощи ключевого слова if и проверяем равно ли наше значение 41, если да, то при помощи команды world.setBlock на координатах 0,0,0 появится блок с id 41, то есть блок золота.

Сейчас мы задали число 41 в переменной, посмотрим что у нас будет в Майнкрафте:

Блок золота в Minecraft

Появился блок золота! А теперь зададим другое число, поместим в переменную block число 57, все остальное оставим как было:

import mc from mc import world block = 57 if block == 41: world.setBlock(0,0,0,41) elif block == 57: world.setBlock(0,0,0,57)

В данном случае условие на строке 4 не выполняется, потому что переменная block не равна 41, поэтому программа не будет ставить золото, а перейдет к следующему условию – на строке 6, когда значение переменной block сравнивается с 57, так как значения теперь равны, у нас появится алмазный блок, как и в прошлый раз, при помощи команды setBlock мы ставим его на координатах 0,0,0, но id указываем уже другое – 57, то есть алмазный блок. Проверим:

Алмазный блок в Minecraft

Вот таким способом и работает алгоритм ветвления! Он выполняет команды в зависимости от условий.

Линейный алгоритм – это алгоритм, который обрабатывает данные последовательно, выполняя одно действие за другим.

Примером такого алгоритма могут быть обычные математические операции. Напишем такую программу:

import mc from mc import world x = 5 y = 10 z = x + y world.buildColumn(x,y,z,10,22)

Здесь у нас есть 3 переменные: x, y, z. Мы поместили значение 5 в x, 10 в y и сумму значений переменных x и y в переменную z. А затем использовали эти переменные как координаты для строительства лазуритовой колонны высотой 10 блоков.

На 5 строке, когда мы считаем значение переменной z, мы используем линейный алгоритм – выполняем сложение ранее заданных значений.

Посмотрим на результат:

Линейный алгоритм Minecraft

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

Напишем такой код:

import mc from mc import world home = 0 x = -30 while home < 0: world.buildHome(x,0,0,7,7,5,5) x = x + 10 home = home + 1

Здесь мы создаем переменную home и помещаем в нее 0, она будет считать количество построенных домиков.

Далее задаем координату x, от которой начнется строительство домиков.

После этого идет сам алгоритм цикла. Используем цикл while, который будет строить домики, пока переменная home не станет числом 6, то есть в итоге у нас должно получиться 6 домиков.

В цикле while мы пишем то, что мы хотим сделать, какие команды повторять, в данном случае мы повторяем строительство домиков командой buildHome, затем меняем координату x, добавляем к ней число 10, чтобы домики не были вплотную друг к другу.

В конце добавляем к переменной home число 1, чтобы засчитать построенный домик, эти команды выполняться столько раз, сколько мы укажем в условии цикла While.

Посмотрим, что у нас получилось:

Алгоритм цикла Minecraft

Вспомогательный алгоритм – это алгоритм, который помогает другому алгоритму выполнить определенную задачу. Он может быть вызван из основного алгоритма несколько раз или использоваться только один раз для решения определенной проблемы.

Допустим мы хотим поставить 10 блоков, из которых 5 будут дубовые доски, а оставшиеся 5 – камень.

Чтобы поставить несколько блоков в ряд мы будем использовать ранее изученный алгоритм цикла – цикл while, а в качестве вспомогательного алгоритма будет алгоритм ветвлений – условие if.

Напишем такую программу:

import mc from mc import world x = 1 block = 0 while block < 10: if x <=5: world.setBlock(x,0,0,1) x = x + 1 else: world.setBlock(x,0,0,5) x = x + 1 block = block + 1

Здесь при помощи цикла while мы ставим блоки, внутри самого цикла while находиться наш вспомогательный алгоритм – условие if. А условие такое: если координата x, по которой мы ставим блоки, меньше или равна 5, то мы будем ставить камень. В какой то момент условие перестанет выполняться, то есть когда x станет 6, в таком случае мы также продолжим ставить блоки, но уже дубовые доски.

Вот что у нас получилось:

Вспомогательный алгоритм Minecraft

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

Теперь вы знаете, что такое алгоритмы в программировании и какие они бывают. Если вы хотите изучать программирование и создавать подобные и более классные проекты, рекомендуем записаться на пробный бесплатный урок по языку программирования Python в нашей школе программирования для детей Progkids.

Еще можно почитать

Курсы для детей

Progkids обратная связь

Записаться на бесплатное занятие проще простого

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

Оставить заявку

ok image
Ваша заявка отправлена. Скоро мы свяжемся с Вами
Ошибка при отправке формы