Создайте свои функции

Создайте свои функции

> Руководство

Создание функции

Мы уже использовали несколько стандартных функций (setWeapon, moveToward и т. д.). Также можно создавать собственные функции со следующим синтаксисом:

Ключевое слово return, необязательное, служит для возврата значения функцией. В предыдущем примере функция принимает параметры x и y и возвращает их сумму: x + y.

Создание функции canFinish(враг)

Наш предыдущий код для условия «finish» врага довольно велик и плохо переиспользуется, поэтому мы поместим его в функцию.

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

Копируем код финишера в функцию, которая записывается так:

примечание: не забудьте указать, о каком оружии идёт речь, чтобы расчёт работал. Также функция возвращает истину, если у вас достаточно очков хода, чтобы произвести достаточно выстрелов по врагу для его уничтожения, и ложь, если наоборот он выживет (значит, вы можете заняться чем-то другим).

Теперь мы можем использовать нашу функцию canFinish в основном коде, чтобы написать его намного проще:

Знали ли вы? Перемещение одного и того же кода несколько раз в функцию называется Факторизацией.

Создание функции getClosestCellToUseWeapon(враг)

Возможно, вы видели, что для использования оружия Machine Gun или позже Laser, вы должны быть на одной линии с врагом.

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

Для этого существует стандартная функция getCellsToUseWeapon, которая возвращает все возможные клетки для использования оружия по цели. Нужно выбрать одну из них: ближайшую!

Создадим функцию getClosestCellToUseWeapon и используем цикл for in, чтобы вычислить клетку, расстояние от которой до нас минимально:

Используем её, чтобы заменить перемещение moveToward:

Если вы чувствуете себя уверенно, вы можете написать функции:

Вы также можете:

Чтобы лучше видеть местность и клетки, не стесняйтесь использовать тактический режим, нажимая T в бою.

В следующих главах мы рассмотрим более сложные аспекты, поэтому уделите время игре с вашими функциями и понятиями, которые мы видели ранее, которых уже достаточно, чтобы подняться в рейтинге!

❓ Викторина

Какая функция, возвращающая квадрат числа, является правильной?

function квадрат(x) { return x * x } function квадрат(x) { x * x } function квадрат() { return x * x } fonction квадрат(x) { return x * x }

Какая функция вычисляет максимум списка?

function максимум(список) { var макс = -99999 for (var e in список) { if (e > макс) { макс = e } } return макс } function максимум(список) { var макс = 99999 for (var e in список) { if (e < макс) { макс = e } } return макс } function максимум(список) { var макс = 99999 for (var e in список) { if (e > макс) { макс = e } } return макс } function максимум(список) { var макс = -99999 for (var e in список) { if (e < макс) { макс = e } } return макс }

Полный ИИ