Index: test.d
==================================================================
--- test.d
+++ test.d
@@ -170,10 +170,33 @@
 				}
 			if(!wa)
 				underwater = 0;
 		}
 	}
+
+	int clever()
+	{
+		if(dead)
+			return 0;
+		int sy,sx;
+		int[] ly,lx;
+		int oy,ox;
+		for(int y=0; y<H; ++y)
+		for(int x=0; x<W; ++x)
+			if(data[y][x]=='R')
+				sy=y, sx=x;
+			else if(data[y][x]=='\\')
+				ly~=y, lx~=x;
+			else if(data[y][x]=='O')
+				oy=y, ox=x;
+		if(ly.length==0)
+			return goal(sy,sx,oy,ox);
+		return wait();
+	}
+	int goal(int sy, int sx, int oy, int ox)
+	{
+	}
 }
 
 class MyForm : Form
 {
 	Map m;
@@ -256,10 +279,15 @@
 		case Keys.A:
 			score += m.abort();
 			write("A");
 			stdout.flush();
 			break;
+		case Keys.G:
+			score += m.clever();
+			write("_");
+			stdout.flush();
+			break;
 		default:
 			break;
 		}
 		if(m.cleared) {
 			writeln();