c++ - 使用 C++ AI 引擎和 ASP.NET C# 页面的纸牌游戏

标签 c++ asp.net c#-4.0 game-engine playing-cards

我有一个使用 C# ASP.NET 构建纸牌游戏的项目,该项目旨在拥有一个纸牌游戏网站,供用户玩游戏并互相挑战。

我的 friend 可以使用 C++ 构建 AI 引擎,但我如何通过 C# 与该引擎通信,特别是它应该是一个基于浏览器的在线游戏。

页面、脚本和站点系统的所有内容都可以在 C# 中轻松实现,但是每个游戏的卡表(与引擎的通信)是我无法理解的。

使用哪种方法,有什么建议吗?

最佳答案

如果您真的想混合使用 C# 和 C++,那么最简单的通信方式可能是创建一个包含 C 接口(interface)的 C++ DLL。然后您可以使用 P/Invoke 导入此 DLL。 :

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

另一种方法是使用托管 C++,您可以直接在 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(/*...*/);
  }

但我不建议使用托管 C++,因为它不是标准 C++。

关于c++ - 使用 C++ AI 引擎和 ASP.NET C# 页面的纸牌游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12864818/

相关文章:

c++ - 我可以从我的程序启动我的 MSI 安装程序吗?

c++ - CRTP 模式不会触发完整模板实例化

C# - 在普通类中公开静态类?

c# - session 在自定义操作过滤器中不起作用

c#-4.0 - C# 4.0 AsParallel() 访问文件系统时出现UnAuthorizedAccessException

c#-4.0 - 如何在setup工程中写入app.config并在程序中使用

c++ - 使用 OpenCV 进行对象检测和隔离

c++ linux套接字服务器反复调用客户端

javascript - 将文本附加到标签时的 Jquery 问题

c# - 调用 C# COM 组件时在 javascript 中键入不匹配错误