함수 만들기

함수 만들기

> 튜토리얼

함수 만들기

우리는 이미 여러 표준 함수(setWeapon, moveToward 등)를 사용했습니다. 다음 구문으로 자신만의 함수를 만들 수도 있습니다:

선택적 키워드 return은 함수가 값을 반환하도록 합니다. 이전 예제에서 함수는 매개변수 xy를 받아 그 합 x + y를 반환합니다.

canFinish(적) 함수 만들기

적의 "finish" 조건을 위한 이전 코드는 꽤 길고 재사용성이 낮으므로 함수에 넣어 보겠습니다.

적을 받아 그를 마무리할 수 있는지 여부를 나타내는 불리언을 반환하는 자신만의 함수 canFinish(적)을 만들겠습니다.

피니셔의 코드를 다음과 같이 작성된 함수에 복사합니다:

참고: 계산이 작동하도록 어떤 무기를 말하는지 지정하는 것을 잊지 마세요. 또한 이 함수는 적을 쓰러뜨릴 만큼 충분히 사격할 턴 포인트가 있으면 true를 반환하고, 반대로 그가 살아남는다면 false를 반환합니다 (그러면 다른 것을 할 수 있습니다).

이제 우리는 메인 코드에서 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 최대 }

완전한 AI