!747 m { static volatile long beatCount; static volatile int delay = 1000; static long booted; static volatile boolean loud = true; static int jumpEvery = 10; // We alternate between two machines as a test. static S machine1 = "teubizvjbppd"; static S machine2 = "dhtvkmknsjym"; p { booted = now(); readLocally("beatCount"); makeAndroid3("Heart."); print("Beat count " + beatCount + ". Beating at 1/" + delay + " ms..."); while (true) { if (loud) print("beep!"); ++beatCount; saveLocally("beatCount"); if ((beatCount % jumpEvery) == 0) { print("Now I should be moved!"); hyperMove(machine1, machine2); System.exit(0); } sleep(delay); } } static synchronized S answer(S s, L history) { if (match3("get beat count", s)) return "" + beatCount; if (match3("get delay", s)) return "" + delay; if (match3("booted when", s)) return "" + booted; return null; } }