我们组织了一个人工智能竞赛,参赛者可以为我们用C# Windows Forms编写的游戏引擎编写AI代码。参赛者编写AI代码后,我们需要手动将这些代码插入到游戏中,这需要大量的工作。我认为应该有办法让参赛者在运行时插入他们的.cs文件。请问我们应该如何设计这种架构?希望有人能帮助我们。提前感谢,并为我的英语道歉。
注意:.cs文件包含人工智能逻辑。
回答:
或许可以使用策略模式。让参赛者通过一个接口实现一个入口点。然后,您的游戏外壳可以扫描指定文件夹中的所有程序集文件,并查找所有实现该入口点接口的类型。
更新:
为了帮助您入门,我在这里做了一个类似的操作(参见方法ScanAssembliesForHostTypes
):http://shuttle.codeplex.com/SourceControl/changeset/view/ba9750ca1f7a#Shuttle.Core%2fsource%2fShuttle.Core.Host%2fHostFactory.cs