함수 만들기 (JavaScript)

함수 만들기

> 튜토리얼

함수 만들기

우리는 이미 여러 함수와 메서드(setWeapon, moveToward 등)를 사용해 보았습니다. 다음 문법으로 나만의 함수를 만들 수도 있습니다:

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 }

완성된 AI