; &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; ; &&& ACE BOT v2.3 &&& ; ; &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ; ; ; WRITER: Georg Schnabel (aka GreatGeorge) ; EMAIL: georg.schnabel@mycity.at ; ; I DID NOT ENCRYPT THE SOURCE TO ALLOW EVERY ; ONE TO SEE IT, YOU CAN USE IDEAS OF IT, BUT ; PLEASE DON'T JUST COPY SOMETHING. I WOULD BE ; VERY PLEASED IF YOU GIVE ME YOUR FEEDBACK ; ; MODLIST ; 1.0 - bot moving perpendicular to it's opponet ; uses radar to check range to enemy and if it ; is near enough, scan the enemy down ... ; scanning is quite usual (binary scan) ; but if target is in center cut scanarc to 1/4, ; elsewhere only to 1/2 ... works fine ; using a huge target prediction table for ; firing precise shoots ... ; ; 2.0 - changed movement fundamentally. now the bot only ; keeps away from walls and move straight ahead ... ; Leper showed me that distance doesn't matter ; much for target prediction, so modified table ... ; AceBot 2.0 has better marksman capabillities :-) ; ; 2.2 - prediction table didn't handle robots moving above ; 1024 (engine=5 + overburn), fixed that ... ; i made a special routine for shooting on stationary ; targets ... Now he is more effective against all ; this corner sitters and ultra fast movers. ; ; 2.3 - reorganized fire routine, now a little bit more precise ; shoots ... also wrote a special moving routine if bot ; is too hot ... that's all for this version #msg killer on duty :-) #config scanner=3 #config weapon=4 #config heatsinks=2 #config armor=2 #config engine=1 #def RANGE #def SCANARC jmp !SETUP ; *******************************************; ; - PREDICTION TABLE - ; ; ****************************************** ; ; (2600) *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 257, 257, 257 *257, 257, 257, 257 *257, 257, 257, 257 *257, 257, 257, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 255, 255, 255 *255, 255, 255, 255 *255, 255, 255, 255 *255, 255, 255, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 257, 257 *257, 257, 257, 257 *257, 257, 257, 257 *257, 257, 257, 257 *257, 257, 257, 257 *257, 257, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 256, 255, 255 *255, 255, 255, 255 *255, 255, 255, 255 *255, 255, 255, 255 *255, 255, 255, 255 *255, 255, 256, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 257, 257, 257 *257, 257, 257, 258 *258, 258, 258, 258 *258, 258, 258, 258 *258, 257, 257, 257 *257, 257, 257, 256 *256, 256, 256, 256 *256, 256, 256, 256 *256, 255, 255, 255 *255, 255, 255, 254 *254, 254, 254, 254 *254, 254, 254, 254 *254, 255, 255, 255 *255, 255, 255, 256 *256, 256, 256, 256 *256, 256, 256, 256 *257, 257, 257, 257 *258, 258, 258, 258 *258, 258, 258, 258 *258, 258, 258, 258 *258, 258, 258, 258 *257, 257, 257, 257 *256, 256, 256, 256 *256, 256, 256, 256 *255, 255, 255, 255 *254, 254, 254, 254 *254, 254, 254, 254 *254, 254, 254, 254 *254, 254, 254, 254 *255, 255, 255, 255 *256, 256, 256, 256 *256, 256, 256, 257 *257, 257, 257, 258 *258, 258, 258, 258 *259, 259, 259, 259 *259, 259, 259, 259 *258, 258, 258, 258 *258, 257, 257, 257 *257, 256, 256, 256 *256, 256, 256, 255 *255, 255, 255, 254 *254, 254, 254, 254 *253, 253, 253, 253 *253, 253, 253, 253 *254, 254, 254, 254 *254, 255, 255, 255 *255, 256, 256, 256 *256, 256, 256, 257 *257, 257, 258, 258 *258, 259, 259, 259 *259, 259, 259, 259 *259, 259, 259, 259 *259, 259, 259, 258 *258, 258, 257, 257 *257, 256, 256, 256 *256, 256, 256, 255 *255, 255, 254, 254 *254, 253, 253, 253 *253, 253, 253, 253 *253, 253, 253, 253 *253, 253, 253, 254 *254, 254, 255, 255 *255, 256, 256, 256 *256, 256, 257, 257 *257, 258, 258, 258 *259, 259, 259, 259 *260, 260, 260, 260 *260, 260, 260, 260 *259, 259, 259, 259 *258, 258, 258, 257 *257, 257, 256, 256 *256, 256, 255, 255 *255, 254, 254, 254 *253, 253, 253, 253 *252, 252, 252, 252 *252, 252, 252, 252 *253, 253, 253, 253 *254, 254, 254, 255 *255, 255, 256, 256 *256, 256, 257, 257 *258, 258, 258, 259 *259, 259, 260, 260 *260, 260, 260, 260 *260, 260, 260, 260 *260, 260, 259, 259 *259, 258, 258, 258 *257, 257, 256, 256 *256, 256, 255, 255 *254, 254, 254, 253 *253, 253, 252, 252 *252, 252, 252, 252 *252, 252, 252, 252 *252, 252, 253, 253 *253, 254, 254, 254 *255, 255, 256, 256 *256, 256, 257, 257 *258, 258, 259, 259 *259, 260, 260, 260 *260, 261, 261, 261 *261, 261, 261, 260 *260, 260, 260, 259 *259, 259, 258, 258 *257, 257, 256, 256 *256, 256, 255, 255 *254, 254, 253, 253 *253, 252, 252, 252 *252, 251, 251, 251 *251, 251, 251, 252 *252, 252, 252, 253 *253, 253, 254, 254 *255, 255, 256, 256 *256, 256, 257, 257 *258, 258, 259, 259 *260, 260, 260, 261 *261, 261, 261, 261 *261, 261, 261, 261 *261, 260, 260, 260 *259, 259, 258, 258 *257, 257, 256, 256 *256, 256, 255, 255 *254, 254, 253, 253 *252, 252, 252, 251 *251, 251, 251, 251 *251, 251, 251, 251 *251, 252, 252, 252 *253, 253, 254, 254 *255, 255, 256, 256 *256, 256, 257, 258 *258, 259, 259, 260 *260, 261, 261, 261 *261, 262, 262, 262 *262, 262, 262, 261 *261, 261, 261, 260 *260, 259, 259, 258 *258, 257, 256, 256 *256, 256, 255, 254 *254, 253, 253, 252 *252, 251, 251, 251 *251, 250, 250, 250 *250, 250, 250, 251 *251, 251, 251, 252 *252, 253, 253, 254 *254, 255, 256, 256 *256, 256, 257, 258 *258, 259, 260, 260 *261, 261, 261, 262 *262, 262, 262, 262 *262, 262, 262, 262 *262, 261, 261, 261 *260, 260, 259, 258 *258, 257, 256, 256 *256, 256, 255, 254 *254, 253, 252, 252 *251, 251, 251, 250 *250, 250, 250, 250 *250, 250, 250, 250 *250, 251, 251, 251 *252, 252, 253, 254 *254, 255, 256, 256 *256, 257, 257, 258 *259, 259, 260, 260 *261, 261, 262, 262 *262, 263, 263, 263 *263, 263, 263, 262 *262, 262, 261, 261 *260, 260, 259, 259 *258, 257, 257, 256 *256, 255, 255, 254 *253, 253, 252, 252 *251, 251, 250, 250 *250, 249, 249, 249 *249, 249, 249, 250 *250, 250, 251, 251 *252, 252, 253, 253 *254, 255, 255, 256 *256, 257, 257, 258 *259, 260, 260, 261 *261, 262, 262, 263 *263, 263, 263, 263 *263, 263, 263, 263 *263, 262, 262, 261 *261, 260, 260, 259 *258, 257, 257, 256 *256, 255, 255, 254 *253, 252, 252, 251 *251, 250, 250, 249 *249, 249, 249, 249 *249, 249, 249, 249 *249, 250, 250, 251 *251, 252, 252, 253 *254, 255, 255, 256 *256, 257, 258, 258 *259, 260, 260, 261 *262, 262, 263, 263 *263, 264, 264, 264 *264, 264, 264, 263 *263, 263, 262, 262 *261, 260, 260, 259 *258, 258, 257, 256 *256, 255, 254, 254 *253, 252, 252, 251 *250, 250, 249, 249 *249, 248, 248, 248 *248, 248, 248, 249 *249, 249, 250, 250 *251, 252, 252, 253 *254, 254, 255, 256 *256, 257, 258, 258 *259, 260, 261, 261 *262, 263, 263, 263 *264, 264, 264, 264 *264, 264, 264, 264 *263, 263, 263, 262 *261, 261, 260, 259 *258, 258, 257, 256 *256, 255, 254, 254 *253, 252, 251, 251 *250, 249, 249, 249 *248, 248, 248, 248 *248, 248, 248, 248 *249, 249, 249, 250 *251, 251, 252, 253 *254, 254, 255, 256 *256, 257, 258, 259 *259, 260, 261, 262 *262, 263, 264, 264 *264, 265, 265, 265 *265, 265, 265, 264 *264, 264, 263, 262 *262, 261, 260, 259 *259, 258, 257, 256 *256, 255, 254, 253 *253, 252, 251, 250 *250, 249, 248, 248 *248, 247, 247, 247 *247, 247, 247, 248 *248, 248, 249, 250 *250, 251, 252, 253 *253, 254, 255, 256 *256, 257, 258, 259 *260, 261, 261, 262 *263, 263, 264, 264 *265, 265, 265, 265 *265, 265, 265, 265 *264, 264, 263, 263 *262, 261, 261, 260 *259, 258, 257, 256 *256, 255, 254, 253 *252, 251, 251, 250 *249, 249, 248, 248 *247, 247, 247, 247 *247, 247, 247, 247 *248, 248, 249, 249 *250, 251, 251, 252 *253, 254, 255, 256 *256, 257, 258, 259 *260, 261, 262, 262 *263, 264, 264, 265 *265, 266, 266, 266 *266, 266, 266, 265 *265, 264, 264, 263 *262, 262, 261, 260 *259, 258, 257, 256 *256, 255, 254, 253 *252, 251, 250, 250 *249, 248, 248, 247 *247, 246, 246, 246 *246, 246, 246, 247 *247, 248, 248, 249 *250, 250, 251, 252 *253, 254, 255, 256 *256, 257, 258, 259 *260, 261, 262, 263 *264, 264, 265, 265 *266, 266, 266, 266 *266, 266, 266, 266 *265, 265, 264, 264 *263, 262, 261, 260 *259, 258, 257, 256 *256, 255, 254, 253 *252, 251, 250, 249 *248, 248, 247, 247 *246, 246, 246, 246 *246, 246, 246, 246 *247, 247, 248, 248 *249, 250, 251, 252 *253, 254, 255, 256 *256, 257, 258, 259 *260, 261, 262, 263 *264, 265, 265, 266 *266, 267, 267, 267 *267, 267, 267, 266 *266, 265, 265, 264 *263, 262, 261, 260 *259, 258, 257, 256 *256, 255, 254, 253 *252, 251, 250, 249 *248, 247, 247, 246 *246, 245, 245, 245 *245, 245, 245, 246 *246, 247, 247, 248 *249, 250, 251, 252 *253, 254, 255, 256 *256, 257, 258, 259 *261, 262, 263, 263 *264, 265, 266, 266 *267, 267, 267, 267 *267, 267, 267, 267 *266, 266, 265, 264 *263, 263, 262, 261 *259, 258, 257, 256 *256, 255, 254, 253 *251, 250, 249, 249 *248, 247, 246, 246 *245, 245, 245, 245 *245, 245, 245, 245 *246, 246, 247, 248 *249, 249, 250, 251 *253, 254, 255, 256 *256, 257, 258, 260 *261, 262, 263, 264 *265, 265, 266, 267 *267, 268, 268, 268 *268, 268, 268, 267 *267, 266, 265, 265 *264, 263, 262, 261 *260, 258, 257, 256 *256, 255, 254, 252 *251, 250, 249, 248 *247, 247, 246, 245 *245, 244, 244, 244 *244, 244, 244, 245 *245, 246, 247, 247 *248, 249, 250, 251 *252, 254, 255, 256 *256, 257, 259, 260 *261, 262, 263, 264 *265, 266, 267, 267 *268, 268, 268, 268 *268, 268, 268, 268 *267, 267, 266, 265 *264, 263, 262, 261 *260, 259, 257, 256 *256, 255, 253, 252 *251, 250, 249, 248 *247, 246, 245, 245 *244, 244, 244, 244 *244, 244, 244, 244 *245, 245, 246, 247 *248, 249, 250, 251 *252, 253, 255, 256 *256, 257, 259, 260 *261, 262, 263, 264 *265, 266, 267, 268 *268, 269, 269, 269 *269, 269, 269, 268 *268, 267, 266, 265 *264, 263, 262, 261 *260, 259, 257, 256 *256, 255, 253, 252 *251, 250, 249, 248 *247, 246, 245, 244 *244, 243, 243, 243 *243, 243, 243, 244 *244, 245, 246, 247 *248, 249, 250, 251 *252, 253, 255, 256 *256, 258, 259, 260 *261, 263, 264, 265 *266, 267, 268, 268 *269, 269, 269, 270 *270, 269, 269, 269 *268, 268, 267, 266 *265, 264, 263, 261 *260, 259, 258, 256 *256, 254, 253, 252 *251, 249, 248, 247 *246, 245, 244, 244 *243, 243, 243, 242 *242, 243, 243, 243 *244, 244, 245, 246 *247, 248, 249, 251 *252, 253, 254, 256 *256, 258, 259, 260 *262, 263, 264, 265 *266, 267, 268, 269 *269, 270, 270, 270 *270, 270, 270, 269 *269, 268, 267, 266 *265, 264, 263, 262 *260, 259, 258, 256 *256, 254, 253, 252 *250, 249, 248, 247 *246, 245, 244, 243 *243, 242, 242, 242 *242, 242, 242, 243 *243, 244, 245, 246 *247, 248, 249, 250 *252, 253, 254, 256 *256, 258, 259, 260 *262, 263, 264, 266 *267, 268, 268, 269 *270, 270, 270, 271 *271, 270, 270, 270 *269, 268, 268, 267 *266, 264, 263, 262 *260, 259, 258, 256 *256, 254, 253, 252 *250, 249, 248, 246 *245, 244, 244, 243 *242, 242, 242, 241 *241, 242, 242, 242 *243, 244, 244, 245 *246, 248, 249, 250 *252, 253, 254, 256 *256, 258, 259, 261 *262, 263, 265, 266 *267, 268, 269, 270 *270, 271, 271, 271 *271, 271, 271, 270 *270, 269, 268, 267 *266, 265, 263, 262 *261, 259, 258, 256 *256, 254, 253, 251 *250, 249, 247, 246 *245, 244, 243, 242 *242, 241, 241, 241 *241, 241, 241, 242 *242, 243, 244, 245 *246, 247, 249, 250 *251, 253, 254, 256 *256, 258, 259, 261 *262, 264, 265, 266 *267, 268, 269, 270 *271, 271, 272, 272 *272, 272, 271, 271 *270, 269, 268, 267 *266, 265, 264, 262 *261, 259, 258, 256 *256, 254, 253, 251 *250, 248, 247, 246 *245, 244, 243, 242 *241, 241, 240, 240 *240, 240, 241, 241 *242, 243, 244, 245 *246, 247, 248, 250 *251, 253, 254, 256 *256, 258, 259, 261 *263, 264, 265, 267 *268, 269, 270, 271 *271, 272, 272, 272 *272, 272, 272, 271 *271, 270, 269, 268 *267, 265, 264, 263 *261, 259, 258, 256 *256, 254, 253, 251 *249, 248, 247, 245 *244, 243, 242, 241 *241, 240, 240, 240 *240, 240, 240, 241 *241, 242, 243, 244 *245, 247, 248, 249 *251, 253, 254, 256 ; ************************************* ; ; - ROBOT PROGRAM ; ; ************************************* ; !SETUP mov SCANARC, 64 opo P_ARC, SCANARC opo P_MINELAYER, 20 opo P_MINELAYER, 20 mov ex, 500 mov fx, 500 int 7 sub ax, @1 opo P_STEERING, ax opo P_THROTTLE, 100 mov ax, 1 int I_KEEPSHIFT !MAIN int I_LOCATE cmp ex, 300 jb !LWALL cmp ex, 700 ja !RWALL cmp fx, 300 jb !UWALL cmp fx, 700 ja !DWALL jbe !KAWCPL !LWALL cmp [1], 128 jb !KAWCPL opo P_STEERING, 32 jae !LWALL !RWALL cmp [1], 128 ja !KAWCPL opo P_STEERING, 32 jbe !RWALL !UWALL mov dx, [1] add dx, 64 and dx, 255 cmp dx, 128 ja !KAWCPL opo P_STEERING, 32 jbe !UWALL !DWALL mov dx, [1] add dx, 64 and dx, 255 cmp dx, 128 jb !KAWCPL opo P_STEERING, 32 jae !DWALL !KAWCPL cmp [0], 100 jeq !SCAN opo P_THROTTLE, 100 opo P_STEERING, 30 !SCAN ipo P_SCAN, RANGE cmp RANGE, 1500 jb !SHRINK cmp SCANARC, 64 jae !FLIP shl SCANARC, 1 opo P_ARC, SCANARC jb !MAIN !FLIP mov SCANARC, 64 opo P_TROTATE, 128 jae !MAIN !SHRINK cmp SCANARC, 2 jbe !DECFIRE cmp @3, -1 jls !NAcc2 jeq !NAcc1 cmp @3, 1 jeq !PAcc1 jgr !PAcc2 shr SCANARC, 2 opo P_ARC, SCANARC jne !SCAN jeq !SCAN !NAcc2 mov dx, SCANARC neg dx opo P_TROTATE, dx shr SCANARC, 1 opo P_ARC, SCANARC jls !SCAN !NAcc1 shr SCANARC, 1 mov dx, SCANARC neg dx opo P_TROTATE, dx opo P_ARC, SCANARC jeq !SCAN !PAcc1 shr SCANARC, 1 opo P_TROTATE, SCANARC opo P_ARC, SCANARC jeq !SCAN !PAcc2 opo P_TROTATE, SCANARC shr SCANARC, 1 opo P_ARC, SCANARC jgr !SCAN !DECFIRE ipo P_HEAT, ax cmp ax, 150 ja !RND_MOVE mov ex, @13 mov fx, @6 cmp ex, 0 ja !apred neg ex add fx, 128 and fx, 255 !apred cmp ex, 35 jb !trslow jae !cpred !FSCAN ipo P_SCAN, RANGE cmp RANGE, 1500 ja !MAIN !FIRE mov ex, @13 mov fx, @6 cmp ex, 0 ja !cpred neg ex add fx, 128 and fx, 255 !cpred sar ex, 5 sar fx, 2 sal ex, 6 mov dx, 1028 add dx, ex add dx, fx opo P_TROTATE, [dx] opo P_FIRE, @3 opo P_FIRE, @3 jeq !FSCAN jne !FSCAN !trslow opo P_THROTTLE, 0 mov ax, 1 int I_OVERBURN !floop opo P_FIRE, @3 ipo P_SCAN, RANGE cmp RANGE, 1500 ja !fstop cmp @13, 35 jb !floop !fstop mov ax, 0 int I_OVERBURN jeq !MAIN jne !MAIN !RND_MOVE cmp @13, -35 jls !cmove cmp @13, 35 jls !trslow !cmove ipo P_RAND, ax and ax, 64 sub ax, 32 opo P_STEERING, ax jeq !MAIN jne !MAIN