我目前正在学校的最后一年,正在攻读计算机研究国家高级文凭,基本上在最后一个学期,我们需要开发一个软件项目,该项目基本上包含whole system.
现在,我想做的是类似的事情Robocode https://robocode.sourceforge.io/,但我将使用 .Net Framework 来代替 Java。
什么是机器人代码?
对于那些不知道 Robocode 是什么的人来说,它基本上是一种编程游戏,人们使用现有的类接口和可下载类中的方法开发自己的机器人,然后他们fight彼此在竞技场中进行自主战斗......就像这样:
(source: com.com http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif)
所以基本上,正如我所说,我想使用 .Net Framework 重新创建这种场景。我将这个问题发布在 StackOverflow 上,希望更有经验的开发人员能够指导我朝着这个项目的正确方向前进。 。
到目前为止我的想法基本上是创建:
- 离线应用程序将充当竞技场和用户界面,以与现有机器人等创建新的战斗。
- 在线界面,玩家可以使用它注册新机器人、查看过去的锦标赛得分等...
- 显然,玩家需要使用类接口来创建他们的机器人。
动画和图形(针对实际战斗)
现在,当然,战斗发生时会有某种动画和动作,但我还没有决定使用什么作为媒介。
我目前想到的选项是:
- 正如我在上面第一个要点中所说,开发一个将作为战场的离线应用程序,并且所有动画将主要使用 C# 代码完成
- 或者开发一个将处理动画的 Silverlight 应用程序(从而将场景从离线应用程序更改为现在的在线应用程序)
- 或者,也许是其中最不可行的,使用 JavaScript 创建战斗动画,例如Canvas https://web.archive.org/web/20120803112420/https://developer.mozilla.org/en/Canvas_tutorial
您认为什么更适合这个特定场景?
开发类和接口
对于开发机器人的玩家,我将提供某些类接口,他们将能够像在 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 https://robocode.sourceforge.io/,我发现这些游戏与我想要创建的游戏相似:
- NRobot https://web.archive.org/web/20170521050908/http://home.gna.org:80/nrobot/
-
Virii https://vrs-net.sourceforge.net/(谢谢Marc https://stackoverflow.com/questions/505040/developing-a-robocode-type-game-with-net-for-a-school-assignment#505076)