Cheese杯2019の迷路紹介

Cheese杯2019の迷路紹介

こんにちは。けりです。

先日、12/15(日) に Cheese主催のマイクロマウス・プチ大会 第3回Cheese杯 を開催しました。

今回はそのとき出題された迷路を簡単に紹介します。

迷路

今年のCheese杯2019の迷路は、 クラシック競技・マイクロマウス競技の両方とも僕が作成させて頂きました。

クラシック競技

迷路サイズは 9x9 で、ゴール座標は (7,7)-(8,8) です。

Cheese杯2019 クラシックマウス競技

Cheese杯2019 クラシックマウス競技

マイクロマウス競技

迷路サイズは 16x9 で、ゴール座標は (4,4)-(5,5) です。

Cheese杯2019 マイクロマウス競技

Cheese杯2019 マイクロマウス競技

想定ルート

僕の探索シミュレータでは、次のような経路が出るように設計しました。

  • 青色:区画がノードの歩数評価(足立法)
    • 1マス1コストのものと台形加速考慮したものを表示
  • 紫色:壁上がノードの歩数評価
    • 1マス1コストのものと台形加速考慮したものを表示
  • 黄色:台形加速とスラロームにかかる時間を考慮した時間評価
    • 区画でターン:斜めなし
  • 黄色:台形加速とスラロームにかかる時間を考慮した時間評価
    • 壁上でターン:斜めあり

クラシック競技

台形加速を考慮した走行時間ベースの評価関数の場合、左上から右下への直線が現れています。

一方、単純な区画ベースの足立法では、青色のジグザグルートになってしまいます。

Cheese杯2019 クラシックマウス競技

Cheese杯2019 クラシックマウス競技

マイクロマウス競技

Cheese杯2019 マイクロマウス競技

Cheese杯2019 マイクロマウス競技

迷路の保存形式

ちなみに、僕は過去の迷路データを以下のようなテキスト形式で保存しています。

ファイルを見ただけでどんな迷路かすぐにわかる上に、 スタート区画や複数のゴール区画の情報も含めることができます。

こうやってブログに貼れば、簡単にコピペができるのでとても便利です!

クラシック競技

+---+---+---+---+---+---+---+---+---+
|   |       |       |       | G   G |
+   +   +   +   +   +   +   +   +   +
|       |       |       |   | G   G |
+   +   +---+---+   +---+   +---+   +
|   |       |   |       |           |
+   +---+   +---+   +---+---+   +---+
|       |       |           |       |
+---+   +   +   +---+---+   +---+   +
|       |   |       |       |       |
+   +   +---+---+   +   +   +   +   +
|   |   |       |       |       |   |
+   +   +   +   +---+   +---+   +   +
|   |       |       |           |   |
+   +---+   +---+   +---+   +---+   +
|       |   |       |           |   |
+   +   +   +   +---+   +---+   +   +
| S |       |                       |
+---+---+---+---+---+---+---+---+---+

マイクロマウス競技

+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
|                                   |       |                   |
+   +---+   +   +---+---+   +---+   +   +---+   +   +---+   +   +
|   |       |       |           |       |       |           |   |
+   +   +---+---+   +   +---+---+---+   +   +   +---+   +   +   +
|           |               |       |       |   |       |   |   |
+   +---+---+---+---+---+   +   +   +---+   +   +   +   +   +   +
|           |   | G   G |       |       |           |   |   |   |
+---+---+   +   +   +   +---+---+---+   +---+   +---+   +---+   +
|           |   | G   G |       |       |       |       |   |   |
+   +---+---+---+   +---+   +   +   +---+   +   +   +   +   +   +
|       |       |           |       |       |       |       |   |
+   +   +---+   +---+   +---+---+---+   +---+   +---+   +   +   +
|   |               |           |       |       |       |       |
+---+   +---+---+---+---+   +---+   +   +   +   +   +---+---+   +
|                   |               |       |       |   |       |
+   +---+   +---+   +---+---+---+---+---+---+---+---+   +   +---+
| S |                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

おわりに

他人が走るような迷路を作成するのは初めての経験でしたが、 僕が作った迷路をいろんなマウスが走っていて、 とても新鮮な気持ちでした。

どんなルートを選択するのかドキドキしながら見ていて、 審査員の気持ちをちょっと味わうことができました。

今回の迷路は、アルゴリズムによってさまざまなルートが出るように設計したので、 みなさんの探索アルゴリズムでも是非試してみてください!