У меня есть проект по созданию карточной игры с использованием C # ASP.NET, проект по созданию сайта по карточным играм, где пользователи играют и бросают вызов друг другу.
Мой друг может создать движок ИИ с использованием C ++, но как я могу общаться с этим движком через c #, особенно это должна быть браузерная онлайн-игра.
Все, начиная от страниц, сценариев и системы сайта, легко реализовать в C #, но я не могу понять, что такое карточный стол для каждой игры (связь с движком).
Какой подход использовать, есть ли предложения?
Если вы действительно хотите смешать C # с C ++, то, вероятно, самый простой способ общения — это создать C ++ DLL, которая включает в себя интерфейс C. Затем вы можете импортировать эту DLL с помощью P / Invoke:
[DllImport("ai.dll")]
static extern int doSomething(int numCardOnTable, int[] cardOnTable,
int numCardsOnHand, int[] cardsOnHand, out int cardToPlay);
Другой способ — использовать Managed 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(/*...*/);
}
Но я бы не рекомендовал использовать Managed C ++, потому что это не стандартный C ++.
Других решений пока нет …