Difference between revisions of "Thread:Talk:Talon/source/Wall avoidance/reply (5)"

From Robowiki
Jump to navigation Jump to search
(Reply to Wall avoidance)
 
(for my sanity)
 
Line 85: Line 85:
 
}
 
}
 
 
static final String table = ""
+
static final String table = "\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064" +
+ (char)100 + (char)100 + (char)100
+
"\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0001" +
+ (char)100 + (char)100 + (char)100
+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001" +
+ (char)100 + (char)100 + (char)100
+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
+ (char)100 + (char)100 + (char)100
+
"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\u0001\u0001\u0001\u0001\u0001" +
+ (char)100 + (char)100 + (char)100
+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001" +
+ (char)100 + (char)100 + (char)100
+
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064" +
+ (char)1 + (char)1 + (char)1
+
"\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064" +
+ (char)1 + (char)1 + (char)1
+
"\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064";
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)0 + (char)0 + (char)0
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)1 + (char)1 + (char)1
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100
 
+ (char)100 + (char)100 + (char)100;
 
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>

Latest revision as of 21:00, 16 February 2013

How does this look? It will hit walls when it doesn't have enough time to turn, but it doesn't stick on them. If there were only eight bytes to spare I could make it slow down when it had to make a wide turn, which would greatly reduce the number of wall hits.


package cs;
 
//import java.awt.Color;
import java.awt.geom.Point2D;
import robocode.AdvancedRobot;
//import robocode.HitWallEvent;
import robocode.ScannedRobotEvent;
import robocode.util.Utils;
 
/**
 * Talon - a Nano Melee robot by Chase
 * 
 * The idea is to avoid driving toward enemy robots, nearer ones are more
 * dangerous to drive towards.
 * 
 * Codesize: 247
 */
public class Talon extends AdvancedRobot {
	private static Point2D.Double[] map = new Point2D.Double[10];
	private static int n = 0;
 
	public void run() {
		//setAdjustGunForRobotTurn(true); //Sheldor: In melee this doesn't really matter.
		//setAllColors(Color.RED); //Sheldor: I'm very sorry. :(
		double angle, bestDanger, danger;
		while(true) {
		
			setAhead((bestDanger = angle = 360) /*- (3 * getTurnRemaining())*/); //Sheldor: Slowing down before making big turns makes the wall avoidance much better, but it costs ~8 bytes.
			
			while(angle-- > 0) {
				int t;
				setFire(t = getOthers()); //Sheldor: From Graviton.
				
				//Sheldor: Drive toward the center of the field when the bot gets near a wall.
				//This will only work properly on a 1000/1000 pixel field.
				danger = -Math.abs(Utils.normalRelativeAngleDegrees(angle - Math.toDegrees(Math.atan2(getX() - 500, getY() - 500)))) *
					((short)(table.charAt((int)getX()) + table.charAt((int)getY())));
					
				try {
					while(true) {
						// our most recent scans, unfortunately not enough room
						// to project them
						Point2D.Double v = map[--t];
						// set our gun to face this nearest enemy
						setTurnGunRight(Utils.normalRelativeAngleDegrees(v.y - getGunHeading()));
						// the difference between current angle we are
						// considering and the enemy
						// multiply it by how close they are, closer is more
						// dangerous to move towards
						danger += 1 / (Math.abs(Utils.normalRelativeAngleDegrees(angle - v.y)) + 1) / v.x; //Sheldor: "X / Y" has exactly the same effect as "X * (1 / Y)" but is ~3 bytes smaller.  
					}
				} catch(Exception e) {
					// We don't have room for any kind of sanity checks, also
					// the only way to get out of the loop without
					// having to have a comparison, saves us some code size
				}
				if(danger < bestDanger) {
					bestDanger = danger;
					setTurnRight(Utils.normalRelativeAngleDegrees(angle - getHeading()));
				}
			}
			// Turning it by only 1 saves us some code size but in radians this
			// value > PI/4 the maximum
			// turn the radar can turn, meaning it will cover the full arc as
			// long as we call it every turn.
			turnRadarRightRadians(1);
		}
	}
 
	public void onScannedRobot(ScannedRobotEvent e) {
		try {
			// Set the most recent scan into our map of enemies
			map[--n] = new Point2D.Double(e.getDistance(), getHeading() + e.getBearing());
		}
		catch(Exception ex) {
			// attempted to scan but it failed, set the number of enemies again
			// we miss an enemy scan but we gain some code size here
			n = getOthers();
		}
	}
	
	static final String table = "\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064" +
			"\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0001" +
			"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001" +
			"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" +
			"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\u0001\u0001\u0001\u0001\u0001" +
			"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001" +
			"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064" +
			"\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064" +
			"\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064\u0064";
}