まず、このステージをバイト君がクリアする手順をじっくり考えましょう。四角形のステージでそれぞれの辺の中心辺りに宝石と閉スイッチが あるという法則が見えてくると思います。この共通部分を関数にするとしたら、
1 2 3 4 5 |
func genAndSwitch { collectGem() //宝石を取って、 moveForward() //一歩進み、 toggleSwitch() //スイッチを操作する } |
のような関数が作れるでしょうか。さらにその前後も毎回同じコマンドが連続してたりするかも知れません。ただしこのステージは正方形ではないので、短辺部分と長辺部分で少しだけ処理が違ってきます。宝石とスイッチの前後どこまでを関数に入れて、どの部分は本編部分で個別にコマンドを書くか見極めましょう。
例えばこんな解き方ができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
//同じ処理内容をpattern1という名前で関数に仕立てる func pattern1() { moveForward() collectGem() moveForward() toggleSwitch() moveForward() } //ここからが本編 pattern1() //作った関数を呼び出す turnLeft() pattern1() //作った関数を呼び出す moveForward() turnLeft() pattern1() //作った関数を呼び出す turnLeft() pattern1() //作った関数を呼び出す |