blob: 5a61c425c780d93f986fe2c10b366e6d9a3774b1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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;
}
|