我正在考虑制作一个“编程游戏”,即每个玩家编写一个程序来控制他们的“机器人”,然后程序彼此对抗以查看谁获胜(通过某些定义“赢得”)。为了达到这个目的,每个机器人程序应该以相同的速度执行,所以使用本机预编译的C/C++代码似乎是不可能的。控制执行速度
我能想到的3个选项,但我不确定约2:
- 使用,在一个VM运行的语言 - 这意味着机器人是用Java编写,并编译成JVM字节码。然后每个僵尸程序都会得到一个JVM,并且我需要控制JVM“时钟”或任何它来控制执行速度。
问题:可以在JVM“时钟”控制,告诉它运行X价值的代码时钟周期? - 使用脚本语言 - 机器人将用JS或Python或其他编写。
问题:同上 - 速度可以控制吗? - 用我自己的语言简化 -
问题:我写一个游戏,而不是一个编译器。这意味着任何玩家都必须学习另一种语言,这意味着没有人会玩。
所以基本上,我想这个问题是我可以控制JVM或某些语言解释器的执行速度(而不是在理论 - 实践)?或者还有另一个我没有想到的选择?
这就是为什么我说每个机器人都会拥有它自己的JVM。比我能(如果可能的话)告诉每个JVM轮流执行100条指令,并且它们每个都按照自己的速度执行(取决于操作系统调度),但是当每个调用返回时,每个JVM执行100条指令,并且现在“暂停”,模拟一个持续运行的环境。 – baruch