@@ -65,14 +65,14 @@ return result; } } - int command_R() { return move(0, +1); } - int command_L() { return move(0, -1); } - int command_U() { return move(-1, 0); } - int command_D() { return move(+1, 0); } - int wait() { if(dead)return 0; update(); return -1; } - int abort() { if(dead)return 0; cleared=true; return gained*25; } + int command_R() { if(dead)return 0; write("R"); return move(0, +1); } + int command_L() { if(dead)return 0; write("L"); return move(0, -1); } + int command_U() { if(dead)return 0; write("U"); return move(-1, 0); } + int command_D() { if(dead)return 0; write("D"); return move(+1, 0); } + int wait() { if(dead)return 0; update(); write("W"); return -1; } + int abort() { if(dead)return 0; cleared=true; write("A"); return gained*25; } int move(int dy, int dx) { foreach(y,s; data) foreach(x,c; s) @@ -193,8 +193,9 @@ return wait(); } int goal(int sy, int sx, int oy, int ox) { + return wait(); } } class MyForm : Form @@ -252,39 +253,32 @@ switch(ev.keyCode) { case Keys.DOWN: score += m.command_D(); - write("D"); stdout.flush(); break; case Keys.UP: score += m.command_U(); - write("U"); stdout.flush(); break; case Keys.LEFT: score += m.command_L(); - write("L"); stdout.flush(); break; case Keys.RIGHT: score += m.command_R(); - write("R"); stdout.flush(); break; case Keys.W: score += m.wait(); - write("W"); stdout.flush(); break; case Keys.A: score += m.abort(); - write("A"); stdout.flush(); break; case Keys.G: score += m.clever(); - write("_"); stdout.flush(); break; default: break;