# ルール ###### tags: `rule` ## 概要 囲みマスというのは、陣地取りゲーム! ボードのマスに配置されたエージェントを動かすことでその場所が壁になります。 また、マスには点数が設定されており、自分の壁にすると点数がもらえます。 さらに!自分の壁でぐるっと囲むと、囲んた内側が陣地となってその部分も自分の点数になります! 実はマスに設定される点数にはマイナスも…。壁にしてしまうと点数もマイナスになってしまいますが、陣地にするとマイナスマスもプラスに! さらにさらに、相手の壁を壊すことも可能! 囲みマスの特徴は1ターンで両チームが同時に操作するところ。 他のゲームでは自分のターン・相手のターンがありますが、囲みマスにはありません。 なので、相手と自分のエージェント行動が被っちゃうことも。その場合はどちらのエージェントも動けません。 ひたすら自分のエージェントを動かして点数を稼ぐのもよし。 上手く囲んで少ない手で大量得点を狙うのもよし。 相手に点を取らせないように壁を壊していくのもよし。 作戦とプログラミングスキルと運。すべてを使って勝ち進みましょう! ## ボード - ボードは縦、横に分割された領域で構成され、分割された個々の領域をマスと呼びます。 - 正方形のボードの一辺は10~24マスで、マスの数はゲームによって異なります。 - 各マスには、-16~16の整数値の点数が付与されています。 - 各マスには、ゲームの進行によって中立、陣地、壁の3種類いずれかの属性が付与されていきます。陣地、壁はチーム属性もあるため、それを区別すると5種類になります。ゲーム開始時にはすべてのマスが中立です。 ![](https://i.imgur.com/PjOY4gk.png) ## エージェント - エージェントの数は6~14体で、フィールドごとに決まっています。 - エージェントは、プレイヤーが任意のタイミングで任意のマスに配置することができます。 - エージェントを配置することによって、次に示す行動を行うことができます。 ![](https://i.imgur.com/fALFlmx.png) ↑プレイヤーによってエージェントのイラストが変わります ### エージェントの行動 1ターンでは各エージェントごとに以下のいずれか1つの行動を行えます。 #### 配置 - 未配置のエージェントをフィールド内の任意のマスに配置する行動です。 - 配置したマスは自分チームの壁となります。 - ただし、相手チームの壁となっているマスには配置できません。 - また、同じマスに複数のエージェントを配置することもできません。 ![](https://i.imgur.com/lu5pLC8.png) #### 停留 - エージェントは何も行動を起こさず、現在のマスに留まることができます。 #### 移動 - 周囲8方向のいずれかのマスに移動する行動です。 - 移動先のマスは自分チームの壁となります。 - ただし、相手チームの壁となっているマスには移動できません。 - また、同じマスに複数のエージェントを移動することもできません。 - 既に自分のエージェントがいるマスを移動先として指定することもできますが、同じターン内で移動先のエージェントも別の場所に移動する必要があります。移動しなかった場合は後述する競合というものが起きます。 ![](https://i.imgur.com/4XmTABI.png) #### 除去 - 周囲8方向にある城壁マスを取り除く行動です。 - 除去されると中立もしくは陣地となります。どのような条件で中立か陣地になるかは後述します。 - 既にエージェントがいるマスを除去先として指定することもできますが、同じターン内で除去先のエージェントが別の場所に移動する必要があります。移動しなかった場合には後述する競合というものが起きます。 ![](https://i.imgur.com/29OkQ2Z.png) ### 行動の無効と競合 以下に示す無効または競合が起きた場合、関係するすべてのエージェントの行動が適用されません。 #### 無効 - フィールド外への配置と移動 - 壁が築かれていないマスへの除去 - 相手チームの壁が築かれているマスへの配置と移動 - 行動を指定しなかった場合 ![](https://i.imgur.com/nFYC4U9.png) #### 競合 - 無効でない行動のうち、複数のエージェントが同じマスに対して指定した行動 - 無効や競合により停留となったエージェントがいるマスに対して指定した行動 ![](https://i.imgur.com/99rVAPd.png) ## 陣地 壁が繋がって囲まれた領域を「陣地」といいます。壁は上下左右でつながっていなければならず、斜めでは囲んだことになりません。 ![](https://i.imgur.com/eSgj9Pm.png) 一度陣地になったマスは、周りを囲んでいた壁が無くなっても陣地のままです。陣地マスへの移動は可能ですが、除去することはできません。 ![](https://i.imgur.com/NTLzgnj.png) ### 入れ子 自分の陣地内に相手の壁があった場合、その場所は自分の陣地にはなりません。また、自分の陣地内に相手の壁とそれに囲まれた相手の陣地があった場合は、自分の陣地にはなりません。後者の場合の事を「入れ子」と表現します。 したがって、下記右側の場合、青プレイヤーの陣地はないことになります。 ![](https://i.imgur.com/m344kTi.png) 入れ子の状態で内側プレイヤーの壁が除去された場合は、除去されたマスだけでなく、もともと内側プレイヤーの陣地だったところも、外側の壁を囲っているプレイヤーの陣地になります。 ![](https://i.imgur.com/KtX7n86.png) ## 得点 プレイヤーの得点は、以下に示す壁ポイントと陣地ポイントの合計となります。 ### 壁ポイント 壁となっているマスによる得点です。マスに書かれた点数がそのまま得点として加算されます。したがって、マイナス点数のマスは得点もマイナスになります。 ### 陣地ポイント 陣地となっているマスによる得点です。マスに書かれた点数の**絶対値**が得点として加算されます。つまり、マイナス点数のマスもプラスとして加算されます。したがって、下記の例では3点のマスに移動しただけで31点加算されます。このように、大量得点による大逆転も可能です。 ![](https://i.imgur.com/pvXwmTw.png) ## 勝敗判定 壁ポイントと陣地ポイントを使って、以下の優先順位で決定します。 1. 壁ポイントと陣地ポイントの合計ポイントが大きい方のチームが勝利します。 2. 合計ポイントが等しい場合、壁ポイントが大きい方のチームが勝利します。 3. 壁ポイントも陣地ポイントも等しい場合、じゃんけんなどで勝敗を決めるか、引き分けとします。 ## ゲームの進行 1. サーバにクライアントを接続します。 2. 全チームがそろったら試合開始時間と、使用ボード情報が公開されます。使用ボード情報には以下の情報が含まれます。 - ボードの縦・横の大きさ - エージェントの数 - プレイヤー(チーム)の数 - 総ターン数 - ターン時間 - 各マスの点数 3. 試合開始時間になると1ターン目の行動の送信が可能になります。ターン時間内にエージェントの行動をサーバに送信してください。 4. ターンが終了すると両チームの行動が処理されます。行動の送信がなかった場合、または送信が間に合わなかった場合にはそのチームの全エージェントの行動は停留として扱われます。 5. 4の処理が終わると次のターンになります。サーバに行動の送信をしてください。 6. 規定のターン数になるまで4,5を繰り返します。規定のターン数に達したらゲーム終了です。 ## サーバとの通信 ゲームには各自用意したパソコンから囲みマスAPIに接続することで通信します。APIの詳細は以下のページをご覧ください。 ホスト名については現在準備中です。しばらくお待ちください。 [かこみますネットワークプロトコルを決めようの会](https://hackmd.io/IDgCfeQ8SqWQuK9PzkG8xQ) ## 質問等 質問等ありましたら、下記のGoogleフォームから送信お願いします。大会運営にて協議の上、質問者に返答します。また必要な場合はこのルールを改訂する場合があります。 Googleフォームは只今準備中です。しばらく待ちください。