プログラマー向けサンドボックス

こんにちは、Habrahabr!



私はあなたとゲームをプレイしたいです。







しかし、正確に言うと、過去数か月間の私の仕事の結果をあなたに提示したいと思います。 コード名はサンドボックスです。



これは何ですか



このシステムの本質は簡単です。プログラマーにとってサンドボックスです。 ここでは、ボット用の人工知能を作成し、他の参加者のボットと遊ぶことができます。 何をする? すべてが単純です-ばかで。 はい、カードゲーム。



このシステムは、Javaでの許可の研究のための小さなプロジェクトから生まれました。 最初は、実行可能コードの違いがどのように機能するのか、プラグインアーキテクチャがどのように構築されるのかなどを考えていました。 しかし、最終的には、完成品にすべてを包みたかったのです。それがすべての結果でした。



気にする人は、システム自体を詳しく見てみましょう。



まず、システム自体のイントロページで次のすべてを見つけることができると言いたいです。 多かれ少なかれ完全なガイドがあり、それはあなたがすでに低いエントリーしきい値を克服することを可能にします。 また、プロジェクトの段階はMBTですが、これが機能に影響することはありません。 リリース予定のすべてのものはすでに搭載されています。 これからはウィッシュリストを完成させ、磨くだけです。



システムはどのように機能しますか?



プレーヤーのライフサイクルは非常に単純です。 アカウントの登録とアクティベーション後*システムのすべての機能にアクセスできます。 そして今、プレイヤーとして、ボットを作成、コンパイル、ダウンロードすることができます。



ロード後、システム自体に対してラウンドが発生します。 これは資格と呼ばれます。 目標は1つだけです。シラミのボットコードをチェックすることです。 ボットが公平にプレイできなかったり、プレイ方法がわからなかったり、不正行為をしようとしたりすると、自動的に罰金が科せられ、それ以上プレイできなくなります。 続行するには、修正して補充する必要があります。



資格取得後、ボットはすでにトーナメントに参加できます。 トーナメントのプレイヤーはスイスのシステムに従って選択されます。 ゲームは1時間ごとに開催されます。 トーナメントは一週間続きます。 結果は毎週日曜日に集計されます。 ポイントは、Eloレーティング式に従って割り当てられます。 そして、最初の3つはトーナメントの歴史に分類されます。 すべての受賞者には概要があります-殿堂。



*ここで、Googleアクティベーションレターはスパムとしてマークされる場合があります。 残念ながら、この問題は克服できませんでした。 DNSを完全に構成しましたが、それにもかかわらず、私には不明な理由で、信頼は標準に達していません。



使い方は?



インターフェース



スクリーンショットにコメントするのは不要だと思うので、写真で注目を集めようとします。



殿堂






トーナメントの歴史






プレイヤーの統計






ゲームログ(開始)






ボットアップロードフォーム(これはトーナメントへのエントリーポイントです)






ボット



書きたいコードは完全にあなた次第です。 予選ラウンドの対戦相手のような単純な戦略を実装することも、独自の戦略を開発することもできます。 書き込みには、java + maven + editorが必要です。



ボットインターフェイス自体には、プレイヤーの役割に応じて、ゲーム中にシステムが交互にプルする2つのメソッドのみが含まれています。 各メソッドの入力に移動するオブジェクトには、ゲームの現在の状態に関するすべての必要な情報が含まれています。それに基づいて、結論を出し、動きを出すことも必要です。



public interface Ai { /** * Called by executor every move when your role is Attacker * @param table cards on the table * @return attacking card */ Card onAttack(Table table); /** * Called by executor every move when your role is Defender * @param table cards on the table * @return defending card */ Card onDefence(Table table); }
      
      







なんで?



あなたにとって、これは競争する方法です。 それはすべてのプログラマーのようなものではありませんが、すべての人でさえ競争して彼の優位性を証明するのが好きです。



私にとって、これは実稼働環境でシステムをサポートする経験です。 得られた知識が、私たちが始められたことをさらに発展させることを願っています(もちろん興味深いものでない限り)。



どこでプレイする



ここのリンクはsandbox.x-lab.spaceです



ホスティングは空想ではないので、同時にプロバイダーをチェックして、habraeffectと呼ばれる現象に耐えられるかどうかを確認します。



ご清聴ありがとうございました。 あなたの質問、フィードバック、建設的な批判を待って、それは私にとって重要です。



PS



ハブまたはリソースでミスをした場合(ここまたはオタクではるかに優れていると思いました)-教えてください、転送します。



All Articles