티스토리 뷰
이전 공부
2020/11/30 - [코딩 공부] - 아이패드 앱 플레이그라운드 스위프트(Playgrounds Swift)로 코딩 공부하기 3. for 루프
이번엔 조건 코드인 if 문을 배웠습니다.
첫 번째는 스위치들을 모두 켜기인데 스위치들의 상태가 코드를 실행할 때마다 랜덤으로 바뀝니다.
지금은 모든 스위치가 꺼져 있지만 다음에 코드를 실행하면 가운데 스위치가 켜져 있을수도 있습니다.
그래서 스위치가 꺼져있는지 켜져있는지 확인하고 스위치를 토글하는 명령문을 만들어야 합니다.
먼저 앞으로 두 칸 이동한 다음 if 문을 이용해서 꺼진 스위치 위에 있으면 스위치를 켜고 앞으로 이동하고 아니라면 그냥 앞으로 이동하는 코드를 만들었습니다.
그 다음 스위치의 갯수만큼 3번 반복하는 for 문을 만들어서 실행했습니다.
두 번째에도 스위치들을 켜고 보석을 수집해야 하는데 이번에도 맵의 상태가 내 코드를 실행할 때마다 바뀝니다.
스위치가 있을수도 있고 스위치 대신 보석이 있을수도 있습니다.
그래서 if else 문을 사용해서 꺼진 스위치 위에 있으면 스위치를 누르고 보석 위에 있으면 보석을 수집하는 코드를 만들어서 for 문으로 2번 반복시켰습니다.
세 번째도 비슷하게 보석을 수집하고 스위치들을 켜기인데 이번에는 스위치가 켜져 있을수도 있고 꺼져 있을수도 있어서 스위치의 상태를 확인하고 행동하는 코드를 짜야 합니다.
앞전과 마찬가지로 if else 문을 사용해서 코드를 만든 다음 12번 반복했습니다.
네 번째는 소용돌이 모양으로 빙글빙글 돌아가면서 보석들을 수집하기입니다.
if 문으로 타일 위에 보석이 있는지 없는지 확인하고 보석을 수집하는 코드를 만든 다음 for 문으로 16 반복시켰습니다.
아직은 각 타일마다 조건을 확인하는 코드를 짜는 단계거든요...
다섯 번째는 보석들을 수집하고 스위치를 켜기입니다.
이번엔 코드가 좀 기네요.
먼저 타일 위에 보석이 있는지 스위치가 있는지 확인하는 함수를 만들고 moveForward() 여러번 치기 귀찮아서 두 칸 이동하는 함수도 만들었습니다.
그 후 타일마다 행동을 지정해주는 코드를 써서 해결했네요.
여섯 번째는 3x3 바둑판에 있는 보석들과 스위치들을 해결하기입니다.
역시 뒤로 돌 때 turnLeft() 여러번 치기 귀찮아서 turnAround() 함수를 먼저 만들고 if else 문을 사용해 타일의 상태를 확인하고 이동하는 함수인 checkTile()을 만들었습니다. 근데 완성된 코드를 보니까 turnAround()가 필요 없네요? 왜 만들었지?
어쨌든 checkTile() 함수를 for 문으로 반복시키니까 코드가 아주 간단하고 보기 편해졌네요!
와 내가 이렇게까지 발전하다니 대단하다.
마지막 일곱 번째는 길을 따라 이동하면서 보석을 수집하고 스위치를 켜기인데 중간에 옆으로 빠져서 보석을 수집하는 코스도 추가해야합니다.
옆으로 빠진 곳에서 뒤돌아 나와야 하니까 turnAround() 먼저 만들고 무브포워드 타이핑도 좀 덜 해보려고 세 칸 직진하는 함수도 만들었네요. 그리고 보석과 스위치를 기준으로 오른쪽과 왼쪽을 해결하는 함수들도 만들었습니다.
그 다음 if else 문을 사용해서 타일의 조건들을 확인하는 코드를 만든 다음 for 문으로 5번 반복했습니다.
고수분들의 더 좋은 코딩 방법이 있으시면 댓글로 알려주세요!
초보자에게는 많은 도움이 됩니다 ㅎㅎ
다음 공부
2020/11/30 - [코딩 공부] - 플레이그라운드 스위프트로 코딩 공부하기 5. 논리 연산자
'코딩 공부' 카테고리의 다른 글
스위프트 플레이그라운드로 코딩 공부하기 6. While 루프 (0) | 2020.12.01 |
---|---|
플레이그라운드 스위프트로 코딩 공부하기 5. 논리 연산자 (0) | 2020.11.30 |
아이패드 앱 플레이그라운드 스위프트(Playgrounds Swift)로 코딩 공부하기 3. for 루프 (0) | 2020.11.30 |
플레이그라운드 스위프트(Playground Swift)로 코딩 공부 2. 함수 코드 모음 (0) | 2020.11.30 |
아이패드로 코딩 공부하기! 플레이그라운드 스위프트(Playground Swift) 1. 명령 (0) | 2020.11.29 |
- Total
- Today
- Yesterday
- 백준
- 그리디
- 다이나믹프로그래밍
- BFS
- dp
- hackerrank
- 컴퓨터사이언스
- 프로그래머스
- 알고리즘
- 애플
- c++
- DFS
- 스위프트플레이그라운드
- 너비우선탐색
- 기초
- 영어공부
- greedy
- 해커랭크
- C언어기초
- 깊이우선탐색
- 캐나다생활
- 문제풀이
- 아이패드
- 컴퓨터
- 코딩공부
- c언어
- 캐나다
- 프로그래밍
- 컴퓨터공부
- 하드웨어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |