アルゴロジック2攻略 応用①十字

アルゴロジック2の「十字」を考えていきました。

IF・ELSEを無理に使おうとしない。

この直前にIF・ELSEの学習がありますが、それに気を取られてIFやELSEを無理やり組み込もうとすると最適解(great,◎)になりません。盲点でした。

基本の考え方

一番基本の考え方としては、この十字では、

  1. 直進2回
  2. 逆を向く
  3. 直進2回
  4. 右を向く

この動きを4回行えば良いということがわかります。

◎LOOPをひとつだけ使う

先程、この動きを4回行う、と書いた通り、LOOPでかこってシンプルに作れば簡単です。すなわち

  1. LOOP∞(
  2. 直進2
  3. 逆を向く
  4. 直進2
  5. 右を向く

これだけです。

○LOOPにこだわりすぎると最適解にならない

ではone moreになってしまう例をみていきます。最初のどんな動作を繰り返しているのか?の部分の理解がシンプルでないこうなることもあります。

この例では、「直進2+逆を向く」までが1セットだと思いこんでいるため、LOOPが2つになっています。

  1. LOOP4(
  2. LOOP2(
  3. 直進2
  4. 逆を向く
  5. 右を向く

これだと○止まりなんですね。

というわけで、前にIFの練習があるからといって頑張って難しく考える必要もなかったというわけでした。