고민사항🤔 맵을 천천히 살펴보니 다음과 같은 결론을 얻을 수 있었다. 1. 블루포탈로 이동 2. 잼이 1개이상일 시 블루포탈 비활성화 3. 잼을 먹음 4. 잼이 2개라면 블루포탈 활성화 and 핑크포탈 비활성화 5. 잼이 3개라면 핑크포탈 활성화 pinkPortal.isActive = false var gemCount = 0 var switchCount = 0 func move() { if !isBlocked { moveForward() } else { turnLeft() } } func collect() { if isOnGem { collectGem() gemCount += 1 } } func potalHandler() { if gemCount == 1 { bluePortal.isActive = fal..
고민 🤔 1. while문의 실행 조건 > 보석을 수집할 때 동일한 수의 스위치를 작동시켜야한다. var gem = 0 //보석을 할당할 변수 var switchCount = 0 //스위치를 할당할 변수 두개의 변수에 할당된 정수가 같아질때까지 작동 2. 초기엔 둘 다 0임으로 while문에 || (or)연산자를 통해 추가 조건을 작성해준다 while gem == 0 || gem != switchCount { //여기에 움직임, 보석수집, 스위치 On코드 작성 } 3. 움직임에 대한 코드 작성 앞이 막혀있지 않다면 앞으로 직진 왼쪽이 막혀있다면 오른쪽으로 턴, 오른쪽이 막혀있다면 왼쪽으로 턴 func moveFlow() { if !isBlocked{ moveForward() } else if isBloc..
let switchCounter = numberOfSwitches var gem = 0 //gem갯수를 담을 변수 선언 //상수와 변수의 값에 따른 작동로직 while switchCounter != gem { if isOnGem { collectGem() gem = gem + 1 } if !isBlockedRight { turnRight() } else if !isBlockedLeft { turnLeft() } moveForward() }
고민할 사항🤔 주어진 문제를 정리해보면 1. 보석은 3개만 수집되어야한다. 2. 스위치는 4개만 작동되어야한다. Flow 생각 1. 보석을 담은 변수와 , 스위치 카운터를 담은 변수가 있어야한다. var gemCounter = 0 var switchCounter = 0 2. 하나씩 추가하며 조건에 충족하면 더이상 보석을 수집하거나 스위치를 누르면 안된다. while gemCounter < 3 || switchCounter < 4 { //조건을 만족할때까지 실행될 코드 작성 } 3. 움직임 - 왼쪽이 막혀있지 않다면 왼쪽으로 돌기 - 오른쪽이 막혀있지 않다면 오른쪽으로 돌기 - 그 외의 경우에는 직진 func moveFlow() { if !isBlockedLeft { turnLeft() moveForwar..