let totalGems = randomNumberOfGems
var ruby = 0
func getGem() {
if isOnGem {
collectGem()
ruby += 1
}
}
func turnAround() {
turnLeft()
turnLeft()
}
func blocked() {
if isBlocked {
turnAround()
if bluePortal.isActive {
bluePortal.isActive = false
}
else {
bluePortal.isActive = true
}
if pinkPortal.isActive {
pinkPortal.isActive = false
}
else {
pinkPortal.isActive = true
}
}
}
while ruby < totalGems {
moveForward()
getGem()
blocked()
}
1. 주어진 상수 totalGems 을 어떻게 요리할지 생각해본다.
조건에 totalGem과 보석의 개수가 같기 전까지 반복하는 while문으로 정하는게 좋을듯하다.
먼저 변수와 함수를 정의해보자
var ruby = 0 //ruby 변수 선언 및 0 값을 준다
func getGem(){ // getGem함수를 만들었다.
if isOnGem{ // 보석이 만약에 있다면
collectGem() // 보석을 수집해라
ruby += 1 // 변수 ruby 값에 +1을 해라
}
}
2. 벽을 마주하면 뒤로 도는 함수를 만들었다.
func turnAround() {
turnLeft()
turnLeft()
}
3. 벽에 닿을때 마다 포탈이 켜지고 꺼지도록 하는게 좋겠다라는 생각을 했다.
벽에 닿는 함수를 정의했다.
func blocked() {
if isBlocked {
turnAround()
if bluePortal.isActive {
bluePortal.isActive = false
}
else {
bluePortal.isActive = true
}
if pinkPortal.isActive {
pinkPortal.isActive = false
}
else {
pinkPortal.isActive = true
}
}
}
4. 반복문을 돌려 앞으로 고정적으로 이동할 수 있도록 하였고,
보석이 있으면 보석을 수집하며,
앞이 막혀 있으면은 뒤돌아보고 포탈이 켜져있으면 꺼지고, 꺼져있으면 켜질 수 있도록 하였다.
while ruby < totalGems {
moveForward()
getGem()
blocked()
}
* ios
* swift
*playground
스위프트
플레이그라운드
'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 |