티스토리 뷰

반응형

이전 공부

2020/12/04 - [코딩 공부] - 아이패드 앱 스위프트 플레이그라운드로 코딩 공부! 10. 초기화

 

아이패드 앱 스위프트 플레이그라운드로 코딩 공부! 10. 초기화

이전 공부 2020/12/03 - [코딩 공부] - 아이패드로 코딩 공부하기 - 스위프트 플레이그라운드 9. 유형 아이패드로 코딩 공부하기 - 스위프트 플레이그라운드 9. 유형 이전 공부 2020/12/02 - [코딩 공부] -

hgu-can.tistory.com

 

스위프트 플레이그라운드로 코딩 공부하기 열 한번째 시간입니다. 

오늘은 매개변수~

 

 

매개변수 첫 번째 문제는 전문가를 불러와서 보석을 수집하기입니다. 

이젠 move 함수를 만들 수 있게 되었습니다. 

distance에 숫자를 입력하면 그 숫자만큼 타일을 이동합니다. 

와 이제 무브포워드 덜 입력할 수 있게 되었네요!

근데 지금 보니까 제가 여기 이후로 move 함수를 잘못 만들고 있었다는 것을 깨달았습니다;ㅋㅋㅋ

다음부터 꾸준히 나오겠지만 왜 그동안 내 생각대로 안 움직였는지 알았어요 ㅠㅠ

여긴 딱히 패턴이 없는 것 같아서 그냥 동선대로 코드를 짰습니다. 

 

 

두 번째는 전문가와 캐릭터를 사용해서 퍼즐을 해결하기입니다. 

이번에는 조건과 수치를 입력하면 잠금장치를 조절할 수 있는 turnLock 함수를 배웠습니다. 

앞에서 배운대로 전문가와 캐릭터를 초기화하고 turnLock 함수도 만들었습니다. 

반대편으로 돌 일도 많아서 전문가와 캐릭터가 각각 뒤도는 함수도 만들어 주었습니다. 

 

 

그리고 캐릭터가 보석을 수집하는 동선을 따라서 전문가가 장치를 작동해주는 코드를 짜서 클리어~

 

 

세 번째도 전문가와 캐릭터를 사용해서 보석들을 수집하기입니다. 

move 함수를 만들어 줬는데 지금 보니까 for 루프를 빼고 만들었네요;ㅋㅋ

어쩐지 디스턴스를 입력해도 그 만큼 안 가더라...

어쨌든 플랫폼 뒤에 있는 보석을 수집하고 밖으로 다시 나와서 턴 하는 함수도 만들어 주었습니다. 

전문가용 turnLock 함수도 만들고요~

 

 

이번에도 딱히 패턴이 보이지 않아서 맵대로 동선을 입력해주었습니다. 

 

 

덕분에 아주 구구절절이 된 코드 ㅋㅋ

 

 

네 번쨰는 전문가만 이용해서 보석들을 수집하면 됩니다. 

이번에도 덜 만든 move 함수 ㅋㅋㅋ

그래서 expert.move(distance: 5) 이런 식으로 엑스퍼트를 앞에 써 줘야 숫자만큼 작동을 했습니다. 

for 루프도 써서 만들었으면 엑스퍼트를 쓸 필요 없이 move 함수만 호출하면 숫자만큼 움직였을 것입니다...

계속 왜 안 되지? 하면서 저런 식으로 전문가 뒤에 호출해서 사용했습니다. 

 

이제는 캐릭터들을 원하는 위치에 소환할 수 있게 되었는데 저는 (1, 6) 좌표에 소환한 후 화살표를 따라 진행하는 방향으로 동선을 짰습니다. 

 

 

중간에 플랫폼 장치를 조작해줘야 하지 않았으면 반복문을 서서 진행해도 됐을 거 같은데 중간에 플랫폼 장치 조작하는 옵션은 어떻게 해야할 지 모르겠어서 그냥 깡코드를 써서 클리어했습니다. 

 

 

다섯 번째도 플랫폼을 조작해서 보석들을 수집하기입니다. 

이번에는 캐릭터를 소환할 때 방향도 지정해서 소환할 수 있게 되었습니다. 

이번에도 (덜 만든) move 함수를 만들고 (1, 8) 좌표에 전문가를 소환한 후 화살표를 따라 진행했습니다. 

첫 번째 플랫폼 앞 보석 4개를 수집하는 동안은 while 루프에 젬 카운터가 4보다 적은 동안 반복하도록 하고 플랫폼 장치 앞에 가면 플랫폼을 내리고 왼쪽으로 돌아서 보석 3개를 수집하고 반복문이 종료되도록 젬 카운터가 7보다 적은 동안 반복하라는 조건을 넣었습니다. 

 

 

그리고 마지막에 플랫폼 올리기 귀찮아서 그냥 건너편에 다시 소환해서 나머지도 클리어했습니다. 

 

 

여섯 번째는 전문가와 캐릭터를 사용해서 퍼즐을 해결하기입니다. 

이제는 캐릭터가 점프를 할 수 있게 되었습니다. 

보석 간 거리가 점프 두 칸이라 캐릭터가 두 칸 점프하는 함수 chtJumpTwoTiles를 만들어주었습니다. 

 

 

이번에도 쉽게 클리어~

 

 

일곱 번쨰는 전문가 둘을 사용해서 퍼즐 클리어 하기입니다. 

계속 move 함수를 잘못 만들었는데 저렇게 만들고 expertA.move(distance: 2), expertB.move(distance: 2) 이런 식으로 코드를 써도 잘 움직이더라고요. 

turnLock 함수에도 전문가 A, B를 넣어서 만들어주었습니다. 

 

 

이번에도 무난하게 클리어했습니다. 

이번엔 임의의 수의 보석이 나타나서 마지막에 while 반복문을 쓸 때 끝에 가서 막히면 반복문이 종료되게 하려고 조건을 저렇게 썼습니다. 

인스턴스 뒤에 조건을 적을 때에는 expert.!isBlcoked 이런 식으로는 쓸 수 없더라고요...

expert.isBlocked는 가능했지만...

그래서 expert.isBlocked == false 로 써서 !isBlocked와 같은 조건을 주었습니다. 

 

 

여덟 번째는 임의의 위치에 나타나는 보석들을 수집하기입니다. 

전문가를 불러다 플랫폼을 조작해서 캐릭터가 이동하게 해도 됐겠지만 전 귀찮아서...ㅋㅋㅋㅋ

그냥 캐릭터만 셋 불러다가 if 문 써서 한 줄씩 클리어하게 했습니다. 

 

 

캐릭터 A, C는 점프하면서 앞으로 이동하고 가운데 캐릭터 B는 쭉 직진하면서 보석을 수집했습니다. 

 

 

꼼수 쓴 마지막 퀴즈 풀이 영상 ㅋㅋㅋ

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함