티스토리 뷰

반응형

이전 공부

2020/12/02 - [코딩 공부] - 아이패드 앱 스위프트 플레이그라운드로 코딩 공부하기 8. 변수

 

아이패드 앱 스위프트 플레이그라운드로 코딩 공부하기 8. 변수

와 드디어 코딩 배우기 1이 끝나고 코딩 배우기 2로 넘어왔습니다. 짝짝짝~~~!!! 작심삼일로 끝나지 않고 여기까지 오다니... 오늘은 변수를 공부했습니다. 변수 배우기의 첫 번째 문제는 변수를

hgu-can.tistory.com

 

 

 

스위프트 플레이그라운드로 코딩 공부하기 아홉 번째 유형 파트입니다. 

와 많이 왔다~

뿌듯^^

 

 

 

 

그 동안 인터넷 글을 보다보면 메소드란 말을 많이 봤는데 정확히 무슨 뜻인지는 다 설명을 안 하고 메소드라고 언급만 하시더라고요. 그래서 영어 단어 뜻 그대로인가? 하고 있었는데 오늘에서야 코딩에서의 메소드가 무엇인지 정확히 알게 되었습니다. 

내 눈높이에 딱 맞는 수업~^^

 

 

 

 

유형 파트의 첫 번째 문제는 스위치들을 모두 켜는 것인데 스위치로 가려면 포탈을 지나가야 해서 저 포탈을 비활성화하는 코드를 써 주어야 합니다. 

드디어 포탈의 상태를 true와 false 명령어를 사용해 껐다 켰다 할 수 있게 되었어요. 

먼저 그린 포탈의 액티브 상태를 거짓으로 해서 포탈을 끈 다음 스위치로 이동해서 해결하는 함수를 만들고 while 루프로 반복시켰습니다. 

 

 

 

 

두 번째는 보석들을 수집한 후 마지막에 있는 스위치를 켜는 것입니다. 

이번에는 포탈을 시간에 따라 껐다 켰다 해야해서 포탈 너머에 있는 보석을 먼저 수집하고 난 후 포탈을 타고 이동해서 나머지를 수집하도록 했습니다. 

먼저 포탈을 끄고 젬과 스위치들의 카운터 변수를 선언한 후 뒤도는 함수를 만들었습니다. 

 

먼저 while 루프를 사용해서 맨 처음 보이는 보석 4개를 수집한 후 포탈이 다시 켜지도록 했습니다. 

그 후 포탈을 타고 이동해 스위치를 먼저 해결한 다음 포탈을 끄고 뒤돌아 나머지 보석들을 수집했습니다. 

 

 

 

 

세 번째는 두 가지 포탈 뒤에 있는 보석들을 수집하기입니다. 

이 때까지만 해도 전 while 루프만 사용해서 해결해야 하는 줄 알고 while 루프 안에 들어가는 코드를 짜다 보니 젬 카운터 갯수마다 포탈을 켜 줬다가 껐다가 하면서 좀 왔다갔다 하면서 클리어가 되는 코드를 짰는데 지금 보니까 그냥 일반 명령문을 사용해서 더 단순하게 짜도 됐을 거 같습니다. 

이 당시엔 while 루프 안에 끼워맞춰 볼 거라고 굉장한 고민을 했었음...

 

 

 

 

네 번째는 포탈을 둘러싸고 있는 보석들과 스위치들을 해결하기입니다. 

이거도 푸는 데 시간이 많이 걸렸던 기억이 납니다. 

저는 먼저 캐릭터의 오른쪽에 보이는 주황색 포탈 주변 스위치들을 먼저 켠 후 직진해서 초록 포탈 주변에 있는 보석들을 수집하고 그 옆에 있는 주황색 포탈 주변의 보석들을 수집한 후 되돌아가 초록 포탈을 타고 마지막 초록 포탈 주변의 스위치 네 개를 켜는 동선을 짰습니다. 

 

 

먼저 젬 카운터와 스위치 카운터의 변수를 각각 초기화한 후 각종 행동 함수들을 만들고 보석과 스위치가 두 개씩 있는 부분을 해결하는 solveTwoTiles() 함수를 만들고 보석과 스위치가 네 개씩 있는 부분을 해결하는 solveFourTiles() 함수를 만들었습니다. 

 

 

그리고 명령문 시작에서 포탈들을 다 끄고 while 루프로 보석 스위치 2개 구간을 해결한 다음 초록 포탈을 켜고 보석이 4개 있는 곳으로 이동해 while 루프를 이용해 보석들을 수집했습니다. 

그 다음 초록 포탈을 타고 스위치가 있는 곳으로 이동한 후 초록 포탈을 다시 끄고 while 루프를 사용해 남아 있는 스위치들을 해결했습니다. 

 

 

다섯 번째는 제게 가장 난이도가 높았던 스테이지입니다. 

포탈을 타고 이동해서 임의의 위치에 생성되는 보석들을 수집하기. 

코드를 어떻게 짜야 하나 한참 고민했던 것 같습니다. 살짝 멘붕도 오고...ㅋㅋㅋ

그러다 구글링 해 보니까 저런 식으로 구역을 나눠서 행동하는 코드를 짜서 해결하셨다는 분이 있어서 저도 가운데 구역을 해결하는 함수와 양 옆을 해결하는 함수를 만들었습니다. 

 

 

가운데 부분에 있는 가로 세 칸 타일을 해결하는 함수 solveThreeTiles() 와 양 옆을 해결하는 함수 sideLine()

 

 

그리고 분홍색 포탈을 타고 이동해서 분홍색 포탈이 있는 옆 부분을 해결하고 가운데로 돌아와 포탈 너머에 있는 세 타일을 해결하는 함수 pinkPortal()를 만들고 

 

 

파란 포탈을 타고 이동해 파란 포탈이 있는 라인을 해결한 다음 다시 가운데로 돌아와 파란 포탈 너머에 있는 타일 세 칸을 해결하는 함수 bluePortal()를 만들었습니다. 

마지막으로 while 루프에 젬 카운터가 토탈 젬보다 적을 동안 반복하는 조건을 넣어서 클리어했습니다. 

처음에 발상의 전환이 어려워서 끙끙 앓았던 문제 ㅠㅠ

 

 

너무 힘들고 오래걸렸기 때문에 영상도 찍어보았습니다. 

어려웠지만 해결하고 나니까 뿌듯!

 

 

작심삼일로 접지 않고 이어지는 다음 공부

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

 

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

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

hgu-can.tistory.com

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함