> Руководство
Мы уже использовали несколько стандартных функций (setWeapon, moveToward и т. д.). Также можно создавать собственные функции со следующим синтаксисом:
functionсумма( x, y ){ x + y }Ключевое слово return, необязательное, служит для возврата значения функцией. В предыдущем примере функция принимает параметры x и y и возвращает их сумму: x + y.
canFinish(враг)Наш предыдущий код для условия «finish» врага довольно велик и плохо переиспользуется, поэтому мы поместим его в функцию.
Мы создадим собственную функцию canFinish(враг), которая принимает врага и возвращает булево значение, указывающее, можем ли мы его добить или нет.
Копируем код финишера в функцию, которая записывается так:
примечание: не забудьте указать, о каком оружии идёт речь, чтобы расчёт работал. Также функция возвращает истину, если у вас достаточно очков хода, чтобы произвести достаточно выстрелов по врагу для его уничтожения, и ложь, если наоборот он выживет (значит, вы можете заняться чем-то другим).
Теперь мы можем использовать нашу функцию canFinish в основном коде, чтобы написать его намного проще:
Знали ли вы? Перемещение одного и того же кода несколько раз в функцию называется Факторизацией.
getClosestCellToUseWeapon(враг)Возможно, вы видели, что для использования оружия Machine Gun или позже Laser, вы должны быть на одной линии с врагом.
Поэтому нужно будет перейти на клетку, с которой вы сможете использовать ваше оружие, вместо того, чтобы просто двигаться к врагу, как с Pistolet.
Для этого существует стандартная функция getCellsToUseWeapon, которая возвращает все возможные клетки для использования оружия по цели. Нужно выбрать одну из них: ближайшую!
Создадим функцию getClosestCellToUseWeapon и используем цикл for in, чтобы вычислить клетку, расстояние от которой до нас минимально:
Используем её, чтобы заменить перемещение moveToward:
Если вы чувствуете себя уверенно, вы можете написать функции:
estimateDamage(weapon, enemy): вычисляет урон, который нанесёт оружие weapon по enemy.getBestWeapon(enemy): ищет среди вашего оружия то, которое наносит наибольший урон по enemyВы также можете:
Чтобы лучше видеть местность и клетки, не стесняйтесь использовать тактический режим, нажимая 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 макс }
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.