数学者のジョン・コンウェイが発明した有名なセルラーオートマトンであるコンウェイのゲーム・オブ・ライフをご存知でしょう。ライフとは、2次元のセルのボードをシミュレートできる一連のルールです。ルールは、ボード上のどのセルが生き、どのセルが死ぬかを決定します。想像力を働かせると、Lifeはゼロプレーヤーゲームであると言えます。有名なグライダーのように、興味深い動作を伴うパターンを見つけることを目的としたゲームです。
ゼロプレイヤーゲーム...今日まで。ゲームオブライフをプレイし、勝つためにプレイするキングオブザヒルスタイルのプログラムを作成します。対戦相手(単数形)はもちろん同じことを試みます。勝者は、生きているセルがある最後のボットか、10000世代後に最も生きているセルを持つプレイヤーのいずれかです。
ゲームのルール
ルールは通常の(B3 / S23)ライフとほぼ同じです。
- 友好的な隣人が2人未満の生細胞は、飢fromで死にます。
- 2〜3人の友好的な隣人がいる生細胞は生き残ります。
- 3人以上の友好的な隣人がいる生細胞は、過密により死にます。
- 同じプレイヤーの正確に3人の隣人がいる死んだ細胞は、敵の隣人がいなければ、そのプレイヤーのために戦うために生きてきます。
...しかし、各世代の後、あなたとあなたの対戦相手の両方が介入する機会を得ます。あなたはあなたのために戦うために最大30個の細胞まで目覚めることができます。(最初に行く人はサーバーによって決定されます。)
ボードは(x、y)セルの正方形です。すべての正方形は最初は死んでいます。境界はラップアラウンドせず(トーラス型の世界ではありません)、永久に死んでいます。
これはBattlebotsとCore Warsの精神のコンテストです。ボットを実行する中央サーバーがあり、ここにあります
プロトコル
アリーナサーバーは、argvを介して通信される単純なJSONプロトコルを話します
ValuesはJSONエンコードされた文字列です
y_size
:タイルが消失する前の最大y座標x_size
:タイルが消滅するまでの最大x座標tick_id
:現在のティック番号board
: '(y、x)'形式のキーとbot_id
(int)形式の値を持つ辞書bot_id
:このIDのボードのタイルはあなたのものです
例:
{"y_size":2000,"x_size":2000,"board":{},"bot_id":1,"tick_id":1}
サーバーに選択を伝える:
- サーバーにタイルのリストを送信して、自分の色に変えます。
- 空のもののみが変更されます
- ネストされた座標リストの形式
[[0,0], [0,1], [100,22]...]
注:ボットはタイルをまったく更新する必要はありません-サーバーはそれ自体を更新します
競争ルール
- 実装がプロトコルに従わない場合は、実装が無効になります。サーバーは状態の変化がないと仮定します
- アリーナサーバーの障害を故意に利用することは許可されていません。
- AIに適切なタイミングで動きを決定させます。できるだけ早く次の動きを送ってください。
- 最後に、サーバーに親切にしてください。それはあなたの楽しみのためにあります。
- これらの規則に従わない場合、失格となる可能性があります。
- 同点の場合、両方のプレイヤーの合計に1勝が加算されます
コントローラーを自分で実行する
コントローラのソースはここにあります。コントローラーを実行するには2つの方法があります。
- 競争モード(端末)
- でセットアップ
python3 get_answers.py
- 各ボットが他のすべてに対してボットする、すべて対すべての競争を実行します。
- でセットアップ
- テストモード(GUI)
- 走る
python3 nice_gui.py
- クリック
Pull Answers
- 投稿する前に独自の回答を追加して試してみたい場合
File -> Add manual answer
は、ファイルをクリックして検索し、書かれている言語を選択します。 - あなたの言語が存在しない場合、pingを実行し、サーバーにインストールしようとします(インストールと実行の手順も素晴らしいでしょう!)
- 2つのボットを選択して、互いに対戦します
- クリック
Run
- ゲームを見る...
- 走る
- 設置
- python3が必要
- get_answersにはbs4とhtml5libが必要です
- コントローラーには、.shファイル(Windows上のMinGW)を実行する方法が必要です
得点
12/07/2016
(7月12日)14/07/2016
(7月14日、ボットの実行方法がわからなかった)から最も多く勝ったボットが勝ちました。
このチャットルームでコントローラー/ GUIのサポートを依頼できます。
この質問は2014年から開発中であり、サンドボックスで最も支持された質問でした。特別な感謝はして行くナウターワンダ(原作者とのコンセプト)、PPCGチャットにコメント(コメントやヘルプ)と誰サンドボックスポスト(もっとコメント)。