私は、「プログラミング ゲーム」を作成することを考えています。つまり、各プレイヤーが自分の「ボット」を制御するプログラムを作成し、プログラムを相互に戦わせて、誰が勝つかを確認します (「勝利」の定義による)。
これを公平にするために、各ボット プログラムは同じ速度で実行する必要があるため、事前にコンパイルされたネイティブの C/C++ コードを使用することは問題外に思えます。
3つのオプションを考えることができますが、2つについては確信が持てません:
- VM で実行される言語を使用する- これは、ボットが Java で記述され、JVM バイトコードにコンパイルされることを意味します。次に、すべてのボットが JVM を取得し、JVM の「クロック」または実行速度を制御するために必要なものを制御する必要があります。
問題: JVM の「クロック」を制御して、Xクロック サイクル分のコードを実行するように指示できますか? - スクリプト言語を使用する- ボットは JS や Python などで記述します。
問題:上記と同じ - 速度を制御できますか? - 独自の簡略化された言語を使用する-
問題:私はコンパイラではなくゲームを書いています。プレイする人は、さらに別の言語を学ばなければならないことを意味します。つまり、誰もプレイしなくなります。
基本的に、問題は、JVMまたは一部の言語インタープリターの実行速度を制御できるかどうかです(理論上ではなく、実際には)?または、私が考えていなかった別のオプションはありますか?