0

C# ASP.NET を使用してカード ゲームを作成するプロジェクトがあります。このプロジェクトは、ユーザーがプレイしてお互いに挑戦するカード ゲームの Web サイトを作成することです。

私の友人は C++ を使用して AI エンジンを構築できますが、C# を介してそのエンジンと通信する方法は、特にブラウザー ベースのオンライン ゲームである必要があります。

ページ、スクリプト、サイト システムのすべてを C# で簡単に実装できますが、各ゲームのカード テーブル (エンジンとの通信) はわかりません。

どのアプローチを使用するか、何か提案はありますか?

4

1 に答える 1

1

実際に C# と C++ を混在させたい場合、おそらく最も簡単な通信方法は、C インターフェイスを含む C++ DLL を作成することです。次に、 P/Invokeを使用してこの DLL をインポートできます。

[DllImport("ai.dll")]
static extern int doSomething(int numCardOnTable, int[] cardOnTable,
  int numCardsOnHand, int[] cardsOnHand, out int cardToPlay);

もう 1 つの方法は、C# に直接インポートできる Managed C++ を使用することです。

namespace CPP_managed_code
{
  public ref class AI
  {
  public:
    int doSomething(int numCardOnTable, int[] cardOnTable, int numCardsOnHand,
      int[] cardsOnHand, out int cardToPlay)
    {
      // ...
      return 0;
    }
  };
}

そしてあなたのC#コード:

using CPP_managed_code;

// ...
  unsafe private void myCSharpMethod()
  {
    AI ai = new AI();
    ai.doSomething(/*...*/);
  }

ただし、Managed C++ は標準 C++ ではないため、使用はお勧めしません。

于 2012-10-12T18:40:22.400 に答える