我现在在学校的最后一年,正在攻读计算机研究国家高级文凭,基本上在这最后一个学期,我们需要开发一个软件项目,它基本上包含一个完整的系统。
现在,我想做的是类似于Robocode的事情,但我将使用 .Net 框架而不是 Java。
什么是机器人代码?
对于那些不知道 Robocode 是什么的人,它基本上是一种编程游戏,人们在其中使用类接口和现有可下载类中的方法开发自己的机器人,然后他们在一场自主战斗中相互战斗。竞技场......像这样:
替代文字 http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif
所以基本上,正如我所说,我想使用 .Net 框架重新创建这种场景。我在 StackOverflow 上发布了这个问题,希望更有经验的开发人员能够指导我为这个项目找到正确的方向.
到目前为止,我的想法基本上是创建:
- 一个离线应用程序,将用作战场和用户界面,以与现有机器人等创建新的战斗。
- 一个在线界面,玩家可以使用它来注册新机器人、查看过去的锦标赛分数等......
- 显然,玩家将需要使用类接口来创建他们的机器人。
动画和图形(用于实战)
现在,当战斗发生时,当然会有某种动画和运动,我还没有决定用什么作为媒介。
我目前想到的选项是:
- 正如我在上面第一个要点中所说的那样,开发一个将作为战场的离线应用程序,所有动画将主要使用 C# 代码完成
- 或者开发一个将处理动画的 Silverlight 应用程序(因此,将场景从离线应用程序更改为现在的在线应用程序
- 或者,也许是其中最不可行的一种,使用 JavaScript 创建战斗动画,比如Canvas
您认为什么更适合这种特殊情况?
开发类和接口
对于开发机器人的玩家,我将提供某些类接口,他们将能够像在 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...
这是 Robocode (Java) 中的代码片段:
public class MyFirstRobot extends Robot {
public void run() {
while (true) {
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
}
}
然后为了真正让战斗发生,我正在考虑使用反射来实际读取用户实际使用的方法并实现它们以在战斗的特定时刻运行和调用等等。
现在,我恳请各位经验丰富的开发人员,指导我完成我的这个项目,并建议我需要做什么......对于初学者来说,这个项目是否可行? 如果确实如此,我需要从哪里开始我的项目?
至于我打算使用的技术和软件是:
- .NET Framework 3.5,带有 C# 3.0
- LINQ(语言集成查询)
- SQL Server 2008
- 微软视觉工作室 2008
- jQuery 框架
- 可能是银光
我感谢大家,即使在我的问题中设法阅读到这一点,我将需要并非常感谢我能获得的所有帮助来完成这个项目。
感谢您的时间和精力。
顺便说一句,到目前为止,除了Robocode之外,我发现这些游戏与我正在尝试创建的游戏相似: