ゲーム概要

ゲーム概要

このゲームは下表のようなマップ上で進行し、2つのプレイヤーキャラクタがゴールを目指しながら得点を競い対戦するものです。ゲームではAIプログラムがプレイヤーキャラクタを制御・操作し、人は操作しません。

ゲームマップ
ゲーム画面
プレイヤーキャラクタ
プレイヤーキャラクタ

AIプログラムとは

プレイヤーキャラクタを動かすためのプログラムです。あらかじめプレイヤーキャラクタをどのように行動させたいか作戦を考え、これをプログラムにします。

戦略

作戦の例としては次のようなものがあります。

  • ゴールを目指して最短経路で移動する
  • 減点アイテムを避けてゴールを目指す
  • 加点アイテムを取ってからゴールを目指す

攻略の鍵は「有効な作戦」と「作戦をプログラムで実現できるか」です。

ゲームマップ

マップは15マス×15マスで構成。 マップ上の各マスは次のいずれかの要素で構成。マップは壁または蔵に囲まれているものとします。

空間
空間
自由に移動可能なマス
壁
移動できないマス
 蔵(外壁)
蔵(外壁)
移動できないマス
ゴール
ゴール
ゴールとなるマス。 到着するとゲーム終了となり、ゴールを通過することはできません。
 水たまり
水たまり
移動が制限されるマス。 次回の移動命令が1度だけ実行されません。
壊せる壁
壊せる壁
移動できないマス。 ただしダイナマイトで壊すと空間に変わり移動可能になる。

ゲームルール

ゲームは、2ラウンドの合計得点で勝敗を決定します(得点の高いプレイヤーが勝利)。

ゲームはターン制とし、1ラウンドのターン数は50ターンです。

ラウンド1とラウンド2でプレイヤーキャラクタのスタート位置が入れ替わります。

ゲームは、プレイヤーキャラクタがゴールした場合のほか、次の場合に終了となります。

  • 50ターンに達した場合
  • 10秒以内にターンの行動命令を完了しなかった場合(タイムアウト)
  • AIプログラムが不具合等により停止した場合

ゲームポイント

得点は、次の(1)~(6)の合計となります。

(1)ゴールボーナス

ゴールした時のターン数に応じて加点します。

1~10ターン 100点
11~20ターン 90点
21~30ターン 80点
31~40ターン 70点
41~50ターン 60点
未ゴール 0点

(2)加点アイテム

大会ルールとして、草薙剣はマップ上に1個のみ出現するものとします。

対戦環境のマップ上に草薙剣を2個以上設置することは可能ですので、マップを自作される場合はご注意ください。

お茶
お茶
10点
和菓子
和菓子
20点
丁銀
丁銀
30点
シロイルカ
シロイルカ
40点
草薙剣
草薙剣
60点

(3)減点アイテム

毒キノコ
毒キノコ
△10点
蛇

△20点
トラバサミ
トラバサミ
△30点
爆弾
爆弾
△40点

(4)使えるアイテム

空間または水たまりの上に置いて、隣にある「壊せる壁」を壊すことができます。

ダイナマイト
ダイナマイト

(5)妨害キャラクタ

1回の接触につき10点減点(何度でも接触します)。

  • プレイヤーキャラクタがゴールしたとき、ゴール上に妨害キャラクタがいるときも減点されます。
  • 1~40ターンはランダムで移動しますが、プレイヤーキャラクタが3マス以内に入ると、プレイヤーキャラクタへ向かって移動します。
  • 41~50ターンは最寄りのプレイヤーキャラクタに向かって移動します。
  • プレイヤー1とプレイヤー2が等距離にいる場合は、ラウンド1はプレイヤー1へ、ラウンド2はプレイヤー2へ向かって移動します。
妨害キャラクター1から40ターン
1~40ターン
妨害キャラクター41から50ターン
41~50ターン

 

(6)歩行得点

5マス移動する都度、3点を加点

ゲーム画面

ラウンド1

ゲーム画面
ゲーム画面

① ラウンドを表示

② ターン数を表示

③、④ プレイヤー情報ウインドウ

  • Player01、02の状態を表示
  • キャラクタの名前はAIプログラムの中で指定・変更可能
  • 得点によってキャラクタは変化
  • ウインドウ下部でターンの行動を表示

⑤ ゲームマップ

「プレイヤー情報ウインドウ」のキャラクタは、現在地から最短経路でゴールした場合の見込み点数に応じて下表のとおり変化します(現時点での得点を反映したものではありませんので注意してください)。

プレイヤーキャラクタのステータス変化

ラウンド2

ゲーム画面
ゲーム画面
⑥ ラウンド1の得点結果(ラウンド2でのみ表示)

ラウンド2終了後

ゲーム画面

⑦ 加点アイテムの取得状況

⑧ 勝敗表示

  • 勝者をWinner、敗者をLoserで表示

⑨ 得点結果

AIプログラムが実行できる内容

AIプログラムがプレイヤーキャラクタを動かすために、スモウルビー甲子園専用の命令コードを用意しています。これらを組み合わせてプログラムを作ってください。

命令コードの種類と内容については「公式説明書」をご覧ください。

命令コードは、Rubyの命令コード(メソッド)を使用することも可能です。

AIプログラム作成にあたっての留意事項

(1) ターンの行動命令の受付時間は10秒です。よって長すぎるプログラムはタイムアウトになる場合があります。

(2) 各ターンで実行できる内容には次のとおり制限があります。

  • (turn_over)をプログラムの最後に必ず実行すること
  • (move_to)の使用は1ターンに1回のみ
  • 次の命令コードの使用は1ターンにいずれか2回のみ

    (move_to)
    (get_map_area)
    (set_dynamite)

*制限を超えて使用した命令は無効として処理します。

(良い例)

  • 最後にが組み込まれている ○
  • を1回使用 ○
  • 次の命令コードを各1回使用(計2回) ○

     

(悪い例)

  • 最後にが組み込まれていない ×
  • を1回使用 ○
  • 次の命令コードを各1回使用(計3回) ×