일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Making Your Own Portals
- 2대 연결
- 신세지다
- feel torn
- obliged
- 코린이
- Uniting Worlds
- 렛츠톡 첫 화면
- 인앱 결제
- Polite
- crank up and down
- Playgrounds
- allege
- 해당 비즈니스 및 사이트명을 포함할 수 있도록 페이지 텍스트를 편집하세요 - wix.com
- SwiftUI
- 기초
- 맥
- Generalizing a Funcetion
- 컴터 연결
- Playground
- 코딩
- Learning
- progamming
- 구글이 좋아하는 강한 SEO 작성 방법
- collect the total
- Grammarly
- Connect and Solve
- coding
- Swift
- BASIC
- Today
- Total
IT
Day 9 - Parameters 본문
#Moving Further Forward
let expert = Expert()
func move(distance: Int) {
for i in 1 ... distance {
expert.moveForward()
}
move(distance: 6)
expert.turnRight()
move(distance: 2)
expert.turnRight()
move(distance: 5)
expert.turnLeft()
move(distance: 5)
expert.turnLeft()
expert.turnLockUp()
expert.turnLeft()
move(distance: 3)
expert.turnRight()
move(distance: 3)
expert.turnRight()
move(distance: 4)
expert.collectGem()
#Generalizing a Funcetion
let expert = Expert()
let character = Character()
func turnLock(up: Bool , numberOfTimes : Int ) {
for i in 1 ... numberOfTimes {
if up == true {
expert.turnLockUp()
} else {
expert.turnLockDown()
}
}
func expertTurnAround() {
expert.turnLeft()
expert.turnLeft()
}
func characterTurnAround() {
character.turnLeft()
character.turnLeft()
}
expertTurnAround()
turnLock(up: true, numberOfTimes: 3)
character.move(distance: 1)
character.turnRight()
character.moveForward()
character.turnRight()
turnLock(up: false, numberOfTimes: 3)
character.moveForward()
character.collectGem()
characterTurnAround()
character.move(distance: 2)
expertTurnAround()
turnLock(up: true, numberOfTimes: 1)
character.moveForward()
character.collectGem()
characterTurnAround()
character.moveForward()
character.turnRight()
character.moveForward()
character.turnRight()
turnLock(up: true, numberOfTimes: 2)
character.moveForward()
character.collectGem()
comment) I can make parameter by myself. I have to make it all the way.
#Crank up and down
let expert = Expert()
let character = Character()
func characterTurnAround() {
character.turnLeft()
character.turnLeft()
}
func turnLock(up: Bool, numberOfTimes : Int){
for i in 1 ... numberOfTimes {
if up == true {
expert.turnLockUp()
} else {
expert.turnLockDown()
}
}
}
character.move(distance: 2)
character.collectGem()
character.turnRight()
expert.turnLock(up: true, numberOfTimes: 4)
character.move(distance: 2)
character.collectGem()
characterTurnAround()
character.moveForward()
expert.turnLock(up: false, numberOfTimes: 3)
character.turnRight()
character.moveForward()
character.collectGem()
characterTurnAround()
expert.turnRight()
turnLock(up: true, numberOfTimes: 1)
expert.turnRight()
turnLock(up: true, numberOfTimes: 1)
expert.turnRight()
turnLock(up: true, numberOfTimes: 1)
for i in 1 ... 2 {
character.move(distance: 2)
character.turnLeft()
character.move(distance: 2)
character.collectGem()
characterTurnAround()
character.move(distance: 2)
character.turnLeft()
}
character.move(distance: 2)
character.collectGem()
characterTurnAround()
character.moveForward()
expert.turnLock(up: true, numberOfTimes: 3)
character.turnRight()
character.moveForward()
character.collectGem()
comment) oh it feels easy now.
#Placing at a Specific Location
let expert = Expert()
world.place(expert, atColumn: 2, row: 6)
func turnAround() {
expert.turnLeft()
expert.turnLeft()
}
func ExpertTurnLockUp() {
expert.turnLeft()
expert.turnLockUp()
turnAround()
expert.moveForward()
expert.collectGem()
turnAround()
expert.moveForward()
expert.turnRight()
}
ExpertTurnLockUp()
expert.move(distance: 5)
ExpertTurnLockUp()
expert.moveForward()
expert.move(distance: 5)
expert.collectGem()
Comments) ... Nothing.. I can now place my character or expert anywhere I want in the puzzle world after I initialize them. I called the place method on world, which is an istance of the puzzle world itself (type GridWorld)
Rivers to Cross
let expert = Expert()
world.place(expert, facing: .west, atColumn: 2, row: 8)
func collectGesms() {
while !expert.isBlocked {
// check for Gems and collect
if expert.isOnGem {
expert.collectGem()
}
expert.moveForward()
}
}
expert.moveForward()
expert.collectGem()
expert.turnLeft()
collectGesms()
expert.turnLockDown()
expert.turnLeft()
collectGesms()
expert.turnLockUp()
expert.turnRight()
collectGesms()
Placing two Characters
let expert = Expert()
let character = Character()
world.place(expert, facing: .north, atColumn: 3, row: 0)
world.place(character, facing: .north, atColumn: 0, row: 0)
for i in 1 ... 4 {
if character.isOnGem {
character.collectGem()
}
character.jump()
}
character.turnRight()
for i in 1 ... 4 {
if character.isOnGem {
character.collectGem()
}
character.jump()
}
if character.isOnGem {
character.collectGem()
}
character.turnLeft()
expert.toggleSwitch()
expert.turnLockUp()
character.move(distance: 2)
character.collectGem()
comments) Passing argument into functions with parameters will soon become second nature to you. When you learn something new in coding, it can often seem a little intimidating until you've seen and and used it in many different places. The ore you code, the more familiar you'll become with the concepts you've learned
Two experts
let expertYellow = Expert()
world.place(expertYellow, facing: .north, atColumn: 0, row: 4)
let expertBlue = Expert()
world.place(expertBlue, facing: .east, atColumn: 0, row: 0)
func MoveCollectGem() {
while !expertYellow.isBlocked {
if expertYellow.isOnGem {
expertYellow.collectGem()
}
expertYellow.moveForward()
}
}
if expertBlue.isOnGem {
expertBlue.collectGem()
}
if expertYellow.isOnGem {
expertYellow.collectGem()
}
expertBlue.move(distance: 3)
expertBlue.turnLeft()
expertBlue.turnLock(up: true, numberOfTimes: 2)
//expertYellow
expertYellow.turnLock(up: false, numberOfTimes: 1)
MoveCollectGem()
//expertBlue
expertBlue.turnRight()
expertBlue.move(distance: 4)
expertBlue.turnLock(up: false, numberOfTimes: 2)
//expertYellow
expertYellow.turnRight()
MoveCollectGem()
comments) When you have a type like Expert, you can create as many instances of that type as you want. Because they all came from the same blueprint, you can call the same methods to access the same properties on any instance of that type.
Twin peaks
let totalGems = randomNumberOfGems
let expertMJ = Expert()
world.place(expertMJ, facing: .north, atColumn: 0, row: 4)
let characterMJ = Character()
world.place(characterMJ, facing: .north, atColumn: 2, row: 0)
func CollectGems1() {
if characterMJ.isOnGem {
characterMJ.collectGem()
characterMJ.jump()
} else {
characterMJ.jump()
}
}
func CollectGems2() {
if characterMJ.isOnGem {
characterMJ.collectGem()
characterMJ.moveForward()
} else {
characterMJ.moveForward()
}
}
for i in 1 ... 6 {
CollectGems1()
}
expertMJ.turnLockUp()
characterMJ.turnRight()
characterMJ.moveForward()
characterMJ.turnRight()
for i in 1 ... 6 {
CollectGems2()
}
characterMJ.collectGem()
characterMJ.turnLeft()
characterMJ.moveForward()
characterMJ.turnLeft()
for i in 1 ... 6 {
CollectGems1()
}
comments) Finally I completed
'Learn to Code' 카테고리의 다른 글
Day 10 - World Building (0) | 2022.07.04 |
---|---|
Day 8 - Initialization (0) | 2022.05.20 |
day 7 - type (0) | 2022.05.15 |
day 6 - var [변수] vs let [상수] (0) | 2022.05.12 |
How-To : "이 애플 ID로 업데이트할 수 없음" 오류 메시지 대처법 (0) | 2022.05.06 |