これらの競技の中で、コードゲームチャレンジにとどまりたいと思います。
Code Game Challenge形式のコンペティションは、いくつかの提案された世界の作戦戦略(大まかに言えば、人工知能)のコンペティションです。
3人のチームには、次のソフトウェアがインストールされた1台のコンピューターが与えられます。
- 開発環境;
- 決定を送信し、結果を表示するためのソフトウェア。
- 戦略のプロジェクトテンプレート。
言語のセットはオリンピアードからオリンピアードまでさまざまですが、常にACM ICPCの規則で許可されている言語が含まれています。
決定を送信して結果を表示するソフトウェアを使用すると、ソリューションをサーバーに送信してシミュレーション結果を表示できます。
通常、戦略プロジェクトテンプレートには、必要なすべてのライブラリが接続され、空の戦略が含まれるファイルが含まれます(管理対象ユニットは静止しています)。
さらに、1日か2日で、参加者にはゲームワールドのルールが与えられます。ルールはゲームワールドの物理的性質を説明し、基本定数(たとえば、最大加速度)を決定します。そして最も重要なことは、ルールはユニットを管理し、外の世界とやり取りするためのAPIを提供します。
戦略開発時間は通常4時間です。 この期間中、参加者は何度でも意思決定をサーバーに送信できます。 ペナルティポイントは付与されません。 参加者によって送信された最終決定は最終とみなされます。
戦略の質を評価するために、参加者はソリューションをサーバーに送信し、そこでソリューションをコンパイルします。その後、ユニットが敵にどのように抵抗するかを確認できます。 これを行うために、ユニット間の戦いをプレイできる特別な視覚化モジュールがあります。
段階的な戦闘のシミュレーション。 つまり ゲームの世界の時間は離散的です。 ターンごとに、シミュレーターはゲーム戦略をポーリングし(通常は戦闘参加者のリスト内のプレイヤーの順序で)、戦略はアクティブなユニットの「希望」を記述するいくつかの構造を埋め、その後、この構造の値が制限に調整されて適用されます。
それでは、わかりやすくするために例を見てみましょう。
ジャンルの古典は戦車との競争でした。 そのため、より詳細に例を検討します。
そのため、2048 x 1536の長方形のゲームワールドが与えられます。戦闘中、フィールドにボーナスが表示される場合があります。半径10のオブジェクトは、ユニットをヒットすると、現在のHPレベルまで5ユニット増加します。
戦闘では、4ユニットが参加します。
各ユニットは、半径20ユニットの円です。 ユニットには、移動方向に向けられた武器が装備されています。 武器は10ターン以内にリロードします。 発射体は、3ユニット/サイクルの速度で飛行します。
戦闘は500回の移動で構成されます。
通常、ルールは10〜15枚のシートに書かれていますが、ここに簡単な要約があります。
このようなゲームの世界では、次のAPIが期待されます。
ゲームの世界に関する情報を取得するための関数:
- ゲームの世界の次元を取得する
- 現在マップ上にあるボーナスに関する情報を取得する
- 敵ユニットに関する情報を取得する
- ユニットへのリンクを取得する
- マップ上のシェルに関する情報を取得する
- 現在の動きを取得
- 戦闘時間を取得する
ユニット制御機能:
- 設定速度
- 与えられた角度で回転する
- 撃つ
- 銃の状態に関する情報を取得する
- ユニットの位置情報を取得する
- ユニットのステータス情報を取得する
敵ユニットに関する情報を取得するための機能:
- ユニットのステータス情報を取得する
- ユニットの位置情報を取得する
ボーナス情報を受け取るための機能:
- ボーナスロケーション情報を取得する
- ボーナスの有効期間に関する情報を取得する
それだけです。 かなり短いAPIですが、十分です)
自分で実装する必要がある他のすべて。
以下は、解決しなければならないタスクの簡単なリストです。
- ユニットタイプの選択戦略(通常、戦闘の開始時に、ユニットタイプの選択を求められます。ユニットのタイプが異なると、特性も異なります。)
- 障害物回避
- オブジェクトの位置の予測(たとえば、先に発射する場合)
- その動きの軌跡の計算
- ...
これらの4時間が経過した後、通常は数時間の休憩があり、参加者は少しリラックスし、噛んで暖を取ることができます。 夕方には、彼らは再び大きなスクリーンとホールで組み立てられ、CGCの最もカラフルなステージ-コードゲームショー。 参加者はランダムにグループにグループ化され、すべての戦闘の表示が開始されます。 原則として、勝者チームがグループから次のステージに進むと、敗者は船外に残ります。 など、勝者が決定されるまで。
そして最後に、そのような競争のいくつかのビデオは、すべてのビデオが良質ではないので、怒ってはいけません。
一般的に、CGCは興味深いものであり、ACM ICPCは興味深いものです。
2007年にTTI SFUオリンピアードで開催されたCGC
CGCは2007年にサラトフでの準々決勝で開催されました
2007年にVolzhskyで開催されたCGC
2009年にボルゴグラードで開催されたCGC
UPD.1 CGCは、サラトフ市南部地域で2009年に準々決勝で開催されました。
興味がある場合はどこに行くか(リンクは現状のまま提供されます):