c#版人狼知能エージェントの作り方(visual studio編)

Post on 19-Jan-2017

668 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

C# 版人狼知能エージェントの作り方― Visual Studio 編 ―山形大学 学術研究院 大槻恭士

準備1. Visual Studio をインストールここでは VS Community 2015 を想定2. 人狼知能プラットフォームをダウンロードして,任意のフォルダーに展開しておく3. AIWolf.NET をダウンロードして,任意のフォルダーに展開しておく4. Json.NET を入手し, Newtonsoft.Json.dll を 3. と同じフォルダーに置く

新規プロジェクトの作成(1)ファイル>新規作成>プロジェクト

新規プロジェクトの作成(2)C# クラスライブラリを選択し,プロジェクト名(ここでは ExerciseAgent )を入力

新規プロジェクトの作成(3)自動的にソースファイル Class1.cs にクラス Class1 が作成される

参照の追加準備しておいた AIWolfLibCommon.dll, AIWolfLibClient.dll を参照

自作 RoleAssignPlayer の作成(1)Class1.cs を ExerciseRoleAssignPlayer.cs に名前を変更→ クラス名も自動的に変わる

自作 RoleAssignPlayer の作成(2)ExerciseRoleAssignPlayer クラスの基底クラスに AbstractRoleAssignPlayer を指定

エラー表示とともに電球マークが現れるので希望のクイック操作を選択

自作 RoleAssignPlayer の作成(3)さらに電球から抽象クラスを実装するクイック操作を選択

自作 RoleAssignPlayer の作成(4)プレイヤー名を返すように Name プロパティを修正し,不要な using を整理すれば役職に応じたサンプルプレイヤーを使う人狼知能エージェントの出来上がり

自作プレイヤーでゲーム実行(1)プロジェクト> ExerciseAgent のプロパティ>デバッグ• 「外部プログラムの開始」をチェックし ClientStarter.exe を指定• localhost のポート 10000 に接続し, SEER をリクエストする場合のコマンドライン引数  -h localhost –p 10000 –c ExerciseAgent.ExerciseRoleAssignPlayer ExerciseAgent.dll SEER

自作プレイヤーでゲーム実行(2)開始ボタンをクリック

接続完了

Start Game

占い師の実装例(1)プロジェクト>クラスの追加

ExerciseSeerPlayer.cs を追加

占い師の実装例(2)基底クラスを AbstractSeer に指定し電球に従って抽象メソッドを仮実装したところが右図

これらのメソッドの意味・呼ばれるタイミングなどは Java 版と同じ          ↓詳細は Java 版のチュートリアルを参照

占い師の実装例(3)Divine() の実装方針• まだ占っていない自分以外の生存プレイヤーからランダムに選択

占い師の実装例(4)Vote() の実装方針• 人狼を見つけていたらその中からランダム• 人狼をまだ見つけていなければ,白(含自分)判定以外のプレイヤーからランダム

占い師の実装例(5)Talk() の実装方針• 占いで人狼を見つけたら

CO• CO 後は占い結果を報告

占い師の実装例(6)今回は Finish() には何も実装しない

最後に ExerciseRoleAssignPlayer のコンストラクタで  ExerciseSeerPlayer を占い師のときに使うように設定

人狼知能大会に提出• Release 構成でビルド

• プロジェクトフォルダーの bin\Release\ExerciseAgent.dll を提出

コマンドラインからの実行• dll ファイルを AIWolf.NET を展開したフォルダーに置くのが楽

ClientStarter.exe -h localhost –p 10000 –c ExerciseAgent.ExerciseRoleAssignPlayer ExerciseAgent.dll SEER

top related