大宮盆栽デイズ - Omiya Bonsai Days -

冗談めかす埼玉のファインマン

swift

順番に並べる@コードを学ぼう2

// 順番に並べる@コードを学ぼう2 characters = [ Character(name: .blu), Portal(color: XXX), Character(name: .hopper), Gem() ] // Remove the portal. // (ポータルを取り除く) // ポータルの位置(インデックス)は「1」(「0」はblu) characters.…

ブロックを積む@コードを学ぼう2

Coordinate って単語、「洋服をコーディネイト(うまく調整)する」といったように、「調整する」って意味かと思っていました。でも、辞典で調べたら、Coordinate は名詞で「座標」って意味なんですね。初めて知りました。 // ブロックを積む@コードを学ぼ…

反復処理を試す@コードを学ぼう2

どんどん難しくなってきています。コード内のコメントが英語になっています。これで本当に子どもがコードを学べるのだろうか?高校1年生ぐらいからじゃないと、理解できないんじゃないかな。 // 反復処理を試す@コードを学ぼう2 let columns = [0, 1, 2, 3,…

情報をまとめて保存@コードを学ぼう2

//情報をまとめて保存@コードを学ぼう2 //抜けている行に付け加える var rows = [0, 1, 2, 3, 4, 5] //それぞれの行にキャラクターを配置する placeCharacters(at: rows)

ループを作る@コードを学ぼう2

乱暴なコードになってしまいました。 もっとIFを使って、動きの指令をしてあげるべきだと思います。 //ループを作る@コードを学ぼう2 let totalGems = randomNumberOfGems //キャラクターの初期化 let ch = Character() //ブロックの初期化 let block1 = Bl…

島を渡る@コードを学ぼう2

//島を渡る@コードを学ぼう2 //キャラクターの初期化と位置設定 let character = Character() world.place(character, atColumn: 2, row: 3) //ポータルの初期化 let greenportal = Portal(color: #colorLiteral(red: 0.341176480054855, green: 0.62352943…

階段を置く@コードを学ぼう2

//階段を置く@コードを学ぼう2 world.place(Stair(), facing: south, atColumn: 3, row: 3) world.place(Stair(), facing: south, atColumn: 3, row: 1) world.place(Stair(), facing: east, atColumn: 5, row: 6) world.place(Stair(), facing: north, atC…

道をつなぐ@コードを学ぼう2

//道をつなぐ@コードを学ぼう2 let block1 = Block() let block2 = Block() let block3 = Block() let block4 = Block() let block5 = Block() world.place(block1, atColumn: 2, row: 2) world.place(block4, atColumn: 2, row: 2) world.place(block2, at…

道を作る@コードを学ぼう2

//道を作る@コードを学ぼう2 let block1 = Block() world.place(block1, atColumn: 3, row: 3) while !isOnOpenSwitch { if isBlockedLeft && isBlockedRight { moveForward() } else if isBlockedLeft { turnRight() moveForward() } else if isBlockedRig…

2つの山@コードを学ぼう2

//2つの山@コードを学ぼう2 let totalGems = randomNumberOfGems let a = Expert() let b = Character() var gem = 0 world.place(a, facing: north, atColumn: 1, row: 4) world.place(b, facing: north, atColumn: 3, row: 0) func jumpToEdge() { for i …

2つのエキスパート@コードを学ぼう2

//2つのエキスパート@コードを学ぼう2 let a = Expert() let b = Expert() world.place(a, atColumn: 3, row: 0) world.place(b, atColumn: 0, row: 4) func turnA() { a.turnLeft() a.turnLeft() } func turnB() { b.turnLeft() b.turnLeft() } turnA() a.…

2つのキャラクターを置く@コードを学ぼう2

//2つのキャラクターを置く@コードを学ぼう2 let expert = Expert() let character = Character() world.place(expert, facing: north, atColumn: 3, row: 0) world.place(character, facing: south, atColumn: 4, row: 6) func jumpGet() { for i in 1 ...…

川を渡る@コードを学ぼう2

//川を渡る@コードを学ぼう2 let expert = Expert() world.place(expert, facing: .south, atColumn: 1, row: 8) expert.collectGem() for i in 1 ... 3 { expert.moveForward() expert.collectGem() } expert.turnLockDown() expert.turnLeft() for i in 1…

決まった位置に置く@コードを学ぼう2

//決まった位置に置く@コードを学ぼう2 let expert = Expert() world.place(expert, atColumn: 1, row: 6) expert.collectGem() expert.turnLeft() expert.moveForward() expert.turnLock(up: true, numberOfTimes: 1) expert.turnRight() expert.move(dist…

上げたり下げたり@コードを学ぼう2

//上げたり下げたり@コードを学ぼう2 let expert = Expert() let character = Character() func expertTurnAround() { expert.turnLeft() expert.turnLeft() } func characterTurnAround() { character.turnLeft() character.turnLeft() } character.move(d…

関数を作る@コードを学ぼう2

//関数を作る@コードを学ぼう2 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 expe…

もっと遠くまで進む@コードを学ぼう2

//もっと遠くまで進む@コードを学ぼう2 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.tu…

力を合わせて@コードを学ぼう2

//力を合わせて@コードを学ぼう2 let expert = Expert() let character = Character() func goToPinkKey() { expert.turnLeft() while !expert.isBlocked { expert.moveForward() } expert.turnRight() expert.moveForward() expert.moveForward() expert.t…

違う型のインスタンスを使う@コードを学ぼう2

//違う型のインスタンスを使う@コードを学ぼう2 let expert = Expert() let character = Character() expert.moveForward() expert.turnLockUp() for i in 1 ... 2 { for i in 1 ... 2 { character.moveForward() if character.isOnGem { character.collect…

エキスパートを育てる@コードを学ぼう2

//エキスパートを育てる@コードを学ぼう2 let expert = Expert() func cX() { expert.moveForward() expert.moveForward() expert.collectGem() } func backToCenter() { expert.turnLeft() expert.turnLeft() expert.moveForward() expert.moveForward() e…

エキスパートを初期化する@コードを学ぼう2

//エキスパートを初期化する@コードを学ぼう2 let expert = Expert() func solveSide() { expert.moveForward() expert.moveForward() expert.moveForward() if expert.isOnGem { expert.collectGem() } else { expert.turnLockUp() } } func retunToCenter…

宝石があちこちにランダムに@コードを学ぼう2

//宝石があちこちにランダムに@コードを学ぼう2 let totalGems = randomNumberOfGems var g = 0 func go() { while !isBlocked { moveForward() if isOnGem { collectGem() g += 1 } } turnRight() turnRight() } func blue() { if bluePortal.isActive == …

隅々まで歩き回る@コードを学ぼう2

//隅々まで歩き回る@コードを学ぼう2 greenPortal.isActive = false func back() { if isBlocked { turnLeft() turnLeft() moveForward() } } func xC() { for i in 1 ... 4 { turnLeft() moveForward() if isOnGem { collectGem() } else if isOnClosedSwi…

ワープを正しく操作する@コードを学ぼう2

//ワープを正しく操作する@コードを学ぼう2 bluePortal.isActive = false pinkPortal.isActive = false func back() { if isBlocked { turnLeft() turnLeft() } } func go() { while !isBlocked { if isOnGem { collectGem() } moveForward() } } go() back…

ワープのオンとオフ@コードを学ぼう2

//ワープのオンとオフ@コードを学ぼう2 purplePortal.isActive = false func goAndCollect() { while !isBlocked { moveForward() if isOnGem { collectGem() } } } func back() { if isBlocked { turnLeft() turnLeft() } } goAndCollect() back() purpleP…

ワープをオフにする@コードを学ぼう2

//ワープをオフにする@コードを学ぼう2 greenPortal.isActive = false //3歩前進 func moveThree() { for i in 1 ... 3 { moveForward() } } //方向転換180度 func turn() { turnLeft() turnLeft() } moveThree() turnRight() for i in 1 ... 3 { moveThree…

決まった数だけ集める@コードを学ぼう2

//決まった数だけ集める@コードを学ぼう2 let totalGems = randomNumberOfGems var g = 0 //関数rGo(), r=Right //行き止まり、かつ、左に壁がある場合 //右に向いて前進 func rGo() { if isBlockedLeft && isBlocked { turnRight() } moveForward() } func…

決まった数だけスイッチを入れる@コードを学ぼう2

//決まった数だけスイッチを入れる@コードを学ぼう2 //変数sは押したスイッチの数 var s = 0 //変数gは集めた宝石の数 var g = 0 //関数go()を作成 //もし行き止まりだったら、右に向く //行き止まりでなかったら、前進 func go() { if isBlocked { turnRig…

値が等しいかどうかを調べる@コードを学ぼう2

//値が等しいかどうかを調べる@コードを学ぼう2 let switchCounter = numberOfSwitches var j = 0 while j != switchCounter { while !isBlocked { moveForward() if isOnGem { collectGem() j += 1 } } turnRight() }

3つの宝石と4つのスイッチ@コードを学ぼう2

//3つの宝石と4つのスイッチ@コードを学ぼう2 //変数dは宝石(Diamond)の頭文字「d」 //変数sはスイッチ(Switch)の頭文字「s」 var d = 0 var s = 0 while !isBlocked { while !isBlocked { moveForward() if d < 3{ collectGem() d += 1 } if s < 4 { t…