Similar presentations:
Виды станков с ЧПУ и их модели
1.
Основные алгоритмические конструкциии их реализация в Blueprints
2.
Линейная и ветвящаяся структура алгоритмаЛюбой алгоритм можно реализовать при помощи всего трех базовых
структур (операторов):
линейной, ветвления (оператор условия) и цикла..
Алгоритмические структуры следования, ветвления и выбора
3.
Линейная структура алгоритма — это последовательноевыполнение операторов, один за другим.
Когда требуется выполнение различных групп операторов в
зависимости от некоторых условий, то используются
алгоритмические конструкции ветвления.
Мы можем принудить программу выбирать некоторое
значение из набора предопределенных состояний, и
поможет нам в этом алгоритмическая конструкция
выбора, которая реализуется с использованием узла
Switch.
4.
Узел BranchУзел Branch выполняет роль оператора ветвления.
В зависимости от того, истинно или ложно условие в
параметре
Condition,
будет
вызываться
ветка
(выполняться
набор
команд)
True
или
False
соответственно.
Например, если в Condition будет находиться проверка
того, что уровень здоровья героя больше 0, то в True
будет вызываться игровая логика, а в случае перехода в
False игра будет завершаться.
5.
Узел SequenceУзел Sequence представляет собой специфическую версию
конструкции ветвления и позволяет последовательно
вызывать разные наборы команд. Это очень похоже на
работу
конструкции
switch
в
некоторых
языках
программирования при условии отсутствия оператора break
на концах веток.
Вызовы Sequence происходят
без видимых глазу задержек,
поэтому игроку может казаться,
что все действия выполняются
одновременно.
6.
Узел Flip FlopFlip Flop - еще один вариант конструкции ветвления Данный узел
каждый раз выбирает, какую ветку выполнять: по контакту A или B.
Если сначала вызывается A, то в следующий раз будет вызван B,
далее наоборот, и так по кругу.
Параметр Is A позволяет узнать, какая ветка была вызвана в
очередной (последний) раз. Такой узел хорошо подходит для
изменения бинарных (имеющих только позиции 0 и 1) состояний
объектов.
Например,
включение/выключение
света,
открытие/закрытие двери.
7.
Узел Flip Flop в составе схемы8.
Циклическая структура алгоритмаПри написании программ вы будете постоянно сталкиваться с
ситуацией, когда набор операторов должен быть выполнен
несколько раз подряд.
В Blueprints есть следующие способы создания повторяющейся
конструкции:
цикл с предусловием — While Loop,
циклы с параметром — Do N (и его вырожденный вариант Do Once)
и For Loop.
9.
Циклическая структура алгоритмаЦикл с предусловием работает следующим образом:
операторы (называемые телом цикла) будут выполняться до тех
пор, пока условие цикла истинно. Как только условие перестает
выполняться, программа перейдет к оператору, который идет сразу
после цикла.
Цикл с параметром обычно выполняется заданное в параметре
цикла количество раз.
Например, если начальное значение параметра равно единице, а
конечное равно четырем, цикл выполнится четыре раза.
10.
11.
Циклическая структура алгоритмаКаким может быть условие продолжения цикла?
Фактически это любое выражение, результатом вычисления
которого является значение логического типа, например
«переменная А больше 5», «цвет объекта красный» или даже
«больше 10 и меньше 15».
Если значение переменной А изначально больше пяти, то в цикл
мы даже не попадем, потому что условие сразу будет ложным, а в
случае, если значение переменной А не изменяется в теле цикла,
то есть вероятность появления бесконечного цикла.
! При работе с циклами нужно внимательно следить за изменением
значений переменных, входящих в условие цикла.
12.
Узел While LoopВ Blueprints цикл с предусловием реализован в виде узла
While Loop.
Логика, составленная из узлов, которые прикреплены к
контакту Loop Body, выполняется до тех пор, пока условие
в Condition не примет значение False (станет ложным),
после этого происходит переход к узлам по контакту
Completed.
13.
Узел Do NУзел Do N можно вызвать ровно N раз, после чего он
перестанет передавать сигнал выполнения. N задается
входным параметром, а выходной параметр Counter
показывает, какой по счету раз выполняется тело цикла.
При необходимости можно вызвать контакт Reset, после
чего узел Do N опять сможет N раз вызвать логику из
контакта Exit.
Пусть нам нужно произвести какое-то действие N
раз. Для этого нужно вызвать узел Do N, а набор
команд реализовать после контакта Exit. Для того
чтобы повторить все еще раз, вызовите контакт
Reset.
14.
Цикл Do N в составе схемы15.
Узел Do OnceУзел Do Once передает вызов ровно один раз. По сути,
это цикл Do N, где значение N равно 1. Этот узел
характеризуется параметром Start Closed, который
позволяет указать, что при запуске узел будет закрыт и
перед первым запуском необходимо вызвать контакт
Reset.
В свою очередь Reset (в соответствии со своим
названием) сбросит счетчик, в противном
случае повторение команд запущено не будет.
Do Once удобно использовать при создании
головоломок.
Например, чтобы игроку получить возможность
потянуть за рычаг, потребуется найти кнопку и
нажать на нее, чтобы активировать механизм.
16.
Использование узла Do Once для логикиактивации рычага после нажатия кнопки
17.
Узел For LoopУзел For Loop очень похож на Do N,
только здесь мы задаем не N, а
стартовый и конечный индексы. После
окончания работы цикла вызывается
контакт Completed. Узел For Loop удобен
для работы с массивами, так как путем
перебора индексов мы можем обратиться
ко всем элементам списка.
18.
Узел GateНесмотря на то что узел Gate на первый взгляд выглядит
запутанно, в реальности очень часто игровая логика реализуется
именно через него.
Чтобы узел передавал или не передавал контакт выполнения из
Enter в Exit, вызов Gate необходимо осуществлять через контакты
Open и Close соответственно. Контакт Toggle используется для
смены текущего состояния на противоположное.
19.
Узел GateПример: когда игрок входит в пещеру (отслеживание входа в
комнату относится к коллизиям и будет рассмотрено чуть позже.
Пока давайте считать, что при входе в пещеру вызывается некая
программная логика, которая сообщает о факте входа), то он путем
нажатия на заданную клавишу может достать факел. Вне пещеры
факел должен быть недоступен. Когда мы не в пещере, логика
доставания факела не должна работать.
programming