Перейти к содержимому

Арифметика

Сложить, вычесть, умножить, разделить — и что делать, когда действий два

простоНужно знать: Как работает процессор

В блоке op четыре поля: куда положить ответ, что сделать и два числа, над которыми это делают. Числа можно писать прямо в поля, а можно подставлять переменные — блоку всё равно.

тик 0
Установить0
=
Установить1
=
Операция2
=
Операция3
=
Операция4
=
Операция5
=
@counter0number
anullnull
bnullnull
суммаnullnull
разностьnullnull
произведениеnullnull
частноеnullnull

Первые две строки кладут в a и b числа, остальные четыре считают. В окне переменных видно все четыре ответа сразу:

Операция В блоке Что считает Ответ при a = 12, b = 5
add + сложение 17
sub - вычитание 7
mul * умножение 60
div / деление 2.4

Деление обычное, а не нацело: 12 разделить на 5 — это 2.4, и дробная часть никуда не пропадает. Как получить целое и остаток — в уроке «Целые и точность».

Привычной записи итог = (a + b) * 2 в mlog нет. Инструкция делает ровно одно действие, поэтому выражение разворачивается в цепочку, а промежуточный ответ кладётся в переменную:

тик 0
Установить0
=
Установить1
=
Операция2
=
Операция3
=
@counter0number
anullnull
bnullnull
суммаnullnull
итогnullnull

Сначала сумма становится 17, потом она же идёт в умножение — и итог выходит 34. Имя сумма здесь не служебное, а придуманное: назвать промежуточный ответ можно как угодно.

Половине операций второй аргумент не нужен вовсе, и редактор его просто не показывает: выбрали abs — второе поле исчезло. Так устроены модуль, корень, округления, тригонометрия.

op abs ответ -5 даёт 5, op sqrt ответ 81 — девять. Поле осталось одно, потому что и числа для работы хватает одного.

Операция В блоке Что делает Пример
pow ^ возводит в степень op pow ответ 2 10 → 1024
max max берёт большее из двух op max ответ 3 7 → 7
min min берёт меньшее op min ответ 3 7 → 3

max и min — привычный способ не дать числу выйти за границы: сперва max с нижней, потом min с верхней, и значение зажато между ними.

Неофициальный проект, с Anuke не связан. Спрайты, шрифты и переводы Mindustry © Anuke, используются по GPL-3.0; Fira Code — по OFL-1.1. Код сайта — GPL-3.0.