> Учебник
Мы уже использовали несколько функций и методов (setWeapon, moveToward и т. д.). Вы можете создавать и свои функции — вот так:
functionsum( x, y ){ return x + y }Необязательное ключевое слово return заставляет функцию вернуть значение. В примере выше функция принимает параметры x и y и возвращает их сумму: x + y.
canFinish(enemy)Наш прежний код условия «добивания» врага довольно длинный, и его трудно использовать повторно, поэтому вынесем его в функцию.
Создадим собственную функцию canFinish(enemy), которая принимает врага и возвращает булево значение: можем мы его добить или нет.
Копируем код добивания в функцию, вот так:
Теперь функцию canFinish можно использовать в основном коде, и он становится гораздо проще:
А вы знали? Перенос кода, повторяющегося в нескольких местах, в одну функцию называется вынесением в функцию.
getClosestCellToUseWeapon(enemy)Вы, наверное, заметили, что для Пулемёта, а позже и для Лазера, нужно стоять на одной линии с врагом.
Значит, придётся идти на клетку, с которой можно применить оружие, а не просто приближаться к врагу, как с Пистолетом.
Для этого метод me.weaponCells(enemy) возвращает все клетки, с которых можно применить оружие к цели. Нам нужно выбрать одну из них — ближайшую!
Создадим функцию getClosestCellToUseWeapon и с помощью цикла for of найдём клетку, ближайшую к нам:
Используем её вместо прежнего перемещения:
Чтобы лучше видеть поле и его клетки, включайте тактический режим клавишей T во время боя.
В следующих главах нас ждут темы посложнее, так что не торопитесь: поэкспериментируйте со своими функциями и уже изученными понятиями — их вполне хватит, чтобы подняться в рейтинге!
Какая из этих функций правильно возвращает квадрат числа?
function square(x) { return x * x } function square(x) { x * x } function square() { return x * x } fonction square(x) { return x * x }
Какая функция вычисляет максимум списка?
function maximum(list) { let maxi = -99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = 99999 for (const e of list) { if (e > maxi) { maxi = e } } return maxi } function maximum(list) { let maxi = -99999 for (const e of list) { if (e < maxi) { maxi = e } } return maxi }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.