.NET CoreとVS Codeで作る人狼知能

18
.NET Core と Visual Studio Code とととととと AIWolf.NET Core 1.0.2 ととととと ととととと とととと

Transcript of .NET CoreとVS Codeで作る人狼知能

Page 1: .NET CoreとVS Codeで作る人狼知能

.NET Coreと Visual Studio Codeで作る人狼知能

( AIWolf.NET Core 1.0.2版)

山形大学 学術研究院 大槻恭士

Page 2: .NET CoreとVS Codeで作る人狼知能

改訂内容• AIWolf.NET Core 1.0.2を使用• .NET Core SDKのバージョンを 1.0.3 LTSに変更• .NET Core 1.0.3では Fedora 24がサポートされていないので,実行例をWindows 10に変更

Page 3: .NET CoreとVS Codeで作る人狼知能

はじめに• .NET Core

• クロスプラットフォーム• 移植可能 (.NET Framework, Mono, Xamarin, UWP, etc.)• 高パフォーマンス• コンソールアプリケーションのみ→人狼知能エージェント向き

• Visual Studio Code• マルチプラットフォーム• 軽量で高速• 拡張性• デバッグ機能

➡プラットフォームに依存しない人狼知能エージェント開発

Page 4: .NET CoreとVS Codeで作る人狼知能

準備• .NET Core

SDK 1.0.3 (LTS)• Visual Studio

Code• C# for Visual

Studio Code

Page 5: .NET CoreとVS Codeで作る人狼知能

ClientStarterのビルド &実行1. ClientStarter-

1.0.2.zipをダウンロードして,その中のClientStarterフォルダを任意の場所に置く

2. そのフォルダでdotnet restore ⏎

3. dotnet build ⏎

4. dotnet run ⏎で起動を確認

Page 6: .NET CoreとVS Codeで作る人狼知能

エージェント用プロジェクト作成1. ClientStarterフォルダの隣にエージェント用フォルダ(ここでは

DemoAgent)を作成2. そのフォルダに移動し

dotnet new –t lib ⏎でライブラリプロジェクト作成

Page 7: .NET CoreとVS Codeで作る人狼知能

エージェントプロジェクトを開く1. VS Codeでエージェントプロジェクト用フォルダを開く2. 必要なライブラリをリストアするかどうかのダイアログが出る3. 「閉じる」をクリックしてリストアを中止

Page 8: .NET CoreとVS Codeで作る人狼知能

必要なライブラリを指定1. project.jsonを右のように修正2. 保存するとリストアするか聞かれるので,今度は

Restoreをクリック

Page 9: .NET CoreとVS Codeで作る人狼知能

RoleAssignPlayerの作成1. Library.csの名前を変更 (ここでは

DemoRoleAssignPlayer.cs) 2. 下のように入力すれば,各役職にサンプルプレイヤーを割り当てるエージェントとなる3. あとは SetPlayer()メソッドの中で各役職に自作のエージェントを割り当てていくことになる 

Page 10: .NET CoreとVS Codeで作る人狼知能

RoleAssignPlayerの実行(1)とりあえず先の RoleAssignPlayerをゲームに参加させてみる1. デバッグモードにする2. 歯車をクリック3. 環境の選択で .NET Core4. launch.jsonが開く

Page 11: .NET CoreとVS Codeで作る人狼知能

RoleAssignPlayerの実行(2)5. launch.jsonの“ .NET Core Launch (console)”の“ program”と“ args”を以下のように設定

Page 12: .NET CoreとVS Codeで作る人狼知能

RoleAssignPlayerの実行(3)6. デバッグ開始をクリックすると

「タスクランナーが構成されていません」がポップアップ7. 「タスクランナーの構成」をクリック8. .NET Coreを選択9. tasks.jsonが開くが,変更せず閉じる

Page 13: .NET CoreとVS Codeで作る人狼知能

RoleAssignPlayerの実行(4)10.人狼知能プラットフォームのゲームサーバを起動しておき,改めてデバッグを開始する

Page 14: .NET CoreとVS Codeで作る人狼知能

占い師エージェントを作る( 1)

Initialize()でフィールドを初期化することを忘れないこと

右の内容で Seer.csを作る

Page 15: .NET CoreとVS Codeで作る人狼知能

占い師エージェントを作る( 2)

まだ占っていない生存エージェントからランダムに占い先を選択

Page 16: .NET CoreとVS Codeで作る人狼知能

占い師エージェントを作る( 3)確定人狼がいなければ占っていないエージェントから投票先を選ぶ宣言済みの投票先と異なる場合は再度宣言する

Page 17: .NET CoreとVS Codeで作る人狼知能

作った占い師エージェントで参戦•下のように DemoRoleAssignPlayerを変更

Page 18: .NET CoreとVS Codeで作る人狼知能

本当に参戦しているか確認1. ブレークポイントを設定2. デバッグを開始3. 作成したエージェントがゲームに参加しているかを確認