diff options
author | Jan Huwald <jh@sotun.de> | 2013-04-22 13:42:11 (GMT) |
---|---|---|
committer | Jan Huwald <jh@sotun.de> | 2013-04-22 13:42:11 (GMT) |
commit | f788d4c48f2d94fcfd73a093ab33d734ab427cb8 (patch) | |
tree | be4c00d562ec75f746736b5e0788f2847f7b8baa /TournementArena.java |
Initial commit
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; +} |