var ruby = 0
var switchNum = 0
while switchNum < 6{
if !isBlockedLeft {
turnLeft()
}
if isBlocked {
turnLeft()
turnLeft()
}
if isOnClosedSwitch{
toggleSwitch()
switchNum += 1
if switchNum == 1 {
turnRight()
turnRight()
greenPortal.isActive = false
}
if switchNum == 4 {
greenPortal.isActive = true
}
if switchNum == 5 {
orangePortal.isActive = false
moveForward()
turnRight()
}
}
if isOnGem{
collectGem()
ruby += 1
if ruby == 1 {
greenPortal.isActive = false
orangePortal.isActive = false
}
if ruby == 6{
orangePortal.isActive = true
}
}
moveForward()
}
1. ruby와 switchNum 이라는 변수에 값 0을 준다.
var ruby = 0
var switchNum = 0
2. 내가 미션을 클리어 하기 위해 이동할 방향을 선정한다.
왼쪽이 막혀있지 않으면 왼쪽으로 돌아라라는 개념을 끝까지 쓰기 위해 노력해보았다 .
앞이 막혀 있다면 왼쪽으로 뒤돌기도 만들었다.
if !isBlockedLeft { // 왼쪽이 막혀있지 않다면
turnLeft() // 왼쪽으로 회전해라
}
if isBlocked { // 앞이 막혀있다면
turnLeft()
turnLeft() // 왼쪽으로 회전해 뒤를 돌아봐라
}
3. 스위치에 관련하여 코드를 먼저 짜면서 스위치가 켜져있는 개수에 따라 포털이 닫히고 열림을 설정해 보았다.
if isOnClosedSwitch{ // 스위치가 닫혀있으면
toggleSwitch() // 스위치를 키세요
switchNum += 1 // switchNum이라는 변수에 +1을 하세요.
if switchNum == 1 { // 만약에 switchNum이 1이 되면은
turnRight()
turnRight() // 오른쪽으로 뒤 돌아보세요
greenPortal.isActive = false // 그린포탈을 닫아주세요 (나머지 3개의 스위치를 켜기위해)
}
if switchNum == 4 { // 만약에 switchNum이 4가 되면은
greenPortal.isActive = true // 그린포탈을 열어주세요 (보석을 먹기 위해 이동)
}
if switchNum == 5 { // 만약에 switchNum이 5가 되면은
orangePortal.isActive = false // 오렌지포탈을 닫아주세요
moveForward() // 한칸 이동하고
turnRight() // 오른쪽을 봐주세요 (마지막 스위치를 켜기 위하여 방향설정)
}
}
4. 마찬가지로 보석에 관련하여 코드를 짜면서 보석에 개수에 따라 포털이 닫히고 열림을 설정해 보았다.
if isOnGem{ // 만약에 보석이 있다면
collectGem() // 보석을 수집하고
ruby += 1 // ruby 변수 값에 +1을 한다.
if ruby == 1 { // ruby가 만약 1이라면
greenPortal.isActive = false // 그린포탈이 닫히고
orangePortal.isActive = false // 오렌지 포탈이 닫힌다. (보석을 수집하기 위하여)
}
if ruby == 6{ // ruby가 만약 6이라면
orangePortal.isActive = true // 오렌지 포탈을 연다. ( 스위치 2개 있는곳에 가기 위해)
}
}
5. 마지막으로 while 문으로 반복하게 한다.
while switchNum < 6 { // 루트를 정했기 때문에 스위치 6이되면 반복이 되지 않게 설정하였다.
//이동 코드
moveforward() // 반복문이 실행되는 동안 앞으로 한칸 이동하는것을 고정적으로 설정해두었다.
}
* 세상의 가장자리 - 코딩배우기 2
* Swift Playground 스위프트 플레이그라운드
이번문제는 왕초보한테는 최대의 난제였다.
전체를 6번은 코드를 갈아 엎은 것 같다.
'Swift랑 친해지기 > Swift PlayGround' 카테고리의 다른 글
초기화 - 새로만들기 (0) | 2022.01.05 |
---|---|
임의의 장소에 보석 놓기 - 코딩 배우기 2 (0) | 2022.01.05 |
올바른 포털 설정하기 - 코딩 배우기2 (0) | 2022.01.01 |
포털 켜기 및 끄기 (0) | 2022.01.01 |
포털 비활성화하기 - 코딩배우기2 (0) | 2022.01.01 |