我目前在学校的最后一年,攻读计算机研究高等国家文凭,基本上在最后一个学期,我们需要开发一个软件项目,基本上包含一个完整的系统.
现在,我正在考虑做的事情就像Robocode一样,但是我将使用.Net Framework来代替Java.
对于那些你不知道的Robocode是什么,它基本上是一种编程游戏在人们开发利用的类接口和存在的下载类的方法自己的机器人,然后他们打在对方的自主战斗竞技场......像这样:
alt text http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif
所以基本上,正如我所说,我想使用.Net Framework重新创建这种场景.我在StackOverflow上发布这个问题,希望更有经验的开发人员能够指导我为这个项目正确的方向.
到目前为止我的想法基本上是创造:
现在,当战斗发生时,当然会有某种动画和动作,我还没有决定还有什么用作媒介.
我目前想到的选项是:
你认为什么可能更适合这种特殊情况?
对于玩家开发机器人,我将提供他们能够像Robocode一样使用的某些类接口.
此类事件和方法的示例可能包括:
public void run () {}
public void onScannedRobot(ScannedRobotEvent e) {}
walk(/* ammount in pixels or w/e to walk to */);
turnRight(/* value in degrees for an angular turn */);
//etc...
Run Code Online (Sandbox Code Playgroud)
以下是Robocode(Java)中代码的片段:
public class MyFirstRobot extends Robot {
public void run() {
while (true) {
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360); …Run Code Online (Sandbox Code Playgroud) 好的,我有一个应用程序,我想添加对其他人的支持来编写应用程序将加载的模块.
这些模块是一个扩展我的Module类的类,用.Net编写.我需要知道如何在沙盒环境中加载这些DLL,只允许它们在某些目录中读/写.
这可能吗?
有没有办法将.NET程序集加载到也以自定义方式限制的Sandbox环境中?我知道你可以在不同的AppDomain中运行程序集,但是你可以限制它能够做你想要限制的某些事情吗?
例如:我希望能够在ASP.NET应用程序内的单独程序集中加载插件(简单,仅通过特定接口定义),但我只希望插件能够访问某些数据访问层组件并且无法直接连接到任何数据库.我正在考虑让一个应用程序实例托管多个客户端数据的情况,我只希望该插件能够访问当前登录的特定客户端/用户的数据.
任何人对如何做到这一点都有任何想法?
我在这里找到了关于如何在Sandbox中加载程序集的以下问题,但它没有讨论添加Sandbox的任何自定义限制:
更新:看起来你可以在调用" AppDomain.CreateDomain "时设置一个非常具体的" PermissionSet " ,但我不确定我需要设置哪些权限来允许/禁止上面的指定权限.MSDN上也有这篇文章:http://msdn.microsoft.com/en-us/library/bb763046.aspx
此外,我希望在.NET 2.0/3.5中执行此操作
除了使用System.AddIn之外的任何其他想法?