拡張○×ゲーム (プラグイン版)

Random プラグインに渡す情報は盤のみに変更 5 years ago
TPIHuman プラグインに渡す情報は盤のみに変更 5 years ago
TTTConsole ConsolePlayクラスの実装 5 years ago
README.md README追加 5 years ago
TicTacToe.sln DLLプラグインでの実装完了(静的読み込み) 5 years ago
README.md

TicTacToe

拡張○×ゲーム プラグイン版

TTTConsole プロジェクト

  • ゲーム進行フレームワーク
  • C#実装
  • プラットフォームを 'x64' とすること.'Any' はNG

ConsolePlay.cs

  • コンソールで入出力するUI実装

Program.cs

  • Main関数(プログラム開始点)

Plugin.cs

  • 思考プラグインDLLを扱うクラス
  • プラグイン名,人間操作有無を読み込む
  • 思考関数ポインタを取得する

TicTacToe.cs

  • 拡張○×ゲームの進行管理

プラグインプロジェクト TPIHUman, TPIRandom

  • 思考プラグイン
  • C++実装
  • プラットフォームを 'x64' とすること.
  • ビルド後イベントに,コピーコマンドを記述

共通ヘッダーファイル TTTPlugin.h

  • GetName, IsHuman, MyTurn 関数の定義

実装ファイル Human.cpp, Random.cpp

  • 関数の実装
  • void GetName(char* buf, size_t bufsize)
    • 引数の文字列バッファ buf にプラグイン名を代入する
  • bool IsHuman()
    • プラグインが人間操作かどうかを返す
  • int MyTurn(int* board)
    • 思考関数
    • 引数 board : 盤の状態(値 1~3は自分駒,-1~-3は相手駒,次置くと1が消える)
    • 戻り値 : 置く場所 (0-8)

開発環境

  • Visual C# 2019