このステージのポイントはキャラクターが両方ともExpert型だということです。なので両方ともexpertやexという名前にしてしまうと混乱してしまいます(というかエラーになります)。そこで、私はex1とex2のように番号をふった名前にしてみました。taroとhanakoでも構いません。
それぞれの違いにだけ気をつけて、あとはじっくり順をおって作り込んでいけば大丈夫です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
//Expert型を2体準備してそれぞれのスタート位置へ let ex1 = Expert() let ex2 = Expert() world.place(ex1, facing: east, atColumn: 0, row: 0) world.place(ex2, facing: north, atColumn: 0, row: 4) //ここから本編 ex1.collectGem() ex1.move(distance: 3) ex1.turnLeft() ex1.turnLock(up: true, numberOfTimes: 2) ex2.turnLock(up: false, numberOfTimes: 1) ex1.turnRight() ex1.move(distance: 3) ex1.turnLock(up: false, numberOfTimes: 2) ex2.turnRight() while !ex2.isBlocked { if ex2.isOnGem { ex2.collectGem() } ex2.moveForward() } |
子供と一緒にSwiftを勉強しようとSwift Playgroundsに挑んだのですが、中々クリア出来ず四苦八苦してしましたが、ここにたどり着けて本当に助かっていますし、勉強になります。
この先の模範解答も宜しくお願い致します。
子供とともに楽しみにしております。
ありがとうございます。まずはようやく「コードを学ぼう」の1と2の全ステージを掲載できました。引き続きお役に立てば幸いです。
ここがよくわからない、ここはヒント出し過ぎ!などご意見などもあればお聞かせください。
あ、ごめんなさい。2はまだ途中でした。プレイ自体は進んでますので、追々埋めていきます。
move(distance: 3)
ってどこかで習いましたっけ?
何かの応用ですか?
同じ「パラメータ」章の最初じゃないですかね。