diff options
Diffstat (limited to 'TournementArena.java')
-rw-r--r-- | TournementArena.java | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/TournementArena.java b/TournementArena.java new file mode 100644 index 0000000..5a61c42 --- /dev/null +++ b/TournementArena.java @@ -0,0 +1,40 @@ +class TournementArena { + TournementArena(Interpreter[] vms, String[] arena) { + codeLen = arena[0].length(); + this.vms = vms; + this.arena = arena; + rng = new java.util.Random(); + } + + String[] iterate() { + Interpreter vm = vms[rng.nextInt(vms.length)]; + String + code = arena[rng.nextInt(arena.length)], + param = arena[rng.nextInt(arena.length)], + res = vm.eval(code, param); + arena[rng.nextInt(arena.length)] = res; + String [] ret = {code, param, res}; + return ret; + } + + public static void main(String[] args){ + // init arena + Interpreter[] vms = { + new XorInterpreter(), + new ExternalInterpreter("/bin/echo") + }; + String[] arena = {"00", "01", "10", "11"}; // TODO: add random bit-strings + TournementArena a = new TournementArena(vms, arena); + + // run arena forever + while (true) { + String[] r = a.iterate(); + System.out.println(r[0] + " ( " + r[1] + " ) -> " + r[2]); + } + } + + int codeLen; + Interpreter[] vms; + String[] arena; + java.util.Random rng; +} |