命令コードの解説

[スモウルビー甲子園専用命令ブロック一覧]

命令コードの種類(Rubyコード) 実行できる内容

(move_to)
キャラクタを動かす

⇒ くわしい内容はこちら


(calc_route)
指定した2点間の最短ルートを検索する

⇒ くわしい内容はこちら


(get_map_area)
指定した範囲(5×5セル)のマップ情報を取得する

⇒ くわしい内容はこちら


(set_trap_item)
トラップアイテムをマップに置く

⇒ くわしい内容はこちら


(map)
指定した座標のセル情報を呼び出す

⇒ くわしい内容はこちら


(map_all)
マップ全体のマップ情報を呼び出す

⇒ くわしい内容はこちら


(locate_objects)
指定した範囲に、指定した要素が存在するかどうかを確認する

⇒ くわしい内容はこちら


(other_player_x)
対戦相手のx座標を呼び出す

⇒ くわしい内容はこちら


(other_player_y)
対戦相手のy座標を呼び出す

⇒ くわしい内容はこちら


(enemy_x)
妨害キャラクタのx座標を呼び出す

⇒ くわしい内容はこちら


(enemy_y)
妨害キャラクタのy座標を呼び出す

⇒ くわしい内容はこちら


(goal_x)
ゴールのx座標を呼び出す

⇒ くわしい内容はこちら


(goal_y)
ゴールのy座標を呼び出す

⇒ くわしい内容はこちら


(player_x)
自分のx座標を呼び出す

⇒ くわしい内容はこちら


(player_y)
自分のy座標を呼び出す

⇒ くわしい内容はこちら


(set_name)
プレイヤキャラタの名前を指定する

⇒ くわしい内容はこちら


(connect_game)
ゲームサーバへ接続する

⇒ くわしい内容はこちら


(turn_over)
ターンを終了する

⇒ くわしい内容はこちら

[命令ブロックの使用制限]

  • 次の命令ブロックには1ターンでの使用回数に制限がありますので注意してください。
  • 使用回数の制限を超えて実行した命令コードは無視されます。
1ターンに1回まで
左の3つのうち、1ターンに使用できるのいずれか2回まで

[命令ブロックの解説]

(1)実行内容
  • 指定した座標にキャラクタが移動します。(移動先は自キャラクタの現在地から東西南北いずれかの方向に1マスです。)
(2)引数
  • 引数として、移動先の座標(配列または変数)を指定します。

    ⇒配列(具体的な座標)を指定する場合は式ブロックを使用:

    ⇒変数を指定する場合は項目ブロックを使用:

(3)解説
  • 移動できるのは空間と水たまりだけで、壁には移動できません。
  • 移動できない座標を指定した場合は、使用回数はカウントされますが、実行は無視されます。
  • 水たまりに移動した場合は、次回の本命令コードの実行が1回無視されます。(使用回数はカウントされます。)

(1)実行内容
  • 指定した2点間の最短ルートを検索します。
  • 戻り値として、始点から終点までの座標配列が返されます。
(2)引数
  • 引数としてハッシュを指定します。
  • 指定できるハッシュは「始点」「終点」「通らない座標」です。
  • ハッシュは配列又は変数を指定します。

    ⇒配列(具体的な座標)を指定する場合は式ブロックを使用:

    ⇒変数を指定する場合は項目ブロックを使用:

  • ハッシュを省略した場合は始点:プレイヤキャラクタの現在地、終点:ゴール、通らない座標:設定なしとして経路を検索します。
(3)解説
  • 戻り値は、経路順の座標配列となっています。(始点、次に移動する座標・・・終点)
  • 指定した経路がない場合は始点のみの座標が1つだけ返されます。
  • 座標配列は、先頭から順番に0,1,2,3・・・の番号で指定できます。
  • マップ検索を実施していないエリアを含んでこの命令を実行した場合、未検索エリアのセルは全て移動可能とみなして経路検索しますので注意が必要です。

(1)実行内容
  • 指定した範囲(5x5セル)のマップ情報を検索します。
  • 戻り値として、指定した範囲(5×5セル)のマップ情報が返されます。
(2)引数
  • 引数として、探索したい範囲の中心座標を指定します。

    ⇒配列(具体的な座標)を指定する場合は式ブロックを使用:

    ⇒変数を指定する場合は項目ブロックを使用:

    ⇒スモウルビー甲子園専用ブロックも使用可能:

(3)解説
  • 得られるマップ情報は、指定した範囲の以下の情報です。

    ⇒マップ構成(空間・壁・水たまり・ゴール)

    ⇒加点アイテム、減点アイテムの座標と種類

    ⇒対戦相手の位置(座標)

    ⇒妨害キャラクタの現在のターン開始時点の位置(座標)、前のターン開始時点の位置(座標)

  • また、得られた情報は、自動的にAIライブラリ内部の記録として保存され、他の命令ブロックによる情報の呼び出しが可能になります。

(1)実行内容
  • トラップアイテムとして爆弾(-40点)を指定座標に置きます。
  • 指定できる座標はプレイヤキャラクタの現在地もしくは隣接する東西南北のセルです。
  • トラップアイテムの保持数は1ラウンドにつき2つです。
  • 既にアイテムがあるセルにはトラップアイテムを設置できません。
(2)引数
  • 引数として、トラップアイテムを設置したい座標を指定します。

    ⇒配列(具体的な座標)を指定する場合は式ブロックを使用:

    ⇒変数を指定する場合は項目ブロックを使用:

(3)解説
  • 無効な座標や既にアイテムがある座標を指定した場合は、使用回数はカウントされ、トラップアイテムは1つ消費されますが、実行は無視されます。
  • 同時に両プレイヤが同じ座標にトラップアイテムを設置した場合は、設置されるトラップアイテムは1つだけになります。

(1)実行内容
  • 指定した座標のマップ情報を呼び出します。
  • 戻り値として、指定した座標のマップ情報が返されます。(マップ情報取得済みの座標に限る。)
(2)引数
  • 引数として、マップ情報を呼び出したい座標を指定してください。
(3)解説
  • 得られるマップ情報は、以下の情報です。

    ⇒マップ構成(空間・壁・水たまり・ゴール)

    ⇒加点アイテム、減点アイテムの有無と存在する場合はその種類

    ⇒妨害キャラクタの有無

  • 未探索座標を指定した場合は、-1が返されます。
  • マップエリア外を指定した場合は、nilが返されます。

(1)実行内容
  • マップ全体のマップ情報を呼び出します。
  • 戻り値として、マップ全体のマップ情報が返されます。
(2)引数
  • 引数は不要です。
(3)解説
  • 得られるマップ情報は、以下の情報です。

    ⇒マップ構成(空間・壁・水たまり・ゴール)

    ⇒加点アイテム、減点アイテムの位置と種類

    ⇒妨害キャラクタの位置

  • 未探索セルは、-1が返されます。
  • また、マップエリア外を指定した場合は、nilが返されます。

(1)実行内容
  • 指定した範囲に、指定した要素が存在するかどうかを確認します。
  • 戻り値として、指定した要素がある座標情報が返されます。
(2)引数
  • 引数としてハッシュを指定します。
  • 指定できるハッシュは以下のとおりです。

    ⇒中心座標:指定する範囲の中心座標。省略可(省略時はプレイヤキャラクタがいる座標になります。)

    ⇒範囲:指定する範囲の縦横のセル数。省略可(省略時は5になります。)

    ⇒地形・アイテム:探索する要素。省略可(省略時は全減点アイテムになります。)

  • ハッシュは式ブロックを使用して指定します。また、地形・アイテムには変数での指定も可能で、その場合は項目ブロックを使用します。
(3)解説
  • 地形・アイテムを指定する場合の値は次のとおりです。
    【マップ要素】
    マスの種類
    空間 0
    1
    蔵(外壁) 2
    ゴール 3
    水たまり 4
    【加点アイテム】
    アイテムの種類
    お茶 a
    和菓子 b
    丁銀 c
    シロイルカ d
    草薙剣 e
    【減点アイテム】
    アイテムの種類
    毒キノコ A
    B
    トラバサミ C
    爆弾 D
  • なお、未探索のマップエリアの情報は取得できません。

(1)実行内容
  • 対戦相手の位置情報を呼び出します。
  • 戻り値として、最後に「マップ情報の取得」で取得した対戦相手の座標(x,y)を返します。
(2)引数
  • 引数は不要です。
(3)解説
  • 「マップ情報の取得」で対戦相手の位置情報を取得していない場合(「マップ情報の取得」を実行していない場合、又は「マップ情報の取得」を実行した範囲に対戦相手がいなかった場合)は、nilが返されます。
  • 得られる位置情報は、最後に実行した「マップ情報の取得」の情報を参照しているため、以下に注意してください。

    ⇒取得した時点での情報であり、対戦相手は既に移動している場合があること

    ⇒対戦相手の位置を把握していても、最後の「マップ情報の取得」の範囲に対戦相手がいなかった場合は、未把握の情報がゲームサーバに上書きされること

(1)実行内容
  • 妨害キャラクタの位置情報を呼び出します。
  • 戻り値として、最後に「マップ情報の取得」で取得した妨害キャラクタの座標(x,y)を返します。
(2)引数
  • 引数は不要です。
(3)解説
  • 得られる位置情報は、最後に実行した「マップ情報の取得」時点での妨害キャラクタの座標です。(妨害キャラクタが「マップ情報の取得」の範囲にいなかった場合でも位置情報は取得できます。※対戦キャラクタの位置情報呼び出しのルールとは若干異なります。)

(1)実行内容
  • ゴールの位置情報を呼び出します。
  • 戻り値として、ゴールの座標が返されます。
(2)引数
  • 引数は不要です。

(1)実行内容
  • プレイヤキャラクタの位置情報を呼び出します。
  • 戻り値として、プレイヤキャラクタの座標が返されます。
(2)引数
  • 引数は不要です。

(1)実行内容
  • プレイヤキャラクタの名前を指定します。
  • “player1”に入力した名前がプレイヤキャラクタの名前として表示されます。
(2)引数
  • 指定したい名前を“player1”内に入力します。
(3)解説
  • 文字列14文字まで入力できます。

(1)実行内容
  • ゲームサーバへの接続を行います。
(2)引数
  • 引数は不要です。
(3)解説
  • ゲームサーバの接続に必要ですので、テンプレートの内容を変更しないでください。

(1)実行内容
  • 現在のターンを終了させ、次のターン開始を待ちます。
(2)引数
  • 引数は不要です。
(3)解説
  • 1ターンの最後に必ず1回実行する必要があります。
  • テンプレートの「◆ずっと 繰り返す」の最後に必ず本ブロックをセットしてください。

クリエイティブ・コモンズ・ライセンス

このドキュメント は クリエイティブ・コモンズ 表示 4.0 国際 ライセンス の下に提供されています。