aglab

テストプレイノート

ゲーム定義ファイルで定義されたゲームのテストプレイを行います。

  • このまま実行した場合、使用されるゲーム定義ファイルは"definition/mygame.py"です。
    新たに作成したゲーム定義ファイルをテストしたい場合は下記セル中の"mygame"をすべて書きかえてください。

In [ ]:
from definition import mygame #テストしたいゲーム定義ファイルのファイル名
from src import aglab

In [ ]:
game = aglab.Game(mygame)
game.setup() #プレイ前の準備

In [ ]:
print game.get_info() #今回のプレイに関する情報を出力する

How to play

  • "?"が表示されたらコマンドを入力する。コマンドの形式は以下の通り。
    [コマンド] [引数1] [引数2] ...
    ※引数の数はコマンドによって異なる
  • ゲーム定義ファイルの on_play に定義されたコマンドが利用可能。
  • 以下のコマンドは定義されていなくても利用可能。
    • set [コンポーネント: component] [設置先: field]
      コンポーネントを[設置先]にセットします。
    • move [移動元: field] [移動先: field]
      コンポーネントを[移動元]から[移動先]へ移動します。
      [移動元: field] > [移動先: field] という省略形も可。
    • end
      ゲームを終了します。
  • コンポーネントの指定方法
    • 同一コンポーネントが他にない場合: コンポーネント定義におけるキーで指定する。例) C1
    • 同一コンポーネントが複数ある場合: キーとインデックスで指定する。例) C2[0]
      インデックスは0から始まるので、'num': 3と定義されたコンポーネントの場合、0, 1, 2が指定可能。
  • フィールドの指定方法
    • フィールドサイズが1の場合: フィールド定義におけるキー、または短縮表記(shorten)で指定する。例) field-1 or F1
    • フィールドサイズが1より大きい場合: キー/短縮表記とインデックスで指定する。例) F2[0]
      インデックスは0から始まるので、'size':4と定義されたフィールドの場合、0, 1, 2, 3が指定可能。

プレイ例

? set C1 P1.h[0]
? P1.h[0] > F1[0]
? end

In [ ]:
for i in range(game.max_steps):
    print 'reward:', game.reward, ', path:', game.get_contextpath()
    print game.output_state() #ゲームの状況を出力する
    _in = raw_input(game.get_prompt())
    game.step(command=_in) #ゲームを1ステップ進行する
    print
    if game.done:
        print game.get_result()
        break #ゲーム終了

In [ ]:
# ゲーム終了時の状態
print game.state

In [ ]: