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

Метки вместо номеров строк

Номер строки в jump — не обязанность, а выбор. В текстовой записи цель можно назвать по имени

среднийНужно знать: Циклы, Как писать в игре
тик 0
Установить0
=
Операция1
=
Прыжок -> 12
если
Установить3
=
Стоп4
@counter0number
счётnullnull
готовоnullnull
set счёт 0
снова:
op add счёт счёт 1
jump снова lessThan счёт 5
set готово 1

Строка снова: — это метка. Она не инструкция: номера строки на неё не тратится, процессор её не выполняет, а jump снова ведёт на строку сразу после неё.

Такую программу разбирает сама игра: метки понимает её текстовый разбор, а не какой-то внешний редактор. Скопируйте пример в окно «Правка кода» — он заработает.

Что Как пишется
объявление метки одиночное слово с двоеточием в конце: снова:
переход на неё имя метки вместо номера: jump снова always

Правила простые:

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

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

Метка привязана к месту, а не к номеру. Она же читается: jump проверитьЗапас говорит о намерении, а jump 17 — только о строке.

  • длинные программы, которые пишут в стороннем редакторе и вставляют целиком;
  • программы, собранные чем-то другим — например, компилятором в mlog: там метки единственный разумный способ ссылаться на место;
  • переносимые куски: кусок с метками можно вставить в середину чужой программы, и ничего не съедет.

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