2種類のワープがあるステージです。bluePortalとpinkPortalです。これらはそれぞれ共通の設計図から作られた別々のインスタンス(個体)であり、どちらもisActiveプロパティを備えています。ただ
1 |
isActive = true |
としても、どちらに対する指示なのかわかりませんし、可能だからといって両方に反映されても困ります。そこでドット記法を使って、どちらに向かってisActiveの内容を変更するのか明確にする必要が出てくるわけです。
ワープがいい感じにオンオフされていれば、ナビゲーションとしては、「宝石に行き当たるまで進み、取ったら振り向く」の繰り返しでいけそうです。今回もfuncで関数化してみました。これでプログラム本編(?)は各ワープのオンオフとナビゲーションの3種類だけで組み上げられるようになります。いつどちらのワープをオンオフすればいいかの検討に集中しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
//関数を作る func 宝石まで進んで取り振り返る() { while !isOnGem { if isBlocked { turnRight() turnRight() } moveForward() } collectGem() } //ここからが本番 bluePortal.isActive = false //青ポータルをオフ pinkPortal.isActive = false //ピンクポータルをオフ 宝石まで進んで取り振り返る() pinkPortal.isActive = true //ピンクポータルをオン 宝石まで進んで取り振り返る() bluePortal.isActive = true //青ポータルをオン 宝石まで進んで取り振り返る() bluePortal.isActive = false //青ポータルをオフ 宝石まで進んで取り振り返る() |
funcを使いこなせないから
Codeがダラダラと長くなってしまい
まとまりがない。
どうすればできるようになるんだろ・・。