티스토리 뷰

반응형

이전 공부

2020/12/01 - [코딩 공부] - 아이패드 앱 스위프트 플레이그라운드와 코딩 공부하기 7. 알고리즘

 

아이패드 앱 스위프트 플레이그라운드와 코딩 공부하기 7. 알고리즘

이전 공부 2020/12/01 - [코딩 공부] - 스위프트 플레이그라운드로 코딩 공부하기 6. While 루프 스위프트 플레이그라운드로 코딩 공부하기 6. While 루프 이제 while 루프를 배울 차례가 되었습니다. 지금

hgu-can.tistory.com


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


변수 배우기의 첫 번째 문제는 변수를 생성하고 생성한 변수를 이용해 캐릭터가 보석을 몇 개 수집했는지 세기입니다.
그간 변수도 배웠었지만 그래서 무슨 용도로 활용할 수 있는걸까? 하며 완벽히 이해하지 못한 채로 예제들을 따라하곤 했는데 변수를 왜 쓰고 어떤 상황에서 활용할 수 있는지 알게 되었습니다.
재밌고 머리에 쏙쏙 들어오는 아이패드 코딩 공부 앱 스위프트 플레이그라운드^^


두 번째는 계단을 내려가면서 보석들을 수집하기입니다.
역시 변수를 먼저 생성한 다음 보석을 하나 수집할 때 마다 카운터를 하나씩 올려주었습니다.
지금 보니까 while 루프에 !isBlocked 조건을 넣고 반복시켜도 됐네요.
다음부터는 더 깊게 생각해 보고 코드의 길이를 최대한 줄이는 걸로~


세 번째는 꺾인 길을 따라 돌면서 보석들을 수집하기입니다.
적당한 조건을 못 찾았는지 for 루프로 반복시켰네요.
지금 보니 gemCounter < 7 인 조건으로 반복시켜도 됐었겠습니다.
루프 내부엔 if 문으로 보석이 있는지 확인하고 수집하는 조건을 넣고 막혔을 땐 오른쪽으로 돌고 그 외엔 직진하는 코드를 짰습니다.


네 번째는 임의의 위치에서 임의의 시간에 나타나는 보석들을 수집하기입니다.
시작하면 모든 보석이 주어지지 않고 코드가 진행되는 동안 나머지 보석들이 나타나기 때문에 왔다갔다 하면서 보석들을 수집하는 코드를 짰습니다.
그리고 보석을 7개 모으면 종료되도록 while 루프에 gemCounter < 7 조건을 넣어서 마지막 보석을 수집했을 땐 while 루프의 조건이 거짓이 되어 종료되도록 했습니다.


다섯 번째는 보석들을 수집한 후 포털로 이동해서 스위치들을 켜기입니다.
갯수를 확인해야 하는 조건이 하나 더 늘어서 보석과 스위치에 각각 변수를 생성하고 0을 할당했습니다.
그리고 스위치에 도달할 때 까지 루프가 반복되도록 외부 루프의 조건을 스위치 카운터가 4보다 적을 동안 반복되도록 설정하고 이동하는 조건문을 먼저 넣었습니다.
그 다음 내부 루프를 하나 더 만들어서 젬 카운터가 3보다 적을 동안 반복되는 조건도 작성했습니다. 젬을 3개 다 모아서 내부 루프가 종료되면 스위치를 누르러 이동할 수 있게 했습니다.
그 후 스위치에 도달하면 상태 확인하고 스위치 토글하기~
이것도 처음에는 좀 고민했던 기억이 납니다.


여섯 번째는 임의의 시간에 나타나는 보석을 수집하는 것인데 스위치의 갯수만큼 수집해야 합니다.
while 루프에 스위치의 갯수만큼만 보석 수집을 반복하도록 하는 조건을 넣어야 하기 때문에 먼저 변수를 생성해 젬카운터에 0을 할당하고 while 루프 안에는 젬을 수집하고 막다른 곳에서는 오른쪽으로 턴 하는 조건문을 만들었습니다.
이번 문제는 쉽게 클리어!


일곱 번째는 수집한 보석의 갯수만큼 스위치를 누르는 것입니다.
이거도 처음엔 어려워서 한참 헤맸던 기억이 나네요.
while 루프를 두 개 써서 풀었는데 첫 번째 루프엔 생성된 보석을 모두 수집한 후 스위치가 있는 곳으로 갈 수 있도록 !isOnOpenSwitch 조건을 넣어서 코드를 짰습니다. 그리고 스위치가 있는 곳으로 가서 처음 보이는 스위치를 토글한 후 while 조건이 거짓이 되어 종료되도록 했습니다.
그 다음 두 번째 while 루프에서는 스위치 카운터의 갯수가 젬 카운터의 갯수랑 같아지면 종료되도록 조건을 넣고 스위치를 토글하는 조건문을 작성했습니다.
토글 스위치 조건문을 한 번만 쓸 수 있는 좀 더 효율적인 코드가 있었을까요? 아직 제 능력에서는 저기까지가 한계네요 ㅠㅠ
고수님들 댓글 부탁드립니다...


마지막 여덟 번째는 임의로 주어지는 수 만큼 보석을 수집하기입니다.
미리 주어져 있는 let 상수를 활용해 젬 카운터가 토탈 젬보다 적을 동안 while 루프가 반복되도록 한 다음 타일을 확인하고 젬을 수집하는 조건문을 넣었습니다.
젬 카운터가 토탈 젬과 같아지면 루프가 거짓이 되어 종료되면서 모든 실행도 종료!

 

접지 않고 이어지는 다음 공부

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

 

아이패드로 코딩 공부하기 - 스위프트 플레이그라운드 9. 유형

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

hgu-can.tistory.com

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 31
글 보관함