问题标签 [robocode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3813 浏览

.net - 使用 .Net 开发 Robocode 类型的游戏,用于学校作业

我现在在学校的最后一年,正在攻读计算机研究国家高级文凭,基本上在这最后一个学期,我们需要开发一个软件项目,它基本上包含一个完整的系统。

现在,我想做的是类似于Robocode的事情,但我将使用 .Net 框架而不是 Java。


什么是机器人代码?

对于那些不知道 Robocode 是什么的人,它基本上是一种编程游戏,人们在其中使用类接口和现有可下载类中的方法开发自己的机器人,然后他们在一场自主战斗中相互战斗竞技场......像这样:

替代文字 http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif


所以基本上,正如我所说,我想使用 .Net 框架重新创建这种场景。我在 StackOverflow 上发布了这个问题,希望更有经验的开发人员能够指导我为这个项目找到正确的方向.

到目前为止,我的想法基本上是创建:

  • 一个离线应用程序,将用作战场和用户界面,以与现有机器人等创建新的战斗。
  • 一个在线界面,玩家可以使用它来注册新机器人、查看过去的锦标赛分数等......
  • 显然,玩家将需要使用类接口来创建他们的机器人。

动画和图形(用于实战)

现在,当战斗发生时,当然会有某种动画和运动,我还没有决定用什么作为媒介。

我目前想到的选项是:

  • 正如我在上面第一个要点中所说的那样,开发一个将作为战场的离线应用程序,所有动画将主要使用 C# 代码完成
  • 或者开发一个将处理动画的 Silverlight 应用程序(因此,将场景从离线应用程序更改为现在的在线应用程序
  • 或者,也许是其中最不可行的一种,使用 JavaScript 创建战斗动画,比如Canvas

您认为什么更适合这种特殊情况?


开发类和接口

对于开发机器人的玩家,我将提供某些类接口,他们将能够像在 Robocode 中一样使用它们。

此类事件和方法的示例可能包括:

这是 Robocode (Java) 中的代码片段:

然后为了真正让战斗发生,我正在考虑使用反射来实际读取用户实际使用的方法并实现它们以在战斗的特定时刻运行和调用等等。


现在,我恳请各位经验丰富的开发人员,指导我完成我的这个项目,并建议我需要做什么......对于初学者来说,这个项目是否可行? 如果确实如此,我需要从哪里开始我的项目?


至于我打算使用的技术和软件是:

  • .NET Framework 3.5,带有 C# 3.0
  • LINQ(语言集成查询)
  • SQL Server 2008
  • 微软视觉工作室 2008
  • jQuery 框架
  • 可能是银光

我感谢大家,即使在我的问题中设法阅读到这一点,我将需要并非常感谢我能获得的所有帮助来完成这个项目。

感谢您的时间和精力。


顺便说一句,到目前为止,除了Robocode之外,我发现这些游戏与我正在尝试创建的游戏相似:

0 投票
1 回答
7613 浏览

java - 我在哪里可以找到好的 Robocode 教程?

我真的很喜欢和我的第一个机器人一起玩Robocode 。现在我想做一些更令人兴奋的事情。制作高级机器人的最佳教程是什么?

0 投票
2 回答
136 浏览

java - 版本控制来管理俱乐部项目?

在我的学校,我们正在为我们的 CS 俱乐部发起一场编码竞赛,以帮助我们的新生学习使用Robocode快速周转时间、截止日期、代码比较和 API 文档的做法。我想知道是否有一种方法可以让每个成员都使用自己的包/机器人并将它们拉到一个中心位置进行比较和竞争?我希望能够将所有项目拉到我的笔记本电脑上,但允许俱乐部成员将他们的包裹分开,只在他们的一部分上工作。跨平台解决方案是理想的。

0 投票
1 回答
1082 浏览

java - robocode 引擎:如何设计(编写)运行时引擎——机器人世界

IBM 有(拥有)一个名为 RoboCode 的免费学习 Java 程序,可以在其中编写自定义机器人,然后在 2D 空间中进行战斗。我想写支持这种机器人的环境,但不知道用什么模式或设计。每个机器人都是一个线程。JRE 为每个线程分配了一定的(不确定的)运行时间。机器人世界引擎会首先建立一个玩家/机器人列表,然后进入一个循环,让每个玩家轮流做任何喜欢的事情:向前移动,向左转,向西北角开火,等等。每个机器人还被告知感兴趣的事件:一个或多个敌人在范围内,它被子弹击中等。

处理线程的组合也是事件侦听器(它们也是生产者吗?)让我感到困惑;似乎游戏引擎还有更多内容。即使是一些一般性的想法也会有所帮助。

0 投票
2 回答
1666 浏览

security - scala 运行时的安全性

我是Robocode引擎的开发人员。我们想让 Robocode 多语言和 Scala 看起来很相配。我们在这里有 Scala 插件原型

问题: 因为用户是有创造力的程序员,他们可能会尝试以不同的方式赢得战斗。机器人也是从在线数据库下载的,任何人都可以上传。因此,安全漏洞可能会导致用户计算机的安全漏洞。用 Java 编写的机器人在受限沙箱中运行。几乎所有东西都被禁止[网络、GUI、磁盘(受限)、线程(受限)、类加载器和反射]。沙盒类似于浏览器小程序。我们使用 SecurityManager、每个机器人的自定义 ClassLoader等...

在 Robocode 中托管 Scala 运行时有两种方法:

1)将其与沙箱内的机器人一起加载。对我们来说非常安全,首选的解决方案。但它会损害 Scala 运行时的能力,因为运行时使用反射。也许在运行时生成类?使用线程做一些内部清理?访问 JVM/内部 ? (我不想限制语言能力)

2) 使用 Scala 运行时作为可信代码,开箱即用,安全性与 JDK 相同。对(恶意)机器人的可见性。Scala 运行时 API 安全吗?他们有保安的方法吗?有安全模式吗?Scala 运行时中是否有任何单例,可以被滥用在机器人之间进行通信?任何可以模拟线程的并发/线程池/消息传递?(Scala 运行时是否有任何安全审计?)

3)介于两者之间,一些运行时类和一些运行时类。哪些类/包必须对机器人可见/哪些只是私有实现?(这似乎是未来的解决方案)

问题: 是否可以枚举和隔离必须在受信任范围内运行的运行时部分与其余部分?具体的包和类?还是更好的主意?

我正在寻找具体的答案,这将导致安全的解决方案。欢迎随意的想法,但没有奖励。scala 电子邮件组正在进行讨论。还没有具体的答案。

0 投票
2 回答
1359 浏览

java - Java文件输入输出

我有以下方法,该方法旨在将信息附加到文件中,但出现以下错误。在该方法中,我使用了继承自 java.io.InputStream 的部分 robocode API

文件和文件夹的所有权限似乎都很好,并且文件确实存在

SYSTEM: 初始化 itc.solomon 时出错 SYSTEM: java.security.AccessControlException: 阻止 itc.solomon 访问: (java.io.FilePermission log.txt read): 你只能读取你自己的根包目录中的文件。java.security.AccessControlException:阻止 itc.solomon 访问:(java.io.FilePermission log.txt 读取):您只能读取自己根包目录中的文件。在 robocode.security.RobocodeSecurityManager.handleSecurityProblem(Unknown Source) 在 robocode.security.RobocodeSecurityManager.checkPermission(Unknown Source) 在 java.lang.SecurityManager.checkRead(SecurityManager.java:888) 在 java.io.File.exists(File. java:748) 在 robocode.RobocodeFileOutputStream.(Unknown Source) 在 robocode.RobocodeFileOutputStream.(Unknown Source) 在 robocode.RobocodeFileWriter。

0 投票
2 回答
227 浏览

java - 刷新 Java 参数

我正在为一个名为 robocode 的编程游戏编写程序。问题在这里:

您可能不理解大部分代码,因为它扩展了 robocode.Robot,但我的问题在于变量While. 循环不会结束,因为方法获取参数一次并且它是正确的,因此该方法成为一个永恒的循环,但是有没有办法刷新方法参数,因为我不想每次调用它时都创建一个 while 循环方法?

0 投票
1 回答
8940 浏览

java - 类自引用

我有以下代码。角度函数需要一些来自调用它的类的信息。最好的方法是什么?

0 投票
2 回答
2003 浏览

java - 用 Robocode (Java) 编写文件

基本上,我正在尝试在 Robocode 中生成一个日志文件,但我遇到了问题,因为您不能在 Robocode 中使用 try/catch(据我所知)。我做了以下事情:

并在编译时收到以下错误:-

0 投票
2 回答
5719 浏览

maven-2 - maven嵌入式错误:没有这样的存档器

我对 Maven 完全陌生。

我正在尝试对 robocode 中的测试进行覆盖率分析。为此,我正在使用 clover(试用许可证),因为 emma 似乎无法很好地处理多模块项目。

不幸的是,当它到达 robocode.test.robots 模块时,我得到了错误:

我试过用谷歌搜索这个问题,但我没有找到使用与我拥有的 pom 文件中的标签相同的标签的示例。

这是pom文件(我只添加了三叶草插件部分):

据我了解,问题出在 unpack-dependencies 部分。