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 |                                                           |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

おわりに

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

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

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