2016-05-22 9 views
1

特定のボードゲーム用に複数のAIプログラムがあり、すべてが異なる言語で実装され、人間の仲介なしに互いに競争したいと考えているとします。私はこれについてどうやって行くのですか?ボードゲームAIを作るテクニックは、互いに競争していますか?

は私が

共通のアーキテクチャがありますなど、これはAIの研究者、愛好家、ゲームプレイする競技のための共通の問題であることを想像しますか?おそらくAIは別々のプロセスとして実行され、ソケットを介して中央の「ボード」プロセスと通信するでしょうか?

答えて

3

共通のプロトコルはありません。あなたは一般的なソリューションを設計に対処するためにきた困難を説明し、多くの参照を持っているので、ミシェルQuenaultとトリスタンカズナーヴによってGGTP, a General Gaming Text Protocolは非常に興味深いですが、それは完全によく知られて

  • を実装

    • ない

    ad hocのプロトコルに戻ってください。


    チェスについてChess Engine Communication Protocol(別名Xboard/Winboardプロトコル)とUniversal Chess Interface(UCI)があります。

    Xboardプロトコルは成長しており、現在は世界の主要なチェス(Xiangqi、Shogi、Makruk)や西洋の変種を含む様々なチェスの変種とともに標準的なチェスゲームをサポートしています。

    どちらもライセンス料なしで無料で使用できます。 については


    ゴーチェッカー/ドラフトについてはGo Text Protocol(FTP)


    はありCheckerBoard APIDamExchange Protocol

  • 1

    ソケットは可能ですが、私はパイプを使用しませんされています。ボードプログラムは、現在の状態(文字列として)をAI STDINに送信し、AIはSTDOUTを介してアクションに応答します。ボードプログラムはゲームの状態を更新し、このプロセスはプレーヤー間で交互に行われます。私は生徒にJavaとCを使って競合させました。 Cで書かれた例をHereと書いてあります。hereはJavaで書かれています。