> 튜토리얼
우리는 이미 여러 함수와 메서드(setWeapon, moveToward 등)를 사용해 보았습니다. 다음 문법으로 나만의 함수를 만들 수도 있습니다:
def 키워드add( x, y ): 문자, 그리고 그 아래에 들여쓰기한 명령 블록return 키워드는 선택 사항이며, 함수가 값을 반환하게 합니다. 앞의 예에서 함수는 매개변수 x와 y를 받아 그 합 x + y를 반환합니다.
Python에서는 함수를 사용하기 전에 정의해야 합니다. 그래서 함수를 메인 코드보다 앞, 파일 맨 위에 둡니다.
canFinish(enemy) 함수 만들기적에 대한 "마무리" 조건을 처리하던 앞의 코드는 꽤 길고 재사용하기 어려우므로, 함수로 만들어 보겠습니다.
적을 받아서 그 적을 끝장낼 수 있는지 여부를 불리언으로 반환하는 함수 canFinish(enemy)를 직접 만들어 봅시다.
마무리 코드를 다음과 같이 함수 안으로 옮깁니다:
이제 메인 코드에서 canFinish 함수를 사용할 수 있어 코드가 훨씬 간단해집니다:
알고 있었나요? 여러 번 나오는 코드를 하나의 함수로 옮기는 것을 함수 추출이라고 합니다.
getClosestCellToUseWeapon(enemy) 함수 만들기기관총이나 나중에 얻게 될 레이저를 사용하려면 적과 일직선 위에 있어야 한다는 것을 눈치챘을지도 모릅니다.
따라서 권총처럼 단순히 적을 향해 이동하는 대신, 무기를 사용할 수 있는 칸으로 가야 합니다.
이를 위해 me.weaponCells(enemy) 메서드는 대상에게 무기를 사용할 수 있는 모든 칸을 반환합니다. 그중 하나를 골라야 하는데, 바로 가장 가까운 칸입니다!
그러면 getClosestCellToUseWeapon 함수를 만들고, for in 반복문으로 우리와의 거리가 가장 짧은 칸을 찾아봅시다:
이 함수로 이동 코드를 바꿉니다:
지형과 칸을 더 잘 보려면 전투 중에 T 키를 눌러 전술 모드를 사용해 보세요.
다음 챕터들에서는 더 어려운 주제를 다룹니다. 그러니 시간을 들여 지금까지 만든 함수와 배운 개념들을 이것저것 시험해 보세요. 이것만으로도 이미 랭킹을 올리기에 충분합니다!
수의 제곱을 올바르게 반환하는 함수는 무엇일까요?
def square(x): return x * x def square(x): x * x def square(): return x * x function square(x): return x * x
리스트의 최댓값을 계산하는 함수는 무엇일까요?
def maximum(my_list): maxi = -99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e < maxi: maxi = e return maxi def maximum(my_list): maxi = 99999 for e in my_list: if e > maxi: maxi = e return maxi def maximum(my_list): maxi = -99999 for e in my_list: if e < maxi: maxi = e return maxi
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.