<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://robowiki.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zyx</id>
	<title>Robowiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://robowiki.net/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Zyx"/>
	<link rel="alternate" type="text/html" href="http://robowiki.net/wiki/Special:Contributions/Zyx"/>
	<updated>2026-04-26T21:28:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=22018</id>
		<title>RoboRumble/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=22018"/>
		<updated>2011-09-26T18:13:31Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Removed YersiniaPestis 1.3.7, hard to say which is better, many things changed in 1.7.X&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:RoboRumble/Navigation}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just add your bot name ('''as appears in the Robocode selector after packaging''', so including versionnumber) and the RobocodeRepository id number separated by &amp;quot;,&amp;quot; (there must be no space after the comma).&amp;lt;br&amp;gt; &lt;br /&gt;
Please, make sure your bot is not in the list before adding it, and delete the old version if you are adding a new one.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The list is in '''alphabetical''' order. Add your bot in the right slot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ab.DengerousRoBatra 1.3,http://www.robocoderepository.com/BotFiles/3664/ab.DengerousRoBatra_1.3.jar&lt;br /&gt;
abc.Shadow 3.83c,http://robocode.aclsi.pt/abc.Shadow_3.83c.jar&lt;br /&gt;
abc.tron3.Tron 3.11,http://www.robocoderepository.com/BotFiles/2205/abc.tron3.Tron_3.11.jar&lt;br /&gt;
abc.Tron 2.02,http://www.robocoderepository.com/BotFiles/241/abc.Tron_2.02.jar&lt;br /&gt;
abud.ThirdRobo 1.0,http://www.robocoderepository.com/BotFiles/2479/abud.ThirdRobo_1.0.jar&lt;br /&gt;
ad.last.Bottom 1.0,http://www.robocoderepository.com/BotFiles/1876/ad.last.Bottom_1.0.jar&lt;br /&gt;
ad.Quest 0.10,http://www.robocoderepository.com/BotFiles/1846/ad.Quest_0.10.jar&lt;br /&gt;
adt.Ar1 2.1,http://www.robocoderepository.com/BotFiles/2254/adt.Ar1_2.1.jar&lt;br /&gt;
adt.Ar2 1.0,http://www.robocoderepository.com/BotFiles/2303/adt.Ar2_1.0.jar&lt;br /&gt;
aetos.AetosFirstBot 1.0,http://robocode.aetosgames.com/aetos.AetosFirstBot_1.0.jar&lt;br /&gt;
ag.Gir 0.99,http://www.robocoderepository.com/BotFiles/3065/ag.Gir_0.99.jar&lt;br /&gt;
agd.Mooserwirt2 2.7,http://rednaxela-robocode.dyndns.org/data/robot_archive/agd.Mooserwirt2_2.7.jar&lt;br /&gt;
ags.Glacier 0.2.7,http://rednaxela-robocode.dyndns.org/data/robots/ags.Glacier_0.2.7.jar&lt;br /&gt;
ags.micro.Carpet 1.1,http://rednaxela-robocode.dyndns.org/data/robots/ags.micro.Carpet_1.1.jar&lt;br /&gt;
ags.Midboss 1q.fast,http://rednaxela-robocode.dyndns.org/data/robots/ags.Midboss_1q.fast.jar&lt;br /&gt;
ags.polished.PolishedRuby 1,http://rednaxela-robocode.dyndns.org/data/robots/ags.polished.PolishedRuby_1.jar&lt;br /&gt;
ags.rougedc.RougeDC willow,http://rednaxela-robocode.dyndns.org/data/robots/ags.rougedc.RougeDC_willow.jar&lt;br /&gt;
ahf.Acero 1.0,http://www.robocoderepository.com/BotFiles/2151/ahf.Acero_1.0.jar&lt;br /&gt;
ahf.NanoAndrew .4,http://www.robocoderepository.com/BotFiles/2002/ahf.NanoAndrew_.4.jar&lt;br /&gt;
ahf.r2d2.R2d2 0.86,http://www.robocoderepository.com/BotFiles/2035/ahf.r2d2.R2d2_0.86.jar&lt;br /&gt;
ahr.ice.Ice 1.0,http://robocoderepository.com/BotFiles/3966/ahr.ice.Ice_1.0.jar&lt;br /&gt;
AIR.iRobot 1.0,http://www.robocoderepository.com/BotFiles/3205/AIR.iRobot_1.0.jar&lt;br /&gt;
ak.Fermat 2.0,http://www.robocoderepository.com/BotFiles/799/ak.Fermat_2.0.jar&lt;br /&gt;
alex.Diabolo5 1.1,http://darkcanuck.net/rumble/robots/alex.Diabolo5_1.1.jar&lt;br /&gt;
alk.lap.LoudAndProud 2.23,http://www.robocoderepository.com/BotFiles/3601/alk.lap.LoudAndProud_2.23.jar&lt;br /&gt;
am.Miedzix 3.0,http://darkcanuck.net/rumble/robots/am.Miedzix_3.0.jar&lt;br /&gt;
amarok.Rookie 1.1,http://www.robocoderepository.com/BotFiles/422/amarok.Rookie_1.1.jar&lt;br /&gt;
amk.ChumbaMini 0.2,http://www.robocoderepository.com/BotFiles/2655/amk.ChumbaMini_0.2.jar&lt;br /&gt;
amk.ChumbaWumba 0.3,http://www.robocoderepository.com/BotFiles/2646/amk.ChumbaWumba_0.3.jar&lt;br /&gt;
amk.jointstrike.JointStrike 0.2,http://www.robocoderepository.com/BotFiles/2597/amk.jointstrike.JointStrike_0.2.jar&lt;br /&gt;
amk.ShizzleStiX.ShizzleStiX 0.6,http://www.robocoderepository.com/BotFiles/2603/amk.ShizzleStiX.ShizzleStiX_0.6.jar&lt;br /&gt;
amk.superstrike.SuperStrike 0.3,http://www.robocoderepository.com/BotFiles/2600/amk.superstrike.SuperStrike_0.3.jar&lt;br /&gt;
amk.Punbot.Punbot 0.01,http://www.robocoderepository.com/BotFiles/2604/amk.Punbot.Punbot_0.01.jar&lt;br /&gt;
ao.T100 0.9,http://www.robocoderepository.com/BotFiles/3385/ao.T100_0.9.jar&lt;br /&gt;
ap.Frederick 1.1,http://darkcanuck.net/rumble/robots/ap.Frederick_1.1.jar&lt;br /&gt;
apollokidd.ApolloKidd 0.9,http://www.robocoderepository.com/BotFiles/321/apollokidd.ApolloKidd_0.9.jar&lt;br /&gt;
apv.Aspid 1.7,http://www.robocoderepository.com/BotFiles/1412/apv.Aspid_1.7.jar&lt;br /&gt;
apv.AspidReloaded 0.6,http://www.robocoderepository.com/BotFiles/1985/apv.AspidReloaded_0.6.jar&lt;br /&gt;
apv.LauLectrik 1.2,http://www.robocoderepository.com/BotFiles/1300/apv.LauLectrik_1.2.jar&lt;br /&gt;
apv.MicroAspid 1.8,http://www.robocoderepository.com/BotFiles/2519/apv.MicroAspid_1.8.jar&lt;br /&gt;
apv.NanoLauLectrik 1.0,http://www.robocoderepository.com/BotFiles/1399/apv.NanoLauLectrik_1.0.jar&lt;br /&gt;
apv.NanoLauLectrikTheCannibal 1.1,http://www.robocoderepository.com/BotFiles/2147/apv.NanoLauLectrikTheCannibal_1.1.jar&lt;br /&gt;
apv.ScruchiPu 1.0,http://www.robocoderepository.com/BotFiles/1367/apv.ScruchiPu_1.0.jar&lt;br /&gt;
apv.test.Virus 0.6.1,http://www.robocoderepository.com/BotFiles/2645/apv.test.Virus_0.6.1.jar&lt;br /&gt;
apv.TheBrainPi 0.5fix,http://darkcanuck.net/rumble/robots/apv.TheBrainPi_0.5fix.jar&lt;br /&gt;
ar.horizon.Horizon 1.2.2,http://www.robocoderepository.com/BotFiles/3286/ar.horizon.Horizon_1.2.2.jar&lt;br /&gt;
ar.QuantumChromodynamics 1.2.1,http://www.robocoderepository.com/BotFiles/3220/ar.QuantumChromodynamics_1.2.1.jar&lt;br /&gt;
ar.TheoryOfEverything 1.2.1,http://www.robocoderepository.com/BotFiles/3221/ar.TheoryOfEverything_1.2.1.jar&lt;br /&gt;
ara.Shera 0.88,http://www.robocoderepository.com/BotFiles/1050/ara.Shera_0.88.jar&lt;br /&gt;
areb.Union 1.06,http://www.robocoderepository.com/BotFiles/2893/areb.Union_1.06.jar&lt;br /&gt;
arthord.micro.Apoptygma 0.4,http://www.robocoderepository.com/BotFiles/1688/arthord.micro.Apoptygma_0.4.jar&lt;br /&gt;
arthord.micro.Muffin 0.6.1,http://www.robocoderepository.com/BotFiles/1963/arthord.micro.Muffin_0.6.1.jar&lt;br /&gt;
arthord.KostyaTszyu Beta2,http://www.robocoderepository.com/BotFiles/2322/arthord.KostyaTszyu_Beta2.jar&lt;br /&gt;
arthord.MannyPacquiao Delta2,http://scoutery.awardspace.com/arthord.MannyPacquiao_Delta2.jar&lt;br /&gt;
arthord.NanoSatan Mu,http://www.robocoderepository.com/BotFiles/2157/arthord.NanoSatan_Mu.jar&lt;br /&gt;
arthord.NanoSatanMelee Beta,http://www.robocoderepository.com/BotFiles/2088/arthord.NanoSatanMelee_Beta.jar&lt;br /&gt;
ary.micro.Weak 1.2,http://www.robocoderepository.com/BotFiles/3433/ary.micro.Weak_1.2.jar&lt;br /&gt;
ary.mini.Nimi 1.0,http://www.robocoderepository.com/BotFiles/3397/ary.mini.Nimi_1.0.jar&lt;br /&gt;
ary.nano.AceSurf 1.2,http://www.robocoderepository.com/BotFiles/3352/ary.nano.AceSurf_1.2.jar&lt;br /&gt;
ary.nano.ColorNanoP 1.1,http://www.robocoderepository.com/BotFiles/3629/ary.nano.ColorNanoP_1.1.jar&lt;br /&gt;
ary.Crisis 1.0,http://www.robocoderepository.com/BotFiles/3495/ary.Crisis_1.0.jar&lt;br /&gt;
ary.Help 1.0,http://darkcanuck.net/rumble/robots/ary.Help_1.0.jar&lt;br /&gt;
ary.FourWD 1.3d,http://darkcanuck.net/rumble/robots/ary.FourWD_1.3d.jar&lt;br /&gt;
ary.SMG 1.01,http://ary-robocode.110mb.com/ary.SMG_1.01.jar&lt;br /&gt;
as.xbots 1.0,http://darkcanuck.net/rumble/robots/as.xbots_1.0.jar&lt;br /&gt;
asd.Cthulhu 1.2,http://darkcanuck.net/rumble/robots/asd.Cthulhu_1.2.jar&lt;br /&gt;
asm.Statistas 0.1,http://www.robocoderepository.com/BotFiles/1989/asm.Statistas_0.1.jar&lt;br /&gt;
aw.Gilgalad.Gilgalad 0.81,http://www.robocoderepository.com/BotFiles/4077/aw.Gilgalad.Gilgalad_0.81.jar&lt;br /&gt;
awesomeness.Elite 1.0,http://robocoderepository.com/BotFiles/3597/awesomeness.Elite.jar&lt;br /&gt;
awl.Locutus 1.0,3844&lt;br /&gt;
axeBots.HataMoto 3.09,http://www.robocoderepository.com/BotFiles/1655/axeBots.HataMoto_3.09.jar&lt;br /&gt;
axeBots.Musashi 2.18,http://www.robocoderepository.com/BotFiles/1759/axeBots.Musashi_2.18.jar&lt;br /&gt;
axeBots.Okami 1.04,http://www.robocoderepository.com/BotFiles/2016/axeBots.Okami_1.04.jar&lt;br /&gt;
axeBots.SilverSurfer 2.53.33fix,http://rednaxela-robocode.dyndns.org/data/robots/axeBots.SilverSurfer_2.53.33fix.jar&lt;br /&gt;
ayk.WallHugger 1.0,https://sites.google.com/site/khanguyprojects/file-cabinet/ayk.WallHugger_1.0.jar&lt;br /&gt;
baal.nano.N 1.42,http://webpages.charter.net/eleeleth/Robots/baal.nano.N_1.42.jar&lt;br /&gt;
banshee.mini.Nexus6 0.2.0,http://www.robocoderepository.com/BotFiles/3467/banshee.mini.Nexus6_0.2.0.jar&lt;br /&gt;
banshee.micro.Nexus6 0.3.0,http://www.robocoderepository.com/BotFiles/3473/banshee.micro.Nexus6_0.3.0.jar&lt;br /&gt;
bayen.nano.Squirrel 0.2,http://www.freewebs.com/bayen/files/bayen.nano.Squirrel_0.2.jar&lt;br /&gt;
bayen.nut.Squirrel 1.621,http://darkcanuck.net/rumble/robots/bayen.nut.Squirrel_1.621.jar&lt;br /&gt;
bayen.UbaMicro 1.4,http://www.robocoderepository.com/BotFiles/2830/bayen.UbaMicro_1.4.jar&lt;br /&gt;
bayen.UbaRamLT 1.0,http://www.robocoderepository.com/BotFiles/2868/bayen.UbaRamLT_1.0.jar&lt;br /&gt;
bbo.RamboT 0.3,http://www.robocoderepository.com/BotFiles/2210/bbo.RamboT_0.3.jar&lt;br /&gt;
bbo.TheRoof 1.4.3,http://www.robocoderepository.com/BotFiles/2179/bbo.TheRoof_1.4.3.jar&lt;br /&gt;
Bemo.Sweet30 1.6.1,http://www.stg-volleyball.de/images/Bemo.Sweet30_1.6.1.jar&lt;br /&gt;
benhorner.PureAggression 0.2.6,http://www.robocoderepository.com/BotFiles/3421/benhorner.PureAggression_0.2.6.jar&lt;br /&gt;
bh.PencilRain 0.01,http://www.robocoderepository.com/BotFiles/3670/bh.PencilRain-0.01.jar&lt;br /&gt;
bigpete.Stewie 1.0,http://www.robocoderepository.com/BotFiles/2927/bigpete.Stewie_1.0.jar&lt;br /&gt;
bing2.Melody 1.3.1,http://www.ccs.neu.edu/home/bing/robocode/bing2.Melody_1.3.1.jar&lt;br /&gt;
bjl.LoneDragon 0.5,http://www.robocoderepository.com/BotFiles/1929/bjl.LoneDragon_0.5.jar&lt;br /&gt;
bndl.LostLion 1.2,http://www.robocoderepository.com/BotFiles/1033/bndl.LostLion_1.2.jar&lt;br /&gt;
bons.NanoStalker 1.2,http://www.robocoderepository.com/BotFiles/1179/bons.NanoStalker_1.2.jar&lt;br /&gt;
bp.Kuma 1.0,http://www.robocoderepository.com/BotFiles/3238/bp.Kuma_1.0.jar&lt;br /&gt;
braaropolis.Abot 1.0,http://darkcanuck.net/rumble/robots/braaropolis.Abot_1.0.jar&lt;br /&gt;
brainfade.Fallen 0.63,http://www.robocoderepository.com/BotFiles/2250/brainfade.Fallen_0.63.jar&lt;br /&gt;
brainfade.melee.Dusk 0.44,http://www.robocoderepository.com/BotFiles/2518/brainfade.melee.Dusk_0.44.jar&lt;br /&gt;
buba.Archivist 0.1,http://www.robocoderepository.com/BotFiles/3899/buba.Archivist_0.1.jar&lt;br /&gt;
buba.Buba 0.3,http://www.robocoderepository.com/BotFiles/3896/buba.Buba_0.3.jar&lt;br /&gt;
bvh.fnr.Fenrir 0.36l,http://www.robocoderepository.com/BotFiles/1428/bvh.fnr.Fenrir_0.36l.jar&lt;br /&gt;
bvh.frg.Friga 0.112dev,http://darkcanuck.net/rumble/robots/bvh.frg.Friga_0.112dev.jar&lt;br /&gt;
bvh.fry.Freya 0.82,http://darkcanuck.net/rumble/robots/bvh.fry.Freya_0.82.jar&lt;br /&gt;
bvh.hdr.Hodur 0.4,http://www.robocoderepository.com/BotFiles/1954/bvh.hdr.Hodur_0.4.jar&lt;br /&gt;
bvh.loki.Loki 0.5,http://www.robocoderepository.com/BotFiles/885/bvh.loki.Loki_0.5.jar&lt;br /&gt;
bvh.micro.Freya 0.3,http://www.robocoderepository.com/BotFiles/2815/bvh.micro.Freya_0.3.jar&lt;br /&gt;
bvh.micro.Svadilfari 0.2,http://www.robocoderepository.com/BotFiles/1086/bvh.micro.Svadilfari_0.2.jar&lt;br /&gt;
bvh.mini.Fenrir 0.39,http://www.robocoderepository.com/BotFiles/1429/bvh.mini.Fenrir_0.39.jar&lt;br /&gt;
bvh.mini.Freya 0.55,http://darkcanuck.net/rumble/robots/bvh.mini.Freya_0.55.jar&lt;br /&gt;
bvh.mini.Mjolnir 0.3,http://www.robocoderepository.com/BotFiles/2220/bvh.mini.Mjolnir_0.3.jar&lt;br /&gt;
bvh.mini.Wodan 0.50,http://www.robocoderepository.com/BotFiles/2064/bvh.mini.Wodan_0.50.jar&lt;br /&gt;
bvh.tyr.Tyr 1.74,http://www.robocoderepository.com/BotFiles/886/bvh.tyr.Tyr_1.74.jar&lt;br /&gt;
bwbaugh.nano.Tirunculus 0.0.0a,http://files.brianbaugh.com/robocode/bwbaugh.nano.Tirunculus_0.0.0a.jar&lt;br /&gt;
bzdp.BoxCar 2.0,http://www.robocoderepository.com/BotFiles/3703/bzdp.BoxCar_2.0.jar&lt;br /&gt;
bzdp.Pansy 2.1,http://www.robocoderepository.com/BotFiles/3726/bzdp.Pansy_2.1.jar&lt;br /&gt;
caimano.Furia_Ceca 0.22,http://www.robocoderepository.com/BotFiles/1843/caimano.Furia_Ceca_0.22.jar&lt;br /&gt;
can.Pookie 1.1,http://www.robocoderepository.com/BotFiles/4086/can.Pookie-1.1.jar&lt;br /&gt;
cbot.agile.Nibbler 0.2,http://www.robocoderepository.com/BotFiles/1537/cbot.agile.Nibbler_0.2.jar&lt;br /&gt;
cbot.cbot.CBot 0.8,http://www.robocoderepository.com/BotFiles/1375/cbot.cbot.CBot_0.8.jar&lt;br /&gt;
cf.mini.Chiva 1.0,http://www.robocoderepository.com/BotFiles/2331/cf.mini.Chiva_1.0.jar&lt;br /&gt;
cf.OldMan.OldManXP 0.1,http://www.robocoderepository.com/BotFiles/1968/cf.OldMan.OldManXP_0.1.jar&lt;br /&gt;
cf.proto.Shiva 2.2,http://www.robocoderepository.com/BotFiles/2409/cf.proto.Shiva_2.2.jar&lt;br /&gt;
cf.star.Star2 1.23,http://www.robocoderepository.com/BotFiles/2255/cf.star.Star2_1.23.jar&lt;br /&gt;
ch.rhj.rbc.RHJ1 1.0,http://www.robocoderepository.com/BotFiles/1879/ch.rhj.rbc.RHJ1_1.0.jar&lt;br /&gt;
CharlieN.Omega.Omega 1.03,http://www.robocoderepository.com/BotFiles/3503/CharlieN.Omega.Omega_1.03.jar&lt;br /&gt;
chase.c.Wristwatch 1.0,http://file.csdgn.org/robocode/chase.c.Wristwatch_1.0.jar&lt;br /&gt;
chase.pm.Pytko 1.0,http://file.csdgn.org/robocode/chase.pm.Pytko_1.0.jar&lt;br /&gt;
chase.s2.Genesis 1.1,http://file.csdgn.org/robocode/chase.s2.Genesis_1.1.jar&lt;br /&gt;
chickenfuego.UrChicken2 1.0,http://www.robocoderepository.com/BotFiles/3422/chickenfuego.UrChicken2_1.0.jar&lt;br /&gt;
cjk.Merkava 0.1.1,http://www.robocoderepository.com/BotFiles/2637/cjk.Merkava_0.1.1.jar&lt;br /&gt;
cjm.chalk.Chalk 2.6.Be,http://scatterbright.com/robots/cjm.chalk.Chalk_2.6.Be.jar&lt;br /&gt;
cjm.Charo 1.1,http://scatterbright.com/robots/cjm.Charo_1.1.jar&lt;br /&gt;
cjm.Che 1.2,http://www.robocoderepository.com/BotFiles/2703/cjm.Che_1.2.jar&lt;br /&gt;
cjm.Chomsky 1.5,http://scatterbright.com/robots/cjm.Chomsky_1.5.jar&lt;br /&gt;
codemojo.nano.Woot 1.0,http://darkcanuck.net/rumble/robots/codemojo.nano.Woot_1.0.jar&lt;br /&gt;
cs.ags.Scarlet 1.1,http://file.csdgn.org/robocode/cs.ags.Scarlet_1.1.jar&lt;br /&gt;
cs.ExclusionNano 1.1,http://file.csdgn.org/robocode/cs.ExclusionNano_1.1.jar&lt;br /&gt;
cs.Nene MC60k7,http://file.csdgn.org/robocode/cs.Nene_MC60k7.jar&lt;br /&gt;
cs.s2.Seraphim 2.1.4,http://file.csdgn.org/robocode/cs.s2.Seraphim_2.1.4.jar&lt;br /&gt;
csm.NthGeneration 0.04,http://www.robocoderepository.com/BotFiles/1214/csm.NthGeneration_0.04.jar&lt;br /&gt;
csp.Eagle 3.30,http://www.robocoderepository.com/BotFiles/2436/csp.Eagle_3.30.jar&lt;br /&gt;
css.Delitioner 0.11,http://darkcanuck.net/rumble/robots/css.Delitioner_0.11.jar&lt;br /&gt;
cuoq.Kakera 1.0,http://pokepoke.net/cuoq.Kakera_1.0.jar&lt;br /&gt;
cx.BlestPain 1.41,http://www.robocoderepository.com/BotFiles/1671/cx.BlestPain_1.41.jar&lt;br /&gt;
cx.CigaretBH 1.03,http://www.robocoderepository.com/BotFiles/1414/cx.CigaretBH_1.03.jar&lt;br /&gt;
cx.Lacrimas 1.36,http://www.robocoderepository.com/BotFiles/1820/cx.Lacrimas_1.36.jar&lt;br /&gt;
cx.micro.Blur 0.2,http://www.robocoderepository.com/BotFiles/2447/cx.micro.Blur_0.2.jar&lt;br /&gt;
cx.micro.Smoke 0.96,http://www.robocoderepository.com/BotFiles/1037/cx.micro.Smoke_0.96.jar&lt;br /&gt;
cx.micro.Spark 0.6,http://www.robocoderepository.com/BotFiles/1320/cx.micro.Spark_0.6.jar&lt;br /&gt;
cx.mini.BlackSwans 0.60,http://www.robocoderepository.com/BotFiles/1158/cx.mini.BlackSwans_0.60.jar&lt;br /&gt;
cx.mini.Cigaret 1.31,http://www.robocoderepository.com/BotFiles/1152/cx.mini.Cigaret_1.31.jar&lt;br /&gt;
cx.mini.Nimrod 0.55,http://www.robocoderepository.com/BotFiles/1236/cx.mini.Nimrod_0.55.jar&lt;br /&gt;
cx.nano.Smog 2.6,http://www.robocoderepository.com/BotFiles/1036/cx.nano.Smog_2.6.jar&lt;br /&gt;
cx.Princess 1.0,http://www.robocoderepository.com/BotFiles/1343/cx.Princess_1.0.jar&lt;br /&gt;
da.NewBGank 1.4,http://www.robocoderepository.com/BotFiles/3312/da.NewBGank_1.4.jar&lt;br /&gt;
dam.MogBot 2.9,http://www.robocoderepository.com/BotFiles/555/dam.MogBot_2.9.jar&lt;br /&gt;
dans.Cinnamon 1.2,http://www.robocoderepository.com/BotFiles/1976/dans.Cinnamon_1.2.jar&lt;br /&gt;
darkcanuck.Gaff 1.50,http://darkcanuck.net/rumble/robots/darkcanuck.Gaff_1.50.jar&lt;br /&gt;
darkcanuck.Holden 1.13a,http://darkcanuck.net/rumble/robots/darkcanuck.Holden_1.13a.jar&lt;br /&gt;
darkcanuck.Pris 0.92,http://darkcanuck.net/rumble/robots/darkcanuck.Pris_0.92.jar&lt;br /&gt;
davidalves.Firebird 0.25,http://davidalves.net/robocode/robots/davidalves.Firebird_0.25.jar&lt;br /&gt;
davidalves.Phoenix 1.02,http://davidalves.net/robocode/robots/davidalves.Phoenix_1.02.jar&lt;br /&gt;
davidalves.PhoenixOS 1.1,http://davidalves.net/robocode/robots/davidalves.PhoenixOS_1.1.jar&lt;br /&gt;
davidalves.net.Duelist 0.1.6src,http://www.robocoderepository.com/BotFiles/1000/davidalves.net.Duelist_0.1.6src.jar&lt;br /&gt;
davidalves.net.DuelistMicro 1.22,http://www.robocoderepository.com/BotFiles/1144/davidalves.net.DuelistMicro_1.22.jar&lt;br /&gt;
davidalves.net.DuelistMicroMkII 1.1,http://www.robocoderepository.com/BotFiles/1281/davidalves.net.DuelistMicroMkII_1.1.jar&lt;br /&gt;
davidalves.net.DuelistMini 1.1,http://www.robocoderepository.com/BotFiles/1181/davidalves.net.DuelistMini_1.1.jar&lt;br /&gt;
davidalves.net.DuelistNano 1.0,http://www.robocoderepository.com/BotFiles/1272/davidalves.net.DuelistNano_1.0.jar&lt;br /&gt;
dcs.Eater_of_Worlds 1.1.3-A,http://www.robocoderepository.com/BotFiles/2578/dcs.Eater_of_Worlds_1.1.3-A.jar&lt;br /&gt;
dcs.Eater_of_Worlds_Mini 1.0,http://www.robocoderepository.com/BotFiles/2850/dcs.Eater_of_Worlds_Mini_1.0.jar&lt;br /&gt;
dcs.PM.Eater_of_Worlds_PM 1.2,http://www.robocoderepository.com/BotFiles/2856/dcs.PM.Eater_of_Worlds_PM_1.2.jar&lt;br /&gt;
de.erdega.robocode.Polyphemos 0.4,http://darkcanuck.net/rumble/robots/de.erdega.robocode.Polyphemos_0.4.jar&lt;br /&gt;
deewiant.Anomaly 0.2,http://www.iki.fi/~deewiant/files/deewiant.Anomaly_0.2.jar&lt;br /&gt;
deith.Czolgzilla 0.11,http://www.robocoderepository.com/BotFiles/3256/deith.Czolgzilla_0.11.jar&lt;br /&gt;
demetrix.ForceMajeure 0.75,http://ever-rage.narod.ru/robowiki/demetrix.ForceMajeure_0.75.jar&lt;br /&gt;
demetrix.nano.Neutrino 0.27,http://ever-rage.narod.ru/robowiki/demetrix.nano.Neutrino_0.27.jar&lt;br /&gt;
demetrix.nano.SledgeHammer 0.22,http://ever-rage.narod.ru/robowiki/demetrix.nano.SledgeHammer_0.22.jar&lt;br /&gt;
deo.CloudBot 1.3,http://robocoderepository.com/BotFiles/3644/deo.CloudBot_1.3.jar&lt;br /&gt;
deo.FlowerBot 1.0,http://robocoderepository.com/BotFiles/3683/deo.FlowerBot_1.0.jar&lt;br /&gt;
deo.virtual.RainbowBot 1.0,http://robocoderepository.com/BotFiles/3694/deo.virtual.RainbowBot_1.0.jar&lt;br /&gt;
dft.Calliope 5.6,http://www.robocoderepository.com/BotFiles/237/dft.Calliope_5.6.jar&lt;br /&gt;
dft.Cyanide 1.90,http://darkcanuck.net/rumble/robots/dft.Cyanide_1.90.jar&lt;br /&gt;
dft.Cyprus 3.0,http://www.robocoderepository.com/BotFiles/377/dft.Cyprus_3.0.jar&lt;br /&gt;
dft.Freddie 1.32,http://darkcanuck.net/rumble/robots/dft.Freddie_1.32.jar&lt;br /&gt;
dft.Guppy 1.0,http://darkcanuck.net/rumble/robots/dft.Guppy_1.0.jar&lt;br /&gt;
dft.Immortal 1.40,http://darkcanuck.net/rumble/robots/dft.Immortal_1.40.jar&lt;br /&gt;
dft.Krazy 1.5,http://www.robocoderepository.com/BotFiles/2099/dft.Krazy_1.5.jar&lt;br /&gt;
dft.Virgin 1.25,http://www.robocoderepository.com/BotFiles/1447/dft.Virgin_1.25.jar&lt;br /&gt;
dggp.haiku.gpBot_0 1.1,http://www.robocoderepository.com/BotFiles/3154/dggp.haiku.gpBot_0_1.1.jar&lt;br /&gt;
dittman.BlindSquirl Retired,http://home.comcast.net/~kokyunage/robocode/ugluk/dittman.BlindSquirl_Retired.jar&lt;br /&gt;
djc.Aardvark 0.3.6,http://www.robocoderepository.com/BotFiles/652/djc.Aardvark_0.3.6.jar&lt;br /&gt;
djdjdj.NanoSkunk10 1.0,http://davidjoerg.com/robocode/djdjdj.NanoSkunk10_1.0.jar&lt;br /&gt;
dk.stable.Gorgatron 1.1,http://www.robocoderepository.com/BotFiles/2112/dk.stable.Gorgatron_1.1.jar&lt;br /&gt;
dks.MicroDanMK2 1.0,http://darkcanuck.net/rumble/robots/dks.MicroDanMK2_1.0.jar&lt;br /&gt;
DM.Capriite 3.7.2,http://www.robocoderepository.com/BotFiles/2989/DM.Capriite_3.7.2.jar&lt;br /&gt;
DM.Chicken 4.0,http://www.robocoderepository.com/BotFiles/3020/DM.Chicken_4.0.jar&lt;br /&gt;
DM.Mijit .3,http://www.robocoderepository.com/BotFiles/3043/DM.Mijit_.3.jar&lt;br /&gt;
dmp.micro.Aurora 1.41,http://www.robocoderepository.com/BotFiles/853/dmp.micro.Aurora_1.41.jar&lt;br /&gt;
dmp.nano.Eve 3.41,http://www.robocoderepository.com/BotFiles/842/dmp.nano.Eve_3.41.jar&lt;br /&gt;
donjezza.Jezza 1.0,http://www.robocoderepository.com/BotFiles/3385/donjezza.Jezza_1.0.jar&lt;br /&gt;
donjezza.Muncho 1.0,http://www.robocoderepository.com/BotFiles/3384/donjezza.Muncho_1.0.jar&lt;br /&gt;
drd.Dreadknoght 0.9,http://www.robocoderepository.com/BotFiles/3835/drd.Dreadknoght_0.9.jar&lt;br /&gt;
drm.CobraBora 1.12,http://www.robocoderepository.com/BotFiles/1146/drm.CobraBora_1.12.jar&lt;br /&gt;
drm.Magazine 0.39,http://www.robocoderepository.com/BotFiles/989/drm.Magazine_0.39.jar&lt;br /&gt;
ds.OoV4 0.3b,http://www.robocoderepository.com/BotFiles/2851/ds.OoV4_0.3b.jar&lt;br /&gt;
dsw.StaticD 1.0,http://darkcanuck.net/rumble/robots/dsw.StaticD_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3a 1.0,http://darkcanuck.net/rumble/robots/dsx724.VSAB_EP3a_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3_ATR 1.1,http://www.robocoderepository.com/BotFiles/3432/dsx724.VSAB_EP3_ATR_1.1.jar&lt;br /&gt;
DTF.Kludgy 1.2b,http://www.robocoderepository.com/BotFiles/4041/DTF.Kludgy_1.2b.jar&lt;br /&gt;
dukie.Ambassador 1.0,http://www.robocoderepository.com/BotFiles/2845/dukie.Ambassador_1.0.jar&lt;br /&gt;
dummy.micro.HummingBird 2.14,http://www.robocoderepository.com/BotFiles/369/dummy.micro.HummingBird_2.14.jar&lt;br /&gt;
dummy.micro.Sparrow 2.5,http://www.robocoderepository.com/BotFiles/484/dummy.micro.Sparrow_2.5.jar&lt;br /&gt;
dummy.mini.Parakeet 2.40,http://www.robocoderepository.com/BotFiles/400/dummy.mini.Parakeet_2.40.jar&lt;br /&gt;
dvogon.GangBang 1.0,http://www.robocoderepository.com/BotFiles/3193/dvogon.GangBang_1.0.jar&lt;br /&gt;
dy.LevelOne 2.0,http://www.robocoderepository.com/BotFiles/3452/dy.LevelOne_2.0.jar&lt;br /&gt;
dz.Caedo 1.4,http://www.robocoderepository.com/BotFiles/1044/dz.Caedo_1.4.jar&lt;br /&gt;
dz.GalbaMicro 0.11,http://www.robocoderepository.com/BotFiles/2482/dz.GalbaMicro_0.11.jar&lt;br /&gt;
dz.GalbaMini 0.121,http://darkcanuck.net/rumble/robots/dz.GalbaMini_0.121.jar&lt;br /&gt;
dz.MostlyHarmlessNano 2.1,http://www.robocoderepository.com/BotFiles/2166/dz.MostlyHarmlessNano_2.1.jar&lt;br /&gt;
dz.OthoMicro 0.12,http://www.robocoderepository.com/BotFiles/2198/dz.OthoMicro_0.12.jar&lt;br /&gt;
dz.OthoMini 0.15,http://www.robocoderepository.com/BotFiles/2221/dz.OthoMini_0.15.jar&lt;br /&gt;
eat.HumblePieLite 1.0,http://www.robocoderepository.com/BotFiles/1088/eat.HumblePieLite_1.0.jar&lt;br /&gt;
ebo.Sparse 0.02,http://www.4geeks.de/files/ebo.Sparse_0.02.jar&lt;br /&gt;
ebo.Tahoe 1.1.79,http://www.4geeks.de/files/ebo.Tahoe_1.1.79.jar&lt;br /&gt;
EE.LittleBig 1.0,http://www.robocoderepository.com/BotFiles/4009/EE.LittleBig_1.0.jar&lt;br /&gt;
EFD.AdvancedEFD 0.4.5a,http://sites.google.com/site/jannisbeese/robots/EFD.AdvancedEFD_0.4.5a.jar&lt;br /&gt;
el.Attackr 0.1,http://darkcanuck.net/rumble/robots/el.Attackr_0.1.jar&lt;br /&gt;
el.JumpShoot 0.2,http://www.robocoderepository.com/BotFiles/3360/el.JumpShoot_0.2.jar&lt;br /&gt;
el33t.EL33tGangstarr2 2.0,http://www.robocoderepository.com/BotFiles/2069/el33t.EL33tGangstarr2_2.0.jar&lt;br /&gt;
eld.Hmm 1.0,http://darkcanuck.net/rumble/robots/eld.Hmm_1.0.jar&lt;br /&gt;
element.Earth 1.1,http://www.robocoderepository.com/BotFiles/3587/element.Earth_1.1.jar&lt;br /&gt;
elloco.Flower 0.1r1,http://www.robocoderepository.com/BotFiles/3242/elloco.Flower_0.1r1.jar&lt;br /&gt;
elloco.Kabuto 0.2r,http://www.robocoderepository.com/BotFiles/3229/elloco.Kabuto_0.2r.jar&lt;br /&gt;
elvbot.ElverionBot 0.3,http://www.robocoderepository.com/BotFiles/3541/elvbot.ElverionBot_0.3.jar&lt;br /&gt;
emp.Yngwie 1.11,http://www.robocoderepository.com/BotFiles/1928/emp.Yngwie_1.11.jar&lt;br /&gt;
erdnis.Rover 0.3,http://www.free-games-fun.com/erdnis.Rover_0.3.jar&lt;br /&gt;
eskimo.micro.Echo 0.1,http://robocoderepository.com/BotFiles/3969/eskimo.micro.Echo_0.1.jar&lt;br /&gt;
et.Predator 1.8,http://www.robocoderepository.com/BotFiles/668/et.Predator_1.8.jar&lt;br /&gt;
ethdsy.Malacka 2.4,http://www.robocoderepository.com/BotFiles/1159/ethdsy.Malacka_2.4.jar&lt;br /&gt;
evd.X1 0.01,http://www.robocoderepository.com/BotFiles/3503/evd.X1_0.01.jar&lt;br /&gt;
exauge.GateKeeper 1.1.121g,http://www.robocoderepository.com/BotFiles/3928/exauge.GateKeeper_1.1.121g.jar&lt;br /&gt;
exauge.LemonDrop 1.6.130,http://www.robocoderepository.com/BotFiles/3911/exauge.LemonDrop_1.6.130.jar&lt;br /&gt;
exauge.Leopard 1.1.019,http://www.robocoderepository.com/BotFiles/3917/exauge.Leopard_1.1.019.jar&lt;br /&gt;
fala.robocode.FalaRobot 1.0,http://www.robocoderepository.com/BotFiles/3474/fala.robocode.FalaRobot_1.0.jar&lt;br /&gt;
fcr.First 1.0,http://www.robocoderepository.com/BotFiles/3362/fcr.First_1.0.jar&lt;br /&gt;
Fenix.FenixTrack 1.0,http://www.robocoderepository.com/BotFiles/1627/Fenix.FenixTrack_1.0.jar&lt;br /&gt;
florent.FloatingTadpole 1.2.6,http://www.robocoderepository.com/BotFiles/2675/florent.FloatingTadpole_1.2.6.jar&lt;br /&gt;
florent.small.LittleAngel 1.8,http://www.robocoderepository.com/BotFiles/2917/florent.small.LittleAngel_1.8.jar&lt;br /&gt;
florent.test.Toad 0.14t,http://wesley3.free.fr/florent.test.Toad_0.14t.jar&lt;br /&gt;
florent.XSeries.X2 0.17,http://wesley3.free.fr/florent.XSeries.X2_0.17.jar&lt;br /&gt;
fm.claire 1.7,http://www.robocoderepository.com/BotFiles/2251/fm.claire_1.7.jar&lt;br /&gt;
fm.mammillarias 1.3,http://www.robocoderepository.com/BotFiles/2238/fm.mammillarias_1.3.jar&lt;br /&gt;
fnc.bandit.Bandit 5.2.0,http://www.robocoderepository.com/BotFiles/2155/fnc.bandit.Bandit_5.2.0.jar&lt;br /&gt;
fnc.bandit2002.Bandit2002 4.0.2,http://www.robocoderepository.com/BotFiles/2202/fnc.bandit2002.Bandit2002_4.0.2.jar&lt;br /&gt;
frag.FragBot 1.0,http://darkcanuck.net/rumble/robots/frag.FragBot_1.0.jar&lt;br /&gt;
franzor.Lizt 1.3.1,http://rednaxela-robocode.dyndns.org/data/robot_archive/franzor.Lizt_1.3.1.jar&lt;br /&gt;
fromHell.CHCl3 1.4.2,http://fromhell.schreiende-stille.de/Robocode/Java/fromHell.CHCl3_1.4.2.jar&lt;br /&gt;
fullsail.LaxativeTeaTwo 1.0,http://www.robocoderepository.com/BotFiles/3403/fullsail.LaxativeTeaTwo_1.0.jar&lt;br /&gt;
fullsail.TimbotNoPrediction 1.0,http://darkcanuck.net/rumble/robots/fullsail.TimbotNoPrediction_1.0.jar&lt;br /&gt;
fullsail.SweetTea 1.1,http://darkcanuck.net/rumble/robots/fullsail.SweetTea_1.1.jar&lt;br /&gt;
fushi.PvP1.PvP1 2004-02-16,http://www.robocoderepository.com/BotFiles/2023/fushi.PvP1.PvP1_2004-02-16.jar&lt;br /&gt;
fw.Number1 1.0b,http://www.dijitari.com/void/robocode/fw.Number1_1.0b.jar&lt;br /&gt;
gadsky.Gadsky 1.01,http://www.robocoderepository.com/BotFiles/3595/gadsky.Gadsky_1.01.jar&lt;br /&gt;
Gecko.ultimateGeckoBot 1.0,http://www.robocoderepository.com/BotFiles/4039/Gecko.ultimateGeckoBot_1.0.jar&lt;br /&gt;
geep.mini.GPBotA 1.0,http://www.robocoderepository.com/BotFiles/2361/geep.mini.GPBotA_1.0.jar&lt;br /&gt;
geep.mini.GPBotB 1.1,http://www.robocoderepository.com/BotFiles/2363/geep.mini.GPBotB_1.1.jar&lt;br /&gt;
germ.TheMind .2,http://www.robocoderepository.com/BotFiles/2525/germ.TheMind_.2.jar&lt;br /&gt;
gf.Centaur.Centaur 0.6.7,http://www.robocoderepository.com/BotFiles/4066/gf.Centaur.Centaur_0.6.7.jar&lt;br /&gt;
gg.Squaraus 0.6,http://www.robocoderepository.com/BotFiles/1788/gg.Squaraus_0.6.jar&lt;br /&gt;
gg.Wolverine 2.0,http://darkcanuck.net/rumble/robots/gg.Wolverine_2.0.jar&lt;br /&gt;
gh.GresSuffurd 0.3.8,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GresSuffurd_0.3.8.jar&lt;br /&gt;
gh.GrubbmGrb 1.2.4,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GrubbmGrb_1.2.4.jar&lt;br /&gt;
gh.GrypRepetyf 0.13,http://www.robocoderepository.com/BotFiles/2650/gh.GrypRepetyf_0.13.jar&lt;br /&gt;
gh.micro.Grinnik 0.7,http://www.robocoderepository.com/BotFiles/3208/gh.micro.Grinnik_0.7.jar&lt;br /&gt;
gh.micro.GrubbmThree 0.9,http://www.robocoderepository.com/BotFiles/2444/gh.micro.GrubbmThree_0.9.jar&lt;br /&gt;
gh.mini.Gruwel 0.9,http://www.robocoderepository.com/BotFiles/2511/gh.mini.Gruwel_0.9.jar&lt;br /&gt;
gh.nano.Grofvuil 0.2,http://www.robocoderepository.com/BotFiles/2553/gh.nano.Grofvuil_0.2.jar&lt;br /&gt;
gimp.GimpBot 0.1,http://www.robocoderepository.com/BotFiles/2434/gimp.GimpBot_0.1.jar&lt;br /&gt;
gio.RealGioBot 1.0,http://www.robocoderepository.com/BotFiles/2521/gio.RealGioBot_1.0.jar&lt;br /&gt;
gjr.Cephalosporin 0.2,http://www.robocoderepository.com/BotFiles/2240/gjr.Cephalosporin_0.2.jar&lt;br /&gt;
gm.GaetanoA 2.15,http://www.robocoderepository.com/BotFiles/2188/gm.GaetanoA_2.15.jar&lt;br /&gt;
goblin.Bender 2.4,http://www.robocoderepository.com/BotFiles/1871/goblin.Bender_2.4.jar&lt;br /&gt;
grybgoofy.GoofyBot 0.10,http://www.robocoderepository.com/BotFiles/2196/grybgoofy.GoofyBot_0.10.jar&lt;br /&gt;
gu.MicroScoob 1.3,http://www.robocoderepository.com/BotFiles/2086/gu.MicroScoob_1.3.jar&lt;br /&gt;
gwah.GBotMarkIV 1.0,http://www.horula.ca/roborumble/participants/download.php?file=18&lt;br /&gt;
gwah.GerryBotMkII 1.5.1,http://www.horula.ca/roborumble/participants/download.php?file=17&lt;br /&gt;
hamilton.Hamilton 1.0,http://www.robocoderepository.com/BotFiles/1408/hamilton.Hamilton_1.0.jar&lt;br /&gt;
hapiel.Spiral 0.1,http://robocoderepository.com/BotFiles/3997/hapiel.Spiral_0.1.jar&lt;br /&gt;
hirataatsushi.Neo 1.6,http://www.robocoderepository.com/BotFiles/1081/hirataatsushi.Neo_1.6.jar&lt;br /&gt;
hirataatsushi.Trinity 0.003,http://www.robocoderepository.com/BotFiles/1145/hirataatsushi.Trinity_0.003.jar&lt;br /&gt;
homerbots.h1 1.0,http://www.robocoderepository.com/BotFiles/2999/homerbots.h1_1.0.jar&lt;br /&gt;
hp.Athena 0.1,http://www.robocoderepository.com/BotFiles/3415/hp.Athena_0.1.jar&lt;br /&gt;
hvilela.HVilela 0.9,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.jar&lt;br /&gt;
ICS4U1.Patrick_White_Schrodinger 1.1,http://www.robocoderepository.com/BotFiles/4087/ICS4U1.Patrick_White_Schrodinger_1.1.jar&lt;br /&gt;
ins.MobyNano 0.8,http://www.robocoderepository.com/BotFiles/939/ins.MobyNano_0.8.jar&lt;br /&gt;
intruder.PrairieWolf 2.61,http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar&lt;br /&gt;
ivor.prophet.Prophet 0.01,http://www.ivan.php5.sk/ivor.prophet.Prophet_0.01.jar&lt;br /&gt;
is.fon.rs.FonDestroyer3084 1.0,http://www.robocoderepository.com/BotFiles/4047/is.fon.rs.FonDestroyer3084_1.0.jar&lt;br /&gt;
jaara.LambdaBot 1.1,http://www.robocoderepository.com/BotFiles/3514/jaara.LambdaBot_1.1.jar&lt;br /&gt;
jab.avk.ManuelGallegus 0.6,http://darkcanuck.net/rumble/robots/jab.avk.ManuelGallegus_0.6.jar&lt;br /&gt;
jab.DiamondStealer 5,http://darkcanuck.net/rumble/robots/jab.DiamondStealers_5.jar&lt;br /&gt;
jab.micro.Sanguijuela 0.8,http://darkcanuck.net/rumble/robots/jab.micro.Sanguijuela_0.8.jar&lt;br /&gt;
janm.Jammy 1.0,http://www.robocoderepository.com/BotFiles/3543/janm.Jammy_1.0.jar&lt;br /&gt;
jam.micro.RaikoMicro 1.44,http://www.robocoderepository.com/BotFiles/1983/jam.micro.RaikoMicro_1.44.jar&lt;br /&gt;
jam.mini.Raiko 0.43,http://www.robocoderepository.com/BotFiles/1922/jam.mini.Raiko_0.43.jar&lt;br /&gt;
jam.RaikoMX 0.32,http://www.robocoderepository.com/BotFiles/1961/jam.RaikoMX_0.32.jar&lt;br /&gt;
japs.Serenity 1.0,http://www.robocoderepository.com/BotFiles/2217/japs.Serenity_1.0.jar&lt;br /&gt;
japs.Sjonniebot 0.9.1,http://www.robocoderepository.com/BotFiles/2203/japs.Sjonniebot_0.9.1.jar&lt;br /&gt;
jasolo.Sonda 0.55,http://www.robocoderepository.com/BotFiles/1534/jasolo.Sonda_0.55.jar&lt;br /&gt;
jaw.Mouse 0.11,http://www.robocoderepository.com/BotFiles/2472/jaw.Mouse_0.11.jar&lt;br /&gt;
jaw.KarenCain 0.11,http://www.robocoderepository.com/BotFiles/2474/jaw.KarenCain_0.11.jar&lt;br /&gt;
jaybot.adv.bots.JayBot 2.0,http://darkcanuck.net/rumble/robots/jaybot.adv.bots.JayBot_2.0.jar&lt;br /&gt;
jaybot.bots.Oddball 4.0,http://darkcanuck.net/rumble/robots/jaybot.bots.Oddball_4.0.jar&lt;br /&gt;
jbot.Rabbit2 1.1,http://darkcanuck.net/rumble/robots/jbot.Rabbit2_1.1.jar&lt;br /&gt;
jcs.AutoBot 4.2.1,http://www.robocoderepository.com/BotFiles/2616/jcs.AutoBot_4.2.1.jar&lt;br /&gt;
jcs.Decepticon 2.5.3,http://www.robocoderepository.com/BotFiles/2620/jcs.Decepticon_2.5.3.jar&lt;br /&gt;
jcs.Megatron 1.2,http://www.robocoderepository.com/BotFiles/2632/jcs.Megatron_1.2.jar&lt;br /&gt;
jcs.Seth 1.8,http://darkcanuck.net/rumble/robots/jcs.Seth_1.8.jar&lt;br /&gt;
jcw.ArcherOne 1.0,http://darkcanuck.net/rumble/robots/jcw.ArcherOne_1.0.jar&lt;br /&gt;
jekl.DarkHallow .90.9,http://www.robocoderepository.com/BotFiles/2296/jekl.DarkHallow_.90.9.jar&lt;br /&gt;
jekl.Jekyl .70,http://www.robocoderepository.com/BotFiles/1837/jekl.Jekyl_.70.jar&lt;br /&gt;
jekl.mini.BlackPearl .91,http://www.robocoderepository.com/BotFiles/1875/jekl.mini.BlackPearl_.91.jar&lt;br /&gt;
jep.nano.Hawkwing 0.4.1,http://www.robocoderepository.com/BotFiles/1561/jep.nano.Hawkwing_0.4.1.jar&lt;br /&gt;
jep.nano.Hotspur 0.1,http://www.robocoderepository.com/BotFiles/1877/jep.nano.Hotspur_0.1.jar&lt;br /&gt;
jep.Terrible 0.4.1,http://www.robocoderepository.com/BotFiles/1536/jep.Terrible_0.4.1.jar&lt;br /&gt;
jeremyreeder.Vincent 2011.12.09,http://www.robocoderepository.com/BotFiles/3993/jeremyreeder.Vincent_2011.12.09.jar&lt;br /&gt;
jf.Dodger 1.3,http://rednaxela-robocode.dyndns.org/data/robot_archive/jf.Dodger_1.3.jar&lt;br /&gt;
jgap.JGAP12584 1.0,http://www.robocoderepository.com/BotFiles/3383/jgap.JGAP12584_1.0.jar&lt;br /&gt;
jgap.JGAP130166 1.0,http://www.robocoderepository.com/BotFiles/3371/jgap.JGAP130166_1.0.jar&lt;br /&gt;
jgap.JGAP23423 1.0,http://www.robocoderepository.com/BotFiles/3378/jgap.JGAP23423_1.0.jar&lt;br /&gt;
jgap.JGAP6139 1.0,http://www.robocoderepository.com/BotFiles/3372/jgap.JGAP6139_1.0.jar&lt;br /&gt;
jgap.JGAP7247_2 1.0,http://www.robocoderepository.com/BotFiles/3382/jgap.JGAP7247_2_1.0.jar&lt;br /&gt;
jgap.JGAP7958 1.0,http://www.robocoderepository.com/BotFiles/3373/jgap.JGAP7958_1.0.jar&lt;br /&gt;
jje.BagPuss 1.2,http://darkcanuck.net/rumble/robots/jje.BagPuss_1.2.jar&lt;br /&gt;
jk.mega.DrussGT 2.2.2,https://sites.google.com/site/jkflying/jk.mega.DrussGT_2.2.2.jar&lt;br /&gt;
jk.micro.Toorkild 0.2.4b,http://www.minifly.rchomepage.com/robocode/jk.micro.Toorkild_0.2.4b.jar&lt;br /&gt;
jk.mini.CunobelinDC 0.7,http://www.minifly.rchomepage.com/robocode/jk.mini.CunobelinDC_0.7.jar&lt;br /&gt;
jk.precise.Wintermute 0.7,http://www.minifly.rchomepage.com/robocode/jk.precise.Wintermute_0.7.jar&lt;br /&gt;
jmcd.BeoWulf 2.8,http://www.robocoderepository.com/BotFiles/1377/jmcd.BeoWulf_2.8.jar&lt;br /&gt;
joe.ADinosaur 1.0,http://www.robocoderepository.com/BotFiles/2822/joe.ADinosaur_1.0.jar&lt;br /&gt;
josago.Jorgito 0.16,http://www.robocoderepository.com/BotFiles/4000/josago.Jorgito_0.16.jar&lt;br /&gt;
jp.Perpy 16.0,http://www.robocoderepository.com/BotFiles/3001/jp.Perpy_16.0.jar&lt;br /&gt;
jp.SineWall 1.0,http://www.robocoderepository.com/BotFiles/2968/jp.SineWall_1.0.jar&lt;br /&gt;
jrm.Test0 1.0,http://www.robocoderepository.com/BotFiles/3636/jrm.Test0_1.0.jar&lt;br /&gt;
js.PinBall 1.6,http://www.robocoderepository.com/BotFiles/684/js.PinBall_1.6.jar&lt;br /&gt;
jsal.Jsalbot 1.0,http://jeremybubs.googlepages.com/jsal.Jsalbot_1.0.jar&lt;br /&gt;
jt.SpearmintCT Alpha,http://www.robocoderepository.com/BotFiles/2164/jt.SpearmintCT_Alpha.jar&lt;br /&gt;
justin.DemonicRage 3.20,http://sites.google.com/site/justinsitehere/file-cabinet/justin.DemonicRage_3.20.jar&lt;br /&gt;
jw.Booring 1.11,http://www.robocoderepository.com/BotFiles/1250/jw.Booring_1.11.jar&lt;br /&gt;
jwst.DAD.DarkAndDarker 1.1,http://darkcanuck.net/rumble/robots/jwst.DAD.DarkAndDarker_1.1.jar&lt;br /&gt;
kanishk.Fr0z3n 1.1,http://darkcanuck.net/rumble/robots/kanishk.Fr0z3n_1.1.jar&lt;br /&gt;
kano.gamma.KanoGamma 1.8,http://www.robocoderepository.com/BotFiles/1098/kano.gamma.KanoGamma_1.8.jar&lt;br /&gt;
kawam.kmBot9 1.0,http://www.robocoderepository.com/BotFiles/967/kawam.kmBot9_1.0.jar&lt;br /&gt;
kawigi.f.FhqwhgadsMicro 1.0,http://www.robocoderepository.com/BotFiles/1673/kawigi.f.FhqwhgadsMicro_1.0.jar&lt;br /&gt;
kawigi.micro.Shiz 1.1,http://www.robocoderepository.com/BotFiles/2007/kawigi.micro.Shiz_1.1.jar&lt;br /&gt;
kawigi.mini.Coriantumr 1.1,http://www.robocoderepository.com/BotFiles/1988/kawigi.mini.Coriantumr_1.1.jar&lt;br /&gt;
kawigi.mini.Fhqwhgads 1.1,http://www.robocoderepository.com/BotFiles/1604/kawigi.mini.Fhqwhgads_1.1.jar&lt;br /&gt;
kawigi.nano.FunkyChicken 1.1,http://www.robocoderepository.com/BotFiles/1512/kawigi.nano.FunkyChicken_1.1.jar&lt;br /&gt;
kawigi.nano.ThnikkaBot 0.9,http://www.robocoderepository.com/BotFiles/2059/kawigi.nano.ThnikkaBot_0.9.jar&lt;br /&gt;
kawigi.robot.Girl 1.2,http://www.robocoderepository.com/BotFiles/2124/kawigi.robot.Girl_1.2.jar&lt;br /&gt;
kawigi.sbf.Barracuda 1.0,http://www.robocoderepository.com/BotFiles/1535/kawigi.sbf.Barracuda_1.0.jar&lt;br /&gt;
kawigi.sbf.FloodHT 0.9.2,http://www.robocoderepository.com/BotFiles/1552/kawigi.sbf.FloodHT_0.9.2.jar&lt;br /&gt;
kawigi.sbf.FloodMicro 1.5,http://www.robocoderepository.com/BotFiles/1381/kawigi.sbf.FloodMicro_1.5.jar&lt;br /&gt;
kawigi.sbf.FloodMini 1.4,http://www.robocoderepository.com/BotFiles/1462/kawigi.sbf.FloodMini_1.4.jar&lt;br /&gt;
kawigi.sbf.FloodNano 1.2,http://www.robocoderepository.com/BotFiles/1421/kawigi.sbf.FloodNano_1.2.jar&lt;br /&gt;
kawigi.sbf.FloodSonnet 0.9,http://www.robocoderepository.com/BotFiles/1779/kawigi.sbf.FloodSonnet_0.9.jar&lt;br /&gt;
kawigi.sbf.Teancum 1.3,http://www.robocoderepository.com/BotFiles/1470/kawigi.sbf.Teancum_1.3.jar&lt;br /&gt;
kawigi.spare.SpareParts 0.7.6nosnd,http://www.robocoderepository.com/BotFiles/1335/kawigi.spare.SpareParts_0.7.6nosnd.jar&lt;br /&gt;
kc.micro.Needle 0.101,http://www.robocoderepository.com/BotFiles/3379/kc.micro.Needle_0.101.jar&lt;br /&gt;
kc.micro.Thorn 1.252,http://sites.google.com/site/kevcsite/robocode/kc.micro.Thorn_1.252.jar&lt;br /&gt;
kc.micro.WaveShark 0.31,http://www.robocoderepository.com/BotFiles/3822/kc.micro.WaveShark_0.31.jar&lt;br /&gt;
kc.mini.Vyper 0.311,http://darkcanuck.net/rumble/robots/kc.mini.Vyper_0.311.jar&lt;br /&gt;
kc.nano.Splinter 1.2,http://darkcanuck.net/rumble/robots/kc.nano.Splinter_1.2.jar&lt;br /&gt;
kc.serpent.Hydra 0.21,http://darkcanuck.net/rumble/robots/kc.serpent.Hydra_0.21.jar&lt;br /&gt;
kc.serpent.WaveSerpent 2.11,http://sites.google.com/site/kevcsite/robocode/kc.serpent.WaveSerpent_2.11.jar&lt;br /&gt;
kcn.percept.PerceptBot 2.3,http://www.robocoderepository.com/BotFiles/1075/kcn.percept.PerceptBot_2.3.jar&lt;br /&gt;
kcn.unnamed.Unnamed 1.21,http://www.robocoderepository.com/BotFiles/1969/kcn.unnamed.Unnamed_1.21.jar&lt;br /&gt;
kenran.mega.Pantheist 1.1,http://sites.google.com/site/kenranbots/robocode/kenran.mega.Pantheist_1.1.jar&lt;br /&gt;
kid.Gladiator .7.2,http://darkcanuck.net/rumble/robots/kid.Gladiator_.7.2.jar&lt;br /&gt;
kid.Toa .0.5,http://rednaxela-robocode.dyndns.org/data/robot_archive/kid.Toa_.0.5.jar&lt;br /&gt;
KiraNL.Cataris 1.0,http://sandbox-project.nl/robocode/KiraNL.Cataris_1.0.jar&lt;br /&gt;
KiraNL.Chupacabra 0.5,http://sandbox-project.nl/robocode/KiraNL.Chupacabra_0.5.jar&lt;br /&gt;
KiraNL.ChupaLite 0.4,http://sandbox-project.nl/robocode/KiraNL.ChupaLite_0.4.jar&lt;br /&gt;
KiraNL.SpaceKees 0.1,http://sandbox-project.nl/robocode/KiraNL.SpaceKees_0.1.jar&lt;br /&gt;
kinsen.melee.Angsaichmophobia 1.8c,http://sites.google.com/site/dcvqksyb/robocode/kinsen.melee.Angsaichmophobia_1.8c.jar&lt;br /&gt;
kinsen.nano.Hoplomachy 1.6,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Hoplomachy_1.6.jar&lt;br /&gt;
kinsen.nano.Quarrelet 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Quarrelet_1.0.jar&lt;br /&gt;
kinsen.nano.Senticous 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Senticous_1.0.jar&lt;br /&gt;
kjc.etc.Dharok 1.0,http://www.robocoderepository.com/BotFiles/3293/kjc.etc.Dharok_1.0.jar&lt;br /&gt;
kjc.MailManX 2.0,http://www.robocoderepository.com/BotFiles/3288/kjc.MailManX_2.0.jar&lt;br /&gt;
kjc.Karaykan 1.0,http://www.robocoderepository.com/BotFiles/3289/kjc.Karaykan_1.0.jar&lt;br /&gt;
klein.GottesKrieger 1.1,http://www.robocoderepository.com/BotFiles/3258/klein.GottesKrieger_1.1.jar&lt;br /&gt;
Krabb.fe4r.Fe4r 0.4,http://www.robocoderepository.com/BotFiles/2766/Krabb.fe4r.Fe4r_0.4.jar&lt;br /&gt;
Krabb.sliNk.Garm 0.9u,http://designnj.de/roboking/Krabb.sliNk.Garm_0.9u.jar&lt;br /&gt;
Krabb.krabby.Krabby 1.18b,http://darkcanuck.net/rumble/robots/Krabb.krabby.Krabby_1.18b.jar&lt;br /&gt;
Krabb.krabby2.Krabby2 1.9o,http://darkcanuck.net/rumble/robots/Krabb.krabby2.Krabby2_1.9o.jar&lt;br /&gt;
krillr.mini.JointStrike 2.0.0,http://darkcanuck.net/rumble/robots/krillr.mini.JointStrike_2.0.0.jar&lt;br /&gt;
krillr.mega.Psyche 0.0.3,http://darkcanuck.net/rumble/robots/krillr.mega.Psyche_0.0.3.jar&lt;br /&gt;
kronenthaler.Basilisk 1.0,http://www.robocoderepository.com/BotFiles/4051/kronenthaler.Basilisk_1.0.jar&lt;br /&gt;
krzysiek.robbo2.Robbo 1.0.0,http://darkcanuck.net/rumble/robots/krzysiek.robbo2.Robbo_1.0.0.jar&lt;br /&gt;
kurios.DOSexe .9a,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9a.jar&lt;br /&gt;
kvk.HebusLeTroll 0.41,http://www.robocoderepository.com/BotFiles/2125/kvk.HebusLeTroll_0.41.jar&lt;br /&gt;
labg.Cataclysm 2.05,http://www.robocoderepository.com/BotFiles/2399/labg.Cataclysm_2.05.jar&lt;br /&gt;
lancel.Lynx 1.09,http://www.robocoderepository.com/BotFiles/3992/lancel.Lynx_1.09.jar&lt;br /&gt;
lazarecki.mega.PinkerStinker 0.7,http://www.robocoderepository.com/BotFiles/3838/lazarecki.mega.PinkerStinker_0.7.jar&lt;br /&gt;
leb.ShootAnArrow 0.1,http://www.robocoderepository.com/BotFiles/2648/leb.ShootAnArrow_0.1.jar&lt;br /&gt;
lechu.Ala 0.0.4,http://www.robocoderepository.com/BotFiles/3497/lechu.Ala_0.0.4.jar&lt;br /&gt;
lechu.Lechu 1.1,http://www.robocoderepository.com/BotFiles/3480/lechu.Lechu_1.1.jar&lt;br /&gt;
lion.Kresnanano 1.0,http://www.robocoderepository.com/BotFiles/2295/lion.Kresnanano_1.0.jar&lt;br /&gt;
lk.nano.Avesnar 1.1,http://www.robocoderepository.com/BotFiles/1597/lk.nano.Avesnar_1.1.jar&lt;br /&gt;
lorneswork.Predator 1.0,http://www.robocoderepository.com/BotFiles/2609/lorneswork.Predator_1.0.jar&lt;br /&gt;
lrem.Spectre 0.4.4,http://www.robocoderepository.com/BotFiles/2253/lrem.Spectre_0.4.4.jar&lt;br /&gt;
lrem.magic.TormentedAngel Antiquitie,http://maxnet.org.pl/~lrem/lrem.magic.TormentedAngel_Antiquitie.jar&lt;br /&gt;
lrem.micro.MoggFanatic 0.2,http://www.robocoderepository.com/BotFiles/2639/lrem.micro.MoggFanatic_0.2.jar&lt;br /&gt;
lrem.micro.FalseProphet Alpha,http://www.robocoderepository.com/BotFiles/2415/lrem.micro.FalseProphet_Alpha.jar&lt;br /&gt;
lrem.quickhack.QuickHack 1.0,http://www.robocoderepository.com/BotFiles/2555/lrem.quickhack.QuickHack_1.0.jar&lt;br /&gt;
lunchie.Lunchbox 0.93,http://darkcanuck.net/rumble/robots/lunchie.Lunchbox_0.93.jar&lt;br /&gt;
lw.LuthersTest 0.1,http://darkcanuck.net/rumble/robots/lw.LuthersTest_0.1.jar&lt;br /&gt;
lxx.Tomcat 3.29,http://jdevs-robocode.googlecode.com/files/lxx.Tomcat_3.29.jar&lt;br /&gt;
m3thos.Eva00 1.1,http://darkcanuck.net/rumble/robots/m3thos.Eva00_1.1.jar&lt;br /&gt;
m3thos.Eva02 0.7.1,http://darkcanuck.net/rumble/robots/m3thos.Eva02_0.7.1.jar&lt;br /&gt;
m3thos.mini.Eva01 0.5.5,http://darkcanuck.net/rumble/robots/m3thos.mini.Eva01_0.5.5.jar&lt;br /&gt;
ma.is.fon.rs.RobotA 0.01,http://www.robocoderepository.com/BotFiles/4048/ma.is.fon.rs.RobotA_0.01.jar&lt;br /&gt;
madmath.Cow 0.1.1,http://www.robocoderepository.com/BotFiles/3476/madmath.Cow_0.1.1.jar&lt;br /&gt;
marcinek.TopGun 1.3,http://www.robocoderepository.com/BotFiles/3458/marcinek.TopGun_1.3.jar&lt;br /&gt;
marksteam.Phoenix 1.0,http://www.robocoderepository.com/BotFiles/2749/marksteam.Phoenix_1.0.jar&lt;br /&gt;
matt.advanced.Katana 1.0,http://www.robocoderepository.com/BotFiles/2498/matt.advanced.Katana_1.0.jar&lt;br /&gt;
matt.BlueMind 0.8.00,http://www.robocoderepository.com/BotFiles/2685/matt.BlueMind_0.8.00.jar&lt;br /&gt;
matt.UnderDark3 2.4.34,http://www.robocoderepository.com/BotFiles/2485/matt.UnderDark3_2.4.34.jar&lt;br /&gt;
matt.UnderDark4 0.4.00,http://www.robocoderepository.com/BotFiles/2644/matt.UnderDark4_0.4.00.jar&lt;br /&gt;
mbh.Mbh 0.1,http://www.robocoderepository.com/BotFiles/3365/mbh.Mbh_0.1.jar&lt;br /&gt;
mbro.BelajarBot 0.0.3,http://www.robocoderepository.com/BotFiles/2471/mbro.BelajarBot_0.0.3.jar&lt;br /&gt;
mbro.Detektor3 0.1.1,http://www.robocoderepository.com/BotFiles/2478/mbro.Detektor3_0.1.1.jar&lt;br /&gt;
mc.Messapia 0.1.8,http://www.robocoderepository.com/BotFiles/2223/mc.Messapia_0.1.8.jar&lt;br /&gt;
mcb.Audace 1.3,http://www.robocoderepository.com/BotFiles/3424/mcb.Audace_1.3.jar&lt;br /&gt;
McS.Spanky_test 0.1a,http://www.robocoderepository.com/BotFiles/4067/McS.Spanky_test_0.1a.jar&lt;br /&gt;
md.November 1.0,http://www.robocoderepository.com/BotFiles/1004/md.November_1.0.jar&lt;br /&gt;
md.Pasta 1.1,http://www.robocoderepository.com/BotFiles/1014/md.Pasta_1.1.jar&lt;br /&gt;
md.VelociRaptor 1.3,http://www.robocoderepository.com/BotFiles/232/md.VelociRaptor_1.3.jar&lt;br /&gt;
mdouet.BotKicker 2.0,http://www.robocoderepository.com/BotFiles/1478/mdouet.BotKicker_2.0.jar&lt;br /&gt;
metal.small.MCool 1.21,http://www.robocoderepository.com/BotFiles/1698/metal.small.MCool_1.21.jar&lt;br /&gt;
metal.small.dna2.MCoolDNA 1.5,http://www.robocoderepository.com/BotFiles/2354/metal.small.dna2.MCoolDNA_1.5.jar&lt;br /&gt;
microtestbotpack.MicroTestBot 1.0,http://dl.dropbox.com/u/4547352/robocode/microtestbotpack.MicroTestBot_1.0.jar&lt;br /&gt;
mk.Alpha 0.2.1,http://darkcanuck.net/rumble/robots/mk.Alpha_0.2.1.jar&lt;br /&gt;
mladjo.AIR 0.7,http://www.robocoderepository.com/BotFiles/3187/mladjo.AIR_0.7.jar&lt;br /&gt;
mladjo.GnuKlub 0.1,http://darkcanuck.net/rumble/robots/mladjo.GnuKlub_0.1.jar&lt;br /&gt;
mladjo.Grrrrr 0.9,http://www.robocoderepository.com/BotFiles/3189/mladjo.Grrrrr_0.9.jar&lt;br /&gt;
mladjo.iRobot 0.3,http://www.robocoderepository.com/BotFiles/3149/mladjo.iRobot_0.3.jar&lt;br /&gt;
mladjo.Startko 1.0,http://www.robocoderepository.com/BotFiles/3186/mladjo.Startko_1.0.jar&lt;br /&gt;
mld.DustBunny 3.8,http://www.robocoderepository.com/BotFiles/3650/mld.DustBunny_3.8.jar&lt;br /&gt;
mld.Infinity 2.2,http://www.robocoderepository.com/BotFiles/3591/mld.Infinity_2.2.jar&lt;br /&gt;
mld.LittleBlackBook 1.69e,https://sites.google.com/site/dorganrobocode/file-cabinet/mld.LittleBlackBook_1.69e.jar&lt;br /&gt;
mld.Moebius 2.9.3,http://www.robocoderepository.com/BotFiles/3634/mld.Moebius_2.9.3.jar&lt;br /&gt;
mld.Wisdom 1.0,http://www.robocoderepository.com/BotFiles/3640/mld.Wisdom_1.0.jar&lt;br /&gt;
mmb.Roskilde 0.5,http://www.robocoderepository.com/BotFiles/3965/mmb.Roskilde_0.5.jar&lt;br /&gt;
mme.NikeEnhanced 2.0,http://www.robocoderepository.com/BotFiles/2828/mme.NikeEnhanced_2.0.jar&lt;br /&gt;
mn.Combat 2.3.1,http://sites.google.com/site/mnrobocode/robots/mn.Combat_2.3.1.jar&lt;br /&gt;
mnt.AHEB 0.6a,http://www.robocoderepository.com/BotFiles/2417/mnt.AHEB_0.6a.jar&lt;br /&gt;
mnt.SurferBot 0.2.5,http://www.robocoderepository.com/BotFiles/2433/mnt.SurferBot_0.2.5.jar&lt;br /&gt;
morbid.MorbidPriest 1.0,http://www.robocoderepository.com/BotFiles/1758/morbid.MorbidPriest_1.0.jar&lt;br /&gt;
mrm.MightyMoose .2,http://darkcanuck.net/rumble/robots/mrm.MightyMoose_.2.jar&lt;br /&gt;
ms.Ares 0.19,http://www.robocoderepository.com/BotFiles/730/ms.Ares_0.19.jar&lt;br /&gt;
mue.Ascendant 1.2.27,http://mue.sonar-echo.de/robocode/mue.Ascendant_1.2.27.jar&lt;br /&gt;
mue.Hyperion 0.8,http://www.robocoderepository.com/BotFiles/2224/mue.Hyperion_0.8.jar&lt;br /&gt;
muf.CrazyKitten 0.9,http://www.robocoderepository.com/BotFiles/1946/muf.CrazyKitten_0.9.jar&lt;br /&gt;
mwj.A1176183 1.0,http://robocode.rleach.id.au/mwj.A1176183_1.0.jar&lt;br /&gt;
myl.micro.Avipes 1.00,http://www.robocoderepository.com/BotFiles/1347/myl.micro.Avipes_1.00.jar&lt;br /&gt;
myl.micro.NekoNinja 1.30,http://www.robocoderepository.com/BotFiles/944/myl.micro.NekoNinja_1.30.jar&lt;br /&gt;
myl.micro.Predator 1.50,http://www.robocoderepository.com/BotFiles/1097/myl.micro.Predator_1.50.jar&lt;br /&gt;
myl.micro.Troodon 1.10,http://www.robocoderepository.com/BotFiles/1226/myl.micro.Troodon_1.10.jar&lt;br /&gt;
myl.nano.Graviton 1.10,http://www.robocoderepository.com/BotFiles/770/myl.nano.Graviton_1.10.jar&lt;br /&gt;
myl.nano.Kakuru 1.20,http://www.robocoderepository.com/BotFiles/1330/myl.nano.Kakuru_1.20.jar&lt;br /&gt;
myl.nano.KomoriNinja 1.1,http://www.robocoderepository.com/BotFiles/978/myl.nano.KomoriNinja_1.1.jar&lt;br /&gt;
mym.EdgeStalker 1.0,http://www.robocoderepository.com/BotFiles/3956/mym.EdgeStalker_1.0.jar&lt;br /&gt;
mz.Adept 2.65,http://www.robocoderepository.com/BotFiles/2090/mz.Adept_2.65.jar&lt;br /&gt;
mz.AdeptBSB 1.03,http://www.robocoderepository.com/BotFiles/2113/mz.AdeptBSB_1.03.jar&lt;br /&gt;
mz.Movement 1.8,http://www.robocoderepository.com/BotFiles/2145/mz.Movement_1.8.jar&lt;br /&gt;
mz.NanoDeath 2.56,http://www.robocoderepository.com/BotFiles/2010/mz.NanoDeath_2.56.jar&lt;br /&gt;
mz.NanoGod 2.02,http://www.robocoderepository.com/BotFiles/1996/mz.NanoGod_2.02.jar&lt;br /&gt;
nammyung.ModelT 0.23,http://www.robocoderepository.com/BotFiles/969/nammyung.ModelT_0.23.jar&lt;br /&gt;
nanoskank.NanoSkank 1.0,http://darkcanuck.net/rumble/robots/nanoskank.NanoSkank_1.0.jar&lt;br /&gt;
nat.BlackHole 2.0gamma,http://nat.robothai.net/robots/nat.BlackHole_2.0gamma.jar&lt;br /&gt;
nat.micro.NP 1.34,http://nat.robothai.net/robots/nat.micro.NP_1.34.jar&lt;br /&gt;
nat.micro.Reepicheep 0.1a,http://nat.robothai.net/robots/nat.micro.Reepicheep_0.1a.jar&lt;br /&gt;
nat.nano.Ocnirp 1.73,http://nat.robothai.net/robots/nat.nano.Ocnirp_1.73.jar&lt;br /&gt;
nat.nano.OcnirpPM 1.0,http://nat.robothai.net/robots/nat.nano.OcnirpPM_1.0.jar&lt;br /&gt;
nat.nano.OcnirpSNG 1.0b,http://nat.robothai.net/robots/nat.nano.OcnirpSNG_1.0b.jar&lt;br /&gt;
nat.Samekh 0.4,http://nat.robothai.net/robots/nat.Samekh_0.4.jar&lt;br /&gt;
ncj.MoxieBot 1.0,http://www.robocoderepository.com/BotFiles/4003/ncj.MoxieBot_1.0.jar&lt;br /&gt;
ndn.DyslexicMonkey 1.1,http://www.robocoderepository.com/BotFiles/1141/ndn.DyslexicMonkey_1.1.jar&lt;br /&gt;
NDH.GuessFactor 1.0, http://www.robocoderepository.com/BotFiles/3949/NDH.GuessFactor_1.0.jar&lt;br /&gt;
ne.Chimera 1.2,http://www.robocoderepository.com/BotFiles/3276/ne.Chimera_1.2.jar&lt;br /&gt;
nexus.One 1.0,http://darkcanuck.net/rumble/robots/nexus.One_1.0.jar&lt;br /&gt;
nexus.Prototype 1.0,http://darkcanuck.net/rumble/robots/nexus.Prototype_1.0.jar&lt;br /&gt;
nic.Nicator 2.4,http://www.robocoderepository.com/BotFiles/193/nic.Nicator_2.4.jar&lt;br /&gt;
nic.SnippetBot 1.0,http://www.robocoderepository.com/BotFiles/286/nic.SnippetBot_1.0.jar&lt;br /&gt;
nkn.mini.Jskr0 0.1,http://www.robocoderepository.com/BotFiles/3852/nkn.mini.Jskr0_0.1.jar&lt;br /&gt;
NG.LegatusLegionis 1.2,http://www.robocoderepository.com/BotFiles/4026/NG.LegatusLegionis_1.2.jar&lt;br /&gt;
non.mega.NaN 0.1,http://www.robocoderepository.com/BotFiles/1960/non.mega.NaN_0.1.jar&lt;br /&gt;
non.mega.NoName 0.0,http://www.robocoderepository.com/BotFiles/1957/non.mega.NoName_0.0.jar&lt;br /&gt;
Noran.BitchingElk 0.054,http://www.robocoderepository.com/BotFiles/1855/Noran.BitchingElk_0.054.jar&lt;br /&gt;
Noran.RandomTargeting 0.02,http://www.robocoderepository.com/BotFiles/1849/Noran.RandomTargeting_0.02.jar&lt;br /&gt;
nova.Snow 1.0,http://www.robocoderepository.com/BotFiles/3623/nova.Snow_1.0.jar&lt;br /&gt;
ntc.Cannon 1.12test,http://www.robocoderepository.com/BotFiles/3815/ntc.Cannon_1.12test.jar&lt;br /&gt;
ntc.Evader 1.2,http://www.robocoderepository.com/BotFiles/3355/ntc.Evader_1.2.jar&lt;br /&gt;
ntc.Knowledge 1.1,http://www.robocoderepository.com/BotFiles/3354/ntc.Knowledge_1.1.jar&lt;br /&gt;
ntc.Lasers.Lasers 0.9,http://www.robocoderepository.com/BotFiles/3359/ntc.Lasers.Lasers_0.9.jar&lt;br /&gt;
ntc.Plains 0.9,http://www.robocoderepository.com/BotFiles/3381/ntc.Plains_0.9.jar&lt;br /&gt;
ntc.Swim 0.9,http://www.robocoderepository.com/BotFiles/3820/ntc.Swim_0.9.jar&lt;br /&gt;
ntw.Sighup 1.5,http://darkcanuck.net/rumble/robots/ntw.Sighup_1.5.jar&lt;br /&gt;
ntw.Sigsys 1.6,http://darkcanuck.net/rumble/robots/ntw.Sigsys_1.6.jar&lt;br /&gt;
nz.jdc.micro.HedgehogGF 1.3,http://www.robocoderepository.com/BotFiles/3626/nz.jdc.micro.HedgehogGF_1.3.jar&lt;br /&gt;
nz.jdc.micro.HedgehogP 1.2,http://www.robocoderepository.com/BotFiles/3622/nz.jdc.micro.HedgehogP_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophytePattern 1.0,http://www.robocoderepository.com/BotFiles/3578/nz.jdc.nano.NeophytePattern_1.0.jar&lt;br /&gt;
nz.jdc.nano.NeophytePRAL 1.2,http://www.robocoderepository.com/BotFiles/3568/nz.jdc.nano.NeophytePRAL_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophyteSRAL 1.2,http://www.robocoderepository.com/BotFiles/3567/nz.jdc.nano.NeophyteSRAL_1.2.jar&lt;br /&gt;
oa.weak.BotherBot 0.1,http://www.robocoderepository.com/BotFiles/2956/oa.weak.BotherBot_0.1.jar&lt;br /&gt;
oa.weak.FlyMk1 0.1,http://www.robocoderepository.com/BotFiles/2958/oa.weak.FlyMk1_0.1.jar&lt;br /&gt;
ola.Puffin 1.0,http://www.robocoderepository.com/BotFiles/3380/ola.Puffin_1.0.jar&lt;br /&gt;
oog.melee.Capulet 1.1,https://sites.google.com/site/crazybassoon/oog.melee.Capulet_1.1.jar&lt;br /&gt;
oog.melee.Mercutio 1.0,http://www.robocoderepository.com/BotFiles/3848/oog.melee.Mercutio_1.0.jar&lt;br /&gt;
oog.micro.MagicD3 0.41,http://www.robocoderepository.com/BotFiles/3801/oog.micro.MagicD3_0.41.jar&lt;br /&gt;
oog.micro.Maui 1.2,https://sites.google.com/site/crazybassoon/oog.micro.Maui_1.2.jar&lt;br /&gt;
oog.micro.SavantMicro 1.1,https://sites.google.com/site/crazybassoon/oog.micro.SavantMicro_1.1.jar&lt;br /&gt;
oog.mini.AlphaDragon 0.1,http://www.robocoderepository.com/BotFiles/4015/oog.mini.AlphaDragon_0.1.jar&lt;br /&gt;
oog.nano.Caligula 1.15,http://www.robocoderepository.com/BotFiles/4022/oog.nano.Caligula_1.15.jar&lt;br /&gt;
oog.nano.Fuatisha 1.1,http://www.robocoderepository.com/BotFiles/4045/oog.nano.Fuatisha_1.1.jar&lt;br /&gt;
oog.nano.MagicD2 2.4,http://www.robocoderepository.com/BotFiles/3749/oog.nano.MagicD2_2.4.jar&lt;br /&gt;
oog.nano.SavantVS 1.1,http://www.robocoderepository.com/BotFiles/3714/oog.nano.SavantVS_1.1.jar&lt;br /&gt;
oog.nano.SavantWS 0.1,http://www.robocoderepository.com/BotFiles/3709/oog.nano.SavantWS_0.1.jar&lt;br /&gt;
oog.PricklyPear 1.0.6,https://sites.google.com/site/crazybassoon/oog.PricklyPear_1.0.6.jar&lt;br /&gt;
pa.Improved 1.1,http://darkcanuck.net/rumble/robots/pa.Improved_1.1.jar&lt;br /&gt;
pak.JakeTheTestingRobot .1b,http://www.robocoderepository.com/BotFiles/3373/pak.JakeTheTestingRobot_.1b.jar&lt;br /&gt;
pak.Dargon 1.0b,http://www.robocoderepository.com/BotFiles/3388/pak.Dargon_1.0b.jar&lt;br /&gt;
panzer.Panzer 0.2,http://www.robocoderepository.com/BotFiles/4008/panzer.Panzer_0.2.jar&lt;br /&gt;
paolord.TheHulk 1.0,http://www.robocoderepository.com/BotFiles/3595/paolord.TheHulk_1.0.jar&lt;br /&gt;
patson.PatsonTestBot 1.0,http://www.robocoderepository.com/BotFiles/3324/patson.PatsonTestBot_1.0.jar&lt;br /&gt;
paulk.PaulV3 1.7,http://www.robocoderepository.com/BotFiles/3502/paulk.PaulV3_1.7.jar&lt;br /&gt;
pb.Oscillator 1.0,http://www.robocoderepository.com/BotFiles/2070/pb.Oscillator_1.0.jar&lt;br /&gt;
pe.mini.SandboxMini 1.2,http://www.robocoderepository.com/BotFiles/917/pe.mini.SandboxMini_1.2.jar&lt;br /&gt;
pe.minimelee.SandboxMiniMelee 1.1,http://www.robocoderepository.com/BotFiles/934/pe.minimelee.SandboxMiniMelee_1.1.jar&lt;br /&gt;
pe.SandboxDT 3.02,http://www.robocoderepository.com/BotFiles/793/pe.SandboxDT_3.02.jar&lt;br /&gt;
pe.SandboxLump 1.52,http://www.robocoderepository.com/BotFiles/731/pe.SandboxLump_1.52.jar&lt;br /&gt;
pedersen.Hubris 2.4,http://home.comcast.net/~kokyunage/robocode/hubris/pedersen.Hubris_2.4.jar&lt;br /&gt;
pedersen.Ugluk 1.0,http://home.comcast.net/~kokyunage/robocode/ugluk/pedersen.Ugluk_1.0.jar&lt;br /&gt;
pez.clean.Swiffer 0.2.9,http://www.robocoderepository.com/BotFiles/1883/pez.clean.Swiffer_0.2.9.jar&lt;br /&gt;
pez.frankie.Frankie 0.9.6.1,http://www.robocoderepository.com/BotFiles/1565/pez.frankie.Frankie_0.9.6.1.jar&lt;br /&gt;
pez.gloom.GloomyDark 0.9.2,http://www.robocoderepository.com/BotFiles/1741/pez.gloom.GloomyDark_0.9.2.jar&lt;br /&gt;
pez.mako.Mako 1.5,http://www.robocoderepository.com/BotFiles/1317/pez.mako.Mako_1.5.jar&lt;br /&gt;
pez.micro.Aristocles 0.3.7,http://www.robocoderepository.com/BotFiles/1923/pez.micro.Aristocles_0.3.7.jar&lt;br /&gt;
pez.mini.ChironexFleckeri 0.5,http://www.robocoderepository.com/BotFiles/2513/pez.mini.ChironexFleckeri_0.5.jar&lt;br /&gt;
pez.mini.Gouldingi 1.5,http://www.robocoderepository.com/BotFiles/1351/pez.mini.Gouldingi_1.5.jar&lt;br /&gt;
pez.mini.Pugilist 2.4.18,http://darkcanuck.net/rumble/robots/pez.mini.Pugilist_2.4.18.jar&lt;br /&gt;
pez.mini.Tityus 0.9.1,http://www.robocoderepository.com/BotFiles/1657/pez.mini.Tityus_0.9.1.jar&lt;br /&gt;
pez.mini.VertiLeach 0.4.0,http://www.robocoderepository.com/BotFiles/1744/pez.mini.VertiLeach_0.4.0.jar&lt;br /&gt;
pez.nano.Icarus 0.3,http://www.robocoderepository.com/BotFiles/2353/pez.nano.Icarus_0.3.jar&lt;br /&gt;
pez.nano.LittleEvilBrother 0.1,http://www.robocoderepository.com/BotFiles/2056/pez.nano.LittleEvilBrother_0.1.jar&lt;br /&gt;
pez.rumble.Ali 0.4.9,http://www.robocoderepository.com/BotFiles/2416/pez.rumble.Ali_0.4.9.jar&lt;br /&gt;
pez.rumble.CassiusClay 2rho.01b,http://www.dijitari.com/void/robocode/pez.rumble.CassiusClay_2rho.01b.jar&lt;br /&gt;
pfvicm.Sobieski 7.2.3b,http://www.robocoderepository.com/BotFiles/2911/pfvicm.Sobieski_7.2.3b.jar&lt;br /&gt;
ph.micro.Pikeman 0.4.5,http://www.robocoderepository.com/BotFiles/2364/ph.micro.Pikeman_0.4.5.jar&lt;br /&gt;
ph.mini.Archer 0.6.6,http://www.robocoderepository.com/BotFiles/2326/ph.mini.Archer_0.6.6.jar&lt;br /&gt;
ph.musketeer.Musketeer 0.6,http://www.robocoderepository.com/BotFiles/2281/ph.musketeer.Musketeer_0.6.jar&lt;br /&gt;
ph.Thinker 0.2.5,http://www.robocoderepository.com/BotFiles/2336/ph.Thinker_0.2.5.jar&lt;br /&gt;
pi.Dark 10,http://darkcanuck.net/rumble/robots/pi.Dark_10.jar&lt;br /&gt;
pl.Drum 0.1,http://darkcanuck.net/rumble/robots/pl.Drum_0.1.jar&lt;br /&gt;
pl.Patton.GeneralPatton 1.54,http://darkcanuck.net/rumble/robots/pl.Patton.GeneralPatton_1.54.jar&lt;br /&gt;
pla.Memnoch 0.5,http://www.robocoderepository.com/BotFiles/2211/pla.Memnoch_0.5.jar&lt;br /&gt;
PK.Twardy 0.4.2,http://www.robocoderepository.com/BotFiles/3272/PK.Twardy_0.4.2.jar&lt;br /&gt;
pkdeken.Paladin 1.0,http://www.robocoderepository.com/BotFiles/3556/pkdeken.Paladin_1.0.jar&lt;br /&gt;
PkKillers.PkAssassin 1.0,http://www.robocoderepository.com/BotFiles/3485/PkKillers.PkAssassin_1.0.jar&lt;br /&gt;
pmc.SniperBot 1.0,http://darkcanuck.net/rumble/robots/pmc.SniperBot_1.0.jar&lt;br /&gt;
populations.TrainStoopidbot 0.01,http://www.robocoderepository.com/BotFiles/4052/populations.TrainStoopidbot_0.01.jar&lt;br /&gt;
positive.Portia 1.26e,http://sites.google.com/site/robopositive/portia/positive.Portia_1.26e.jar&lt;br /&gt;
povik.nano.Smilee 0.2.1,http://www.robocoderepository.com/BotFiles/3950/povik.nano.Smilee_0.2.1.jar&lt;br /&gt;
projectx.ProjectNano 2.0,http://darkcanuck.net/rumble/robots/projectx.ProjectNano_2.0.jar&lt;br /&gt;
projectx.TestNano 1.0,http://www.robocoderepository.com/BotFiles/3444/projectx.TestNano_1.0.jar&lt;br /&gt;
PSW.Relentless 0.1,http://www.robocoderepository.com/BotFiles/4082/PSW.Relentless_0.1.jar&lt;br /&gt;
pulsar.PulsarMax 0.8.9,http://www.robocoderepository.com/BotFiles/2227/pulsar.PulsarMax_0.8.9.jar&lt;br /&gt;
pulsar.PulsarNano 0.2.4,http://www.robocoderepository.com/BotFiles/2335/pulsar.PulsarNano_0.2.4.jar&lt;br /&gt;
pulsar.Nanis 0.3,http://www.robocoderepository.com/BotFiles/2560/pulsar.Nanis_0.3.jar&lt;br /&gt;
qohnil.blot.BlotBot 3.61,http://www.robocoderepository.com/BotFiles/546/qohnil.blot.BlotBot_3.61.jar&lt;br /&gt;
Queens_teamrobot.UltraRazor 1.0,http://www.robocoderepository.com/BotFiles/2108/Queens_teamrobot.UltraRazor_1.0.jar&lt;br /&gt;
quietus.Invader 0.1,http://robocode.rleach.id.au/quietus.Invader_0.1.jar&lt;br /&gt;
quietus.NarrowRadar 0.1,http://robocode.rleach.id.au/quietus.NarrowRadar_0.1.jar&lt;br /&gt;
radnor.DoctorBob 1.42,http://www.robocoderepository.com/BotFiles/2133/radnor.DoctorBob_1.42.jar&lt;br /&gt;
radnor.RamRod 1.0,http://www.robocoderepository.com/BotFiles/2085/radnor.RamRod_1.0.jar&lt;br /&gt;
rampancy.Durandal 2.2d,http://stanford.edu/~mchunlum/robocode/rampancy.Durandal_2.2d.jar&lt;br /&gt;
rampancy.micro.Epiphron 1.0,http://stanford.edu/~mchunlum/robocode/rampancy.micro.Epiphron_1.0.jar&lt;br /&gt;
rapture.Rapture 2.13,http://www.robocoderepository.com/BotFiles/15/rapture.Rapture_2.13.jar&lt;br /&gt;
ratosh.nano.Debo 1.36,http://www.robocoderepository.com/BotFiles/1702/ratosh.nano.Debo_1.36.jar&lt;br /&gt;
ratosh.Nobo 0.21,http://www.robocoderepository.com/BotFiles/1612/ratosh.Nobo_0.21.jar&lt;br /&gt;
ratosh.Wesco 1.4,http://www.robocoderepository.com/BotFiles/1914/ratosh.Wesco_1.4.jar&lt;br /&gt;
rc.yoda.Yoda 1.0.6c.fix,http://rednaxela-robocode.dyndns.org/data/robots/rc.yoda.Yoda_1.0.6c.fix.jar&lt;br /&gt;
rcb.Vanessa03 0,http://www.robocoderepository.com/BotFiles/1364/rcb.Vanessa03_0.jar&lt;br /&gt;
rcp.Kuramatron 1.0,http://www.robocoderepository.com/BotFiles/3307/rcp.Kuramatron_1.0.jar&lt;br /&gt;
rdt199.Warlord 0.73,http://www.robocoderepository.com/BotFiles/1130/rdt199.Warlord_0.73.jar&lt;br /&gt;
reaper.Reaper 1.1,http://www.robocoderepository.com/BotFiles/3412/reaper.Reaper_1.1.jar&lt;br /&gt;
repositorio.NanoStep 1.0,http://darkcanuck.net/rumble/robots/repositorio.NanoStep_1.0.jar&lt;br /&gt;
rfj.Sunburn 1.1,http://www.robocoderepository.com/BotFiles/1060/rfj.Sunburn_1.1.jar&lt;br /&gt;
rijteam.SmartDodge 1.1,http://www.robocoderepository.com/BotFiles/2959/rijteam.SmartDodge_1.1.jar&lt;br /&gt;
robar.haiku.Spike 1.0,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.haiku.Spike_1.0.jar&lt;br /&gt;
robar.micro.Gladius 1.15,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.micro.Gladius_1.15.jar&lt;br /&gt;
robar.micro.Kirbyi 1.0,http://hunrobar.freeblog.hu/files/myrobots/robar.micro.Kirbyi_1.0.jar&lt;br /&gt;
robar.micro.Topaz 0.25,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.micro.Topaz_0.25.jar&lt;br /&gt;
robar.nano.Assertive 0.3,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.nano.Assertive_0.3.jar&lt;br /&gt;
robar.nano.BlackWidow 1.3,http://www.robocoderepository.com/BotFiles/3574/robar.nano.BlackWidow_1.3.jar&lt;br /&gt;
robar.nano.Breeze 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Breeze_0.3.jar&lt;br /&gt;
robar.nano.Mosquito 1.1,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Mosquito_1.1.jar&lt;br /&gt;
robar.nano.MosquitoPM 1.0,http://www.robocoderepository.com/BotFiles/3559/robar.nano.MosquitoPM_1.0.jar&lt;br /&gt;
robar.nano.Prestige 1.0,http://www.robocoderepository.com/BotFiles/3507/robar.nano.Prestige_1.0.jar&lt;br /&gt;
robar.nano.Pugio 1.49,http://www.robocoderepository.com/BotFiles/3710/robar.nano.Pugio_1.49.jar&lt;br /&gt;
robar.nano.Scytodes 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Scytodes_0.3.jar&lt;br /&gt;
robar.nano.Vespa 0.95,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Vespa_0.95.jar&lt;br /&gt;
robo.PartsBot 1.1,http://darkcanuck.net/rumble/robots/robo.PartsBot_1.1.jar&lt;br /&gt;
RobotMarco.MarcoV 0.1,http://www.robocoderepository.com/BotFiles/3941/RobotMarco.MarcoV_0.1.jar&lt;br /&gt;
rsim.micro.uCatcher 0.1,http://sites.google.com/site/rsimander/robocode/rsim.micro.uCatcher_0.1.jar&lt;br /&gt;
rsim.mini.BulletCatcher 0.4,http://www.robocoderepository.com/BotFiles/3737/rsim.mini.BulletCatcher_0.4.jar&lt;br /&gt;
rsk1.RSK1 4.0,http://www.robocoderepository.com/BotFiles/3284/rsk1.RSK1_4.0.jar&lt;br /&gt;
ruc.nano.Zealot 0.2,http://www.robocoderepository.com/BotFiles/1229/ruc.nano.Zealot_0.2.jar&lt;br /&gt;
rus.vv.Dzhigit 1.1,http://www.robocoderepository.com/BotFiles/4002/rus.vv.Dzhigit1.1.jar&lt;br /&gt;
rus.vv.Snezhok 1.1,http://www.robocoderepository.com/BotFiles/3998/rus.vv.Snezhok1.1.jar&lt;br /&gt;
ry.LightningBug 1.0,http://www.robocoderepository.com/BotFiles/3472/ry.LightningBug_1.0.jar&lt;br /&gt;
ry.VirtualGunExperiment 1.2.0,http://www.robocoderepository.com/BotFiles/3662/ry.VirtualGunExperiment_1.2.0.jar&lt;br /&gt;
ry.Worst 1.0,http://www.robocoderepository.com/BotFiles/3645/ry.Worst_1.0.jar&lt;br /&gt;
rz.Aleph 0.34,http://www.robocoderepository.com/BotFiles/1993/rz.Aleph_0.34.jar&lt;br /&gt;
rz.Apollon 0.23,http://www.robocoderepository.com/BotFiles/2098/rz.Apollon_0.23.jar&lt;br /&gt;
rz.Artist 0.2,http://www.robocoderepository.com/BotFiles/2156/rz.Artist_0.2.jar&lt;br /&gt;
rz.GlowBlow 2.31,http://www.robocoderepository.com/BotFiles/1354/rz.GlowBlow_2.31.jar&lt;br /&gt;
rz.GlowBlowAPM 1.0,http://www.robocoderepository.com/BotFiles/1382/rz.GlowBlowAPM_1.0.jar&lt;br /&gt;
rz.GlowBlowMelee 1.4,http://www.robocoderepository.com/BotFiles/1436/rz.GlowBlowMelee_1.4.jar&lt;br /&gt;
rz.HawkOnFire 0.1,http://www.robocoderepository.com/BotFiles/1575/rz.HawkOnFire_0.1.jar&lt;br /&gt;
rz.SmallDevil 1.502,http://www.robocoderepository.com/BotFiles/1322/rz.SmallDevil_1.502.jar&lt;br /&gt;
sadoner.killer 0.2,http://www.robocoderepository.com/BotFiles/4020/sadoner.killer_0.2.jar&lt;br /&gt;
sam.ChipmunkDuelist 1.0,http://www.robocoderepository.com/BotFiles/3094/sam.ChipmunkDuelist_1.0.jar&lt;br /&gt;
sam.Samspin 1.0,http://www.robocoderepository.com/BotFiles/2823/sam.Samspin_1.0.jar&lt;br /&gt;
sample.Corners 1.0,http://www.robocoderepository.com/BotFiles/1/sample.Corners_1.0.jar&lt;br /&gt;
sample.Crazy 1.0,http://www.robocoderepository.com/BotFiles/2/sample.Crazy_1.0.jar&lt;br /&gt;
sample.Fire 1.0,http://www.robocoderepository.com/BotFiles/3/sample.Fire_1.0.jar&lt;br /&gt;
sample.MyFirstJuniorRobot 1.0,http://sites.google.com/site/mnrobocode/robots/sample.MyFirstJuniorRobot_1.0.jar&lt;br /&gt;
sample.MyFirstRobot 1.0,http://www.robocoderepository.com/BotFiles/4/sample.MyFirstRobot_1.0.jar&lt;br /&gt;
sample.RamFire 1.0,http://www.robocoderepository.com/BotFiles/5/sample.RamFire_1.0.jar&lt;br /&gt;
sample.SittingDuck 1.0,http://www.robocoderepository.com/BotFiles/6/sample.SittingDuck_1.0.jar&lt;br /&gt;
sample.SpinBot 1.0,http://www.robocoderepository.com/BotFiles/7/sample.SpinBot_1.0.jar&lt;br /&gt;
sample.Target 1.0,http://www.robocoderepository.com/BotFiles/8/sample.Target_1.0.jar&lt;br /&gt;
sample.Tracker 1.0,http://www.robocoderepository.com/BotFiles/9/sample.Tracker_1.0.jar&lt;br /&gt;
sample.TrackFire 1.0,http://www.robocoderepository.com/BotFiles/10/sample.TrackFire_1.0.jar&lt;br /&gt;
sample.VelociRobot 1.0,http://sites.google.com/site/mnrobocode/robots/sample.VelociRobot_1.0.jar&lt;br /&gt;
sample.Walls 1.0,http://www.robocoderepository.com/BotFiles/11/sample.Walls_1.0.jar&lt;br /&gt;
sanyi.mikrobi.Roberto 1.0,http://www.robocoderepository.com/BotFiles/3929/sanyi.mikrobi.Roberto_1.0.jar&lt;br /&gt;
sch.Simone 0.3d,http://www.robocoderepository.com/BotFiles/374/sch.Simone_0.3d.jar&lt;br /&gt;
serenity.moonlightBat 1.17,http://www.robocoderepository.com/BotFiles/2877/serenity.moonlightBat_1.17.jar&lt;br /&gt;
serenity.nonSense 1.39,http://www.robocoderepository.com/BotFiles/3586/serenity.nonSense_1.39.jar&lt;br /&gt;
serenity.serenityFire 1.29,http://www.robocoderepository.com/BotFiles/3071/serenity.serenityFire_1.29.jar&lt;br /&gt;
sgp.JollyNinja 3.53,http://www.robocoderepository.com/BotFiles/183/sgp.JollyNinja_3.53.jar&lt;br /&gt;
sgp.MadHatter 4.13,http://www.robocoderepository.com/BotFiles/156/sgp.MadHatter_4.13.jar&lt;br /&gt;
sgp.nano.FurryLeech 1.0,http://www.robocoderepository.com/BotFiles/802/sgp.nano.FurryLeech_1.0.jar&lt;br /&gt;
sgp.ShiningBeetle 1.1,http://www.robocoderepository.com/BotFiles/498/sgp.ShiningBeetle_1.1.jar&lt;br /&gt;
sgp.SleepingGoat 1.1,http://www.robocoderepository.com/BotFiles/500/sgp.SleepingGoat_1.1.jar&lt;br /&gt;
SHAM.WOW 1.4,http://darkcanuck.net/rumble/robots/SHAM.WOW_1.4.jar&lt;br /&gt;
shinh.Entangled 0.3,http://www.robocoderepository.com/BotFiles/1070/shinh.Entangled_0.3.jar&lt;br /&gt;
shrub.Silver v048,http://www.robocoderepository.com/BotFiles/449/shrub.Silver_v048.jar&lt;br /&gt;
shrub.Vapour v159,http://www.robocoderepository.com/BotFiles/2654/shrub.Vapour_v159.jar&lt;br /&gt;
shu.nitro.LENIN .T34,http://www.robocoderepository.com/BotFiles/1956/shu.nitro.LENIN_.T34.jar&lt;br /&gt;
sigterm.Sigterm 1.0,http://darkcanuck.net/rumble/robots/sigterm.Sigterm_1.0.jar&lt;br /&gt;
simonton.beta.LifelongObsession 0.5.1,http://www.robocoderepository.com/BotFiles/3195/simonton.beta.LifelongObsession_0.5.1.jar&lt;br /&gt;
simonton.GFNano_D 3.1b,http://www.robocoderepository.com/BotFiles/3114/simonton.GFNano_D_3.1b.jar&lt;br /&gt;
simonton.nano.WeekendObsession_S 1.7,http://www.robocoderepository.com/BotFiles/3117/simonton.nano.WeekendObsession_S_1.7.jar&lt;br /&gt;
simonton.mega.SniperFrog 1.0.fix2,http://rednaxela-robocode.dyndns.org/data/robots/simonton.mega.SniperFrog_1.0.fix2.jar&lt;br /&gt;
simonton.micro.GFMicro 1.0,http://darkcanuck.net/rumble/robots/simonton.micro.GFMicro_1.0.jar&lt;br /&gt;
simonton.micro.WeeklongObsession 3.4.1,http://darkcanuck.net/rumble/robots/simonton.micro.WeeklongObsession_3.4.1.jar&lt;br /&gt;
simonton.mini.WeeksOnEnd 1.10.4,http://darkcanuck.net/rumble/robots/simonton.mini.WeeksOnEnd_1.10.4.jar&lt;br /&gt;
skm.butterfly 1.0,http://www.robocoderepository.com/BotFiles/3868/sean1.jar&lt;br /&gt;
skm.Ryubot 1.0,http://www.robocoderepository.com/BotFiles/3594/skm.Ryubot_1.0.jar&lt;br /&gt;
skm.PateranBotlock2 1.0,http://www.robocoderepository.com/BotFiles/3591/skm.PateranBotlock2_1.0.jar&lt;br /&gt;
sL300.Mozart life,http://www.robocoderepository.com/BotFiles/1992/sL300.Mozart_life.jar&lt;br /&gt;
sm.Devil 7.3,http://www.robocoderepository.com/BotFiles/1481/sm.Devil_7.3.jar&lt;br /&gt;
sng.arco.Arco 0.0,http://www.robocoderepository.com/BotFiles/3279/sng.arco.Arco_0.0.jar&lt;br /&gt;
sos.SOS 1.0,http://www.robocoderepository.com/BotFiles/3489/sos.SOS_1.0.jar&lt;br /&gt;
spinnercat.CopyKat 1.2.3,http://www.robocoderepository.com/BotFiles/3818/spinnercat.CopyKat_1.2.3.jar&lt;br /&gt;
spinnercat.Limit .01,http://www.robocoderepository.com/BotFiles/3659/spinnercat.Limit_.01.jar&lt;br /&gt;
spinnercat.Kitten 1.6,http://www.robocoderepository.com/BotFiles/3819/spinnercat.Kitten_1.6.jar&lt;br /&gt;
spinnercat.haiku.Refrigerator 1.1,http://www.robocoderepository.com/BotFiles/3688/spinnercat.haiku.Refrigerator_1.1.jar&lt;br /&gt;
spinnercat.mega.Tardis 1.2,http://www.robocoderepository.com/BotFiles/3692/spinnercat.mega.Tardis_1.2.jar&lt;br /&gt;
spinnercat.Robovirus 2.718,http://www.robocoderepository.com/BotFiles/3657/spinnercat.Robovirus_2.718.jar&lt;br /&gt;
sqTank.waveSurfing.LionWWSVMvoid 0.01,http://www.robocoderepository.com/BotFiles/3436/sqTank.waveSurfing.LionWWSVMvoid_0.01.jar&lt;br /&gt;
squidM.SquidmanNano 1.0,http://www.blubex.hm-labs.com/robocode/squidM.SquidmanNano_1.0.jar&lt;br /&gt;
squidM.SurfinUSA 1.0,http://www.blubex.hm-labs.com/robocode/squidM.SurfinUSA_1.0.jar&lt;br /&gt;
starpkg.StarViewerZ 1.26,http://www.robocoderepository.com/BotFiles/1931/starpkg.StarViewerZ_1.26.jar&lt;br /&gt;
staticline.Whiskey 0.5.3,http://www.robocoderepository.com/BotFiles/3972/staticline.Whiskey_0.5.3.jar&lt;br /&gt;
staticline.whiskey.Whiskey 0.6,http://rednaxela-robocode.dyndns.org/data/robot_archive/staticline.whiskey.Whiskey_0.6.jar&lt;br /&gt;
stefw.Tigger 0.0.23,http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar&lt;br /&gt;
stelo.Chord 1.0,http://darkcanuck.net/rumble/robots/stelo.Chord_1.0.jar&lt;br /&gt;
stelo.FretNano 1.1,http://darkcanuck.net/rumble/robots/stelo.FretNano_1.1.jar&lt;br /&gt;
stelo.Lifestealer 1.0,http://darkcanuck.net/rumble/robots/stelo.Lifestealer_1.0.jar&lt;br /&gt;
stelo.MatchupMini 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupMini_1.1.jar&lt;br /&gt;
stelo.MatchupMicro 1.2,http://darkcanuck.net/rumble/robots/stelo.MatchupMicro_1.2.jar&lt;br /&gt;
stelo.MatchupAGF 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupAGF_1.1.jar&lt;br /&gt;
stelo.MatchupWS 1.2c,http://darkcanuck.net/rumble/robots/stelo.MatchupWS_1.2c.jar&lt;br /&gt;
stelo.Mirror 1.1,http://www.robocoderepository.com/BotFiles/3034/stelo.Mirror_1.1.jar&lt;br /&gt;
stelo.MirrorMicro 1.1,http://darkcanuck.net/rumble/robots/stelo.MirrorMicro_1.1.jar&lt;br /&gt;
stelo.MirrorNano 1.4,http://darkcanuck.net/rumble/robots/stelo.MirrorNano_1.4.jar&lt;br /&gt;
stelo.MoojukNano 1.2,http://darkcanuck.net/rumble/robots/stelo.MoojukNano_1.2.jar&lt;br /&gt;
stelo.PastFuture 2.1.9,http://www.robocoderepository.com/BotFiles/3910/stelo.PastFuture_2.1.9.jar&lt;br /&gt;
stelo.PatternRobot 1.0,http://www.robocoderepository.com/BotFiles/2995/stelo.PatternRobot_1.0.jar&lt;br /&gt;
stelo.PianistNano 1.3,http://darkcanuck.net/rumble/robots/stelo.PianistNano_1.3.jar&lt;br /&gt;
stelo.RamTrackSurfer 1.2,http://darkcanuck.net/rumble/robots/stelo.RamTrackSurfer_1.2.jar&lt;br /&gt;
stelo.Randomness 1.1,http://www.robocoderepository.com/BotFiles/3021/stelo.Randomness_1.1.jar&lt;br /&gt;
stelo.Spread 0.3,http://www.robowiki.net/w/images/a/a5/Stelo.Spread_0.3.jar&lt;br /&gt;
stelo.SteloTestNano 1.0,http://darkcanuck.net/rumble/robots/stelo.SteloTestNano_1.0.jar&lt;br /&gt;
stelo.UnfoolableNano 1.0,http://darkcanuck.net/rumble/robots/stelo.UnfoolableNano_1.0.jar&lt;br /&gt;
stelo.UntouchableNano 1.4,http://darkcanuck.net/rumble/robots/stelo.UntouchableNano_1.4.jar&lt;br /&gt;
step.nanoPri 1.0,http://www.robocoderepository.com/BotFiles/2996/step.nanoPri_1.0.jar&lt;br /&gt;
step.NanoBidu 1.0,http://www.robocoderepository.com/BotFiles/3014/step.NanoBidu_1.0.jar&lt;br /&gt;
stf.PanzerGeneral 0.1,http://www.robocoderepository.com/BotFiles/2233/stf.PanzerGeneral_0.1.jar&lt;br /&gt;
stordy.StordyBot 1.0,http://sites.google.com/site/stordyrobo/Home/stordy.StordyBot_1.0.jar&lt;br /&gt;
strider.Festis 1.2.1,http://www.robocoderepository.com/BotFiles/2355/strider.Festis_1.2.1.jar&lt;br /&gt;
strider.Mer 1.1.0,http://www.robocoderepository.com/BotFiles/2360/strider.Mer_1.1.0.jar&lt;br /&gt;
stuff.Vlad 0.1,http://www.robocoderepository.com/BotFiles/3701/stuff.Vlad_0.1.jar&lt;br /&gt;
sul.NanoR2 1.32,http://www.robocoderepository.com/BotFiles/3348/sul.NanoR2_1.32.jar&lt;br /&gt;
sul.Pinkbot 1.1,http://www.robocoderepository.com/BotFiles/3346/sul.Pinkbot_1.1.jar&lt;br /&gt;
sul.Bicephal 1.2,http://www.robocoderepository.com/BotFiles/3343/sul.Bicephal_1.2.jar&lt;br /&gt;
sul.BlueBot 1.0,http://www.robocoderepository.com/BotFiles/3347/sul.BlueBot_1.0.jar&lt;br /&gt;
supersample.SuperBoxBot 1.0,http://www.robocoderepository.com/BotFiles/3994/supersample.SuperBoxBot_1.0.jar&lt;br /&gt;
supersample.SuperCorners 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperCorners_1.0.jar&lt;br /&gt;
SuperSample.SuperCrazy 1.0,http://file.csdgn.org/robocode/SuperSample.SuperCrazy_1.0.jar&lt;br /&gt;
supersample.SuperMercutio 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperMercutio_1.0.jar&lt;br /&gt;
supersample.SuperRamFire 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperRamFire_1.0.jar&lt;br /&gt;
supersample.SuperSpinBot 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperSpinBot_1.0.jar&lt;br /&gt;
supersample.SuperTracker 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperTracker_1.0.jar&lt;br /&gt;
supersample.SuperTrackFire 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperTrackFire_1.0.jar&lt;br /&gt;
supersample.SuperWalls 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperWalls_1.0.jar&lt;br /&gt;
syl.Centipede 0.5,http://www.robocoderepository.com/BotFiles/1254/syl.Centipede_0.5.jar&lt;br /&gt;
synapse.Geomancy 15,http://sites.google.com/site/synapsebots/home/synapse.Geomancy_15.jar?attredirects=0&lt;br /&gt;
synapse.rsim.GeomancyBS 0.11,http://robocoderepository.com/BotFiles/3758/synapse.rsim.GeomancyBS_0.11.jar&lt;br /&gt;
synnalagma.NeuralPremier 0.51,http://www.robocoderepository.com/BotFiles/1557/synnalagma.NeuralPremier_0.51.jar&lt;br /&gt;
synnalagma.test.MiniNeural 1.1,http://www.robocoderepository.com/BotFiles/1754/synnalagma.test.MiniNeural_1.1.jar&lt;br /&gt;
tad.Dalek98 0.98,http://darkcanuck.net/rumble/robots/tad.Dalek98_0.98.jar&lt;br /&gt;
takeBot.SpinSpiral 1.2,http://www.robocoderepository.com/BotFiles/312/takeBot.SpinSpiral_1.2.jar&lt;br /&gt;
takeBot.SpiralCrash 1.0,http://www.robocoderepository.com/BotFiles/1013/takeBot.SpiralCrash_1.0.jar&lt;br /&gt;
takeBot.WeavingWiggle 1.1,http://www.robocoderepository.com/BotFiles/1012/takeBot.WeavingWiggle_1.1.jar&lt;br /&gt;
tango.Recrimpo 2.51,http://www.robocoderepository.com/BotFiles/2015/tango.Recrimpo_2.51.jar&lt;br /&gt;
taqho.taqbot 1.0,http://www.robocoderepository.com/BotFiles/1316/taqho.taqbot_1.0.jar&lt;br /&gt;
tcf.Drifter 29,http://www.7sun.com/robocode/robots/tcf.Drifter_29.jar&lt;br /&gt;
tcf.Repat3 2,http://www.robocoderepository.com/BotFiles/3328/tcf.Repat3_2.jar&lt;br /&gt;
techdude.kombat.FlamingKombat 1.5,http://www.robocoderepository.com/BotFiles/2810/techdude.kombat.FlamingKombat_1.5.jar&lt;br /&gt;
techdude.Class2C.Class2C 0.1,http://www.robocoderepository.com/BotFiles/3078/techdude.Class2C.Class2C_0.1.jar&lt;br /&gt;
test.Podgy 4.0,http://www.robocoderepository.com/BotFiles/3214/test.Podgy_4.0.jar&lt;br /&gt;
test.Fuzzer 1.0.1,http://www.robocoderepository.com/BotFiles/3345/test.Fuzzer_1.0.1.jar&lt;br /&gt;
tex.Longbot 0.4,https://sites.google.com/a/pelt.cc/pelt/home/my-roborcode-project/tex.Longbot_0.4.jar?attredirects=0&amp;amp;d=1&lt;br /&gt;
testantiswapgun.AntiSwap 1.0,http://www.robocode.ilbello.com/asd.AntiSwap_1.0.jar&lt;br /&gt;
throxbot.ThroxBot 0.1,http://www.robocoderepository.com/BotFiles/2548/throxbot.ThroxBot_0.1.jar&lt;br /&gt;
tide.pear.Pear 0.62.1,http://www.robocoderepository.com/BotFiles/2393/tide.pear.Pear_0.62.1.jar&lt;br /&gt;
timmit.micro.TimXJ 0.22,http://www.robocoderepository.com/BotFiles/1683/timmit.micro.TimXJ_0.22.jar&lt;br /&gt;
timmit.mini.TimVA 0.43,http://www.robocoderepository.com/BotFiles/1681/timmit.mini.TimVA_0.43.jar&lt;br /&gt;
timmit.nano.TimCat 0.13,http://www.robocoderepository.com/BotFiles/1600/timmit.nano.TimCat_0.13.jar&lt;br /&gt;
timmit.nano.TimDog 0.33,http://www.robocoderepository.com/BotFiles/1602/timmit.nano.TimDog_0.33.jar&lt;br /&gt;
timmit.TimmiT 0.22,http://www.robocoderepository.com/BotFiles/1468/timmit.TimmiT_0.22.jar&lt;br /&gt;
TJ.Exupery 1.39,http://www.robocoderepository.com/BotFiles/3970/TJ.Exupery1.39.jar&lt;br /&gt;
tjk.deBroglie 0.66,http://robocoderepository.com/BotFiles/3989/tjk.deBroglie_0.66.jar&lt;br /&gt;
tlp.ThreeLeggedPig 1,http://rednaxela-robocode.dyndns.org/data/robot_archive/tlp.ThreeLeggedPig_1.jar&lt;br /&gt;
tm.Yuugao 1.0,http://www.robocoderepository.com/BotFiles/1056/tm.Yuugao_1.0.jar&lt;br /&gt;
tobe.calypso.Calypso 4.1,http://www.robocoderepository.com/BotFiles/784/tobe.calypso.Calypso_4.1.jar&lt;br /&gt;
tobe.Fusion 1.0,http://www.robocoderepository.com/BotFiles/649/tobe.Fusion_1.0.jar&lt;br /&gt;
tobe.mini.Charon 0.9,http://www.robocoderepository.com/BotFiles/836/tobe.mini.Charon_0.9.jar&lt;br /&gt;
tobe.Relativity 3.9,http://www.robocoderepository.com/BotFiles/360/tobe.Relativity_3.9.jar&lt;br /&gt;
tobe.Saturn lambda,http://www.robocoderepository.com/BotFiles/685/tobe.Saturn_lambda.jar&lt;br /&gt;
tornyil.bottomup.BottomUp 1.05,http://www.alpha-consulting.hu/robo/tornyil.bottomup.BottomUp_1.05.jar&lt;br /&gt;
tornyil.Lajcsi2.Lajcsi2sm 1.0,http://www.alpha-consulting.hu/robo/tornyil.Lajcsi2.Lajcsi2sm_1.0.jar&lt;br /&gt;
toz.Gnome 1.1,http://darkcanuck.net/rumble/robots/toz.Gnome_1.1.jar&lt;br /&gt;
trab.Crusader 0.1.7,http://www.stud.ntnu.no/~grashei/bots/trab.Crusader_0.1.7.jar&lt;br /&gt;
trab.nano.AinippeNano 1.3,http://www.stud.ntnu.no/~grashei/bots/trab.nano.AinippeNano_1.3.jar&lt;br /&gt;
tw.Exterminator 1.0,http://www.robocoderepository.com/BotFiles/3607/tw.Exterminator_1.0.jar&lt;br /&gt;
tzu.TheArtOfWar 1.2,http://darkcanuck.net/rumble/robots/tzu.TheArtOfWar_1.2.jar&lt;br /&gt;
ua.kiiv.kosyak.robocode.tn1.Tn1 2.0,http://www.robocoderepository.com/BotFiles/4072/ua.kiiv.kosyak.robocode.tn1.Tn1_2.0.jar&lt;br /&gt;
uccc.Dorito 1.12,http://www.devfluid.com/csc_w/images/e/e9/Uccc.Dorito_1.12.jar&lt;br /&gt;
uccc.MilkyWay 1.01,http://www.devfluid.com/csc_w/images/a/a6/Uccc.MilkyWay_1.01.jar&lt;br /&gt;
uccc.RingDing 1.12,http://www.devfluid.com/csc_w/images/5/5f/Uccc.RingDing_1.12.jar&lt;br /&gt;
uccc.Scrapple 1.0,http://www.devfluid.com/csc_w/images/7/7a/Uccc.Scrapple_1.0.jar&lt;br /&gt;
urdos.URDOS 1.3,http://darkcanuck.net/rumble/robots/urdos.URDOS_1.3.jar&lt;br /&gt;
usa.nano.Nemo 2.0,http://www.robocoderepository.com/BotFiles/2045/usa.nano.Nemo_2.0.jar&lt;br /&gt;
vic.Locke 0.7.5.5,http://www.robocoderepository.com/BotFiles/2115/vic.Locke_0.7.5.5.jar&lt;br /&gt;
vft.Valkyrie 1.0,http://www.robocoderepository.com/BotFiles/3009/vft.Valkyrie_1.0.jar&lt;br /&gt;
vft.Hrist 1.0,http://darkcanuck.net/rumble/robots/vft.Hrist_1.0.jar&lt;br /&gt;
vjik.UnViolation 1.1,http://www.robocoderepository.com/BotFiles/3886/vjik.UnViolation_1.1.jar&lt;br /&gt;
voidious.Diamond 1.6.12,http://www.dijitari.com/void/robocode/voidious.Diamond_1.6.12.jar&lt;br /&gt;
voidious.Dookious 1.573c,http://www.dijitari.com/void/robocode/voidious.Dookious_1.573c.jar&lt;br /&gt;
voidious.micro.Jen 1.11,http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar&lt;br /&gt;
voidious.mini.Komarious 1.88,http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar&lt;br /&gt;
voidious.perceptual.RetroGirl 1.0.0,http://www.dijitari.com/void/robocode/voidious.perceptual.RetroGirl_1.0.0.jar&lt;br /&gt;
vuen.Fractal 0.55,http://www.robocoderepository.com/BotFiles/1579/vuen.Fractal_0.55.jar&lt;br /&gt;
WarfaJibril.Jibril_Warfa_Andromeda 1.11,http://www.robocoderepository.com/BotFiles/4089/WarfaJibril.Jibril_Warfa_Andromeda_1.11.jar&lt;br /&gt;
wcsv.Engineer.Engineer 0.5.4,http://darkcanuck.net/rumble/robots/wcsv.Engineer.Engineer_0.5.4.jar&lt;br /&gt;
wcsv.PowerHouse.PowerHouse 1.7e3,http://darkcanuck.net/rumble/robots/wcsv.PowerHouse.PowerHouse_1.7e3.jar&lt;br /&gt;
wcsv.mega.PowerHouse2 0.2,http://darkcanuck.net/rumble/robots/wcsv.mega.PowerHouse2_0.2.jar&lt;br /&gt;
wcsv.Stampede 1.3.3,http://www.robocoderepository.com/BotFiles/2527/wcsv.Stampede_1.3.3.jar&lt;br /&gt;
wcsv.Stampede2.Stampede2 1.1.0,http://www.robocoderepository.com/BotFiles/2714/wcsv.Stampede2.Stampede2_1.1.0.jar&lt;br /&gt;
WdV.Lesserbee 0.01,http://www.robocoderepository.com/BotFiles/4046/WdV.Lesserbee_0.01.jar&lt;br /&gt;
whind.Constitution 0.7.1,http://www.robocoderepository.com/BotFiles/2812/whind.Constitution_0.7.1.jar&lt;br /&gt;
whind.Strength 0.6.4,http://whindgames.50webs.com/otherstuff/whind.Strength_0.6.4.jar&lt;br /&gt;
whind.StrengthBee 0.6.4,http://whindgames.50webs.com/otherstuff/whind.StrengthBee_0.6.4.jar&lt;br /&gt;
whind.Wisdom 0.5.1,http://www.robocoderepository.com/BotFiles/2742/whind.Wisdom_0.5.1.jar&lt;br /&gt;
wiki.BasicGFSurfer 1.02,http://www.dijitari.com/void/robocode/wiki.BasicGFSurfer_1.02.jar&lt;br /&gt;
wiki.mako.MakoHT 1.2.2.1,http://www.robocoderepository.com/BotFiles/1374/wiki.mako.MakoHT_1.2.2.1.jar&lt;br /&gt;
wiki.mini.BlackDestroyer 0.9.0,http://www.robocoderepository.com/BotFiles/1927/wiki.mini.BlackDestroyer_0.9.0.jar&lt;br /&gt;
wiki.mini.GouldingiHT 1.0,http://www.robocoderepository.com/BotFiles/1383/wiki.mini.GouldingiHT_1.0.jar&lt;br /&gt;
wiki.mini.Griffon 0.1,http://www.robocoderepository.com/BotFiles/1774/wiki.mini.Griffon_0.1.jar&lt;br /&gt;
wiki.mini.Sedan 1.0,http://www.robocoderepository.com/BotFiles/1676/wiki.mini.Sedan_1.0.jar&lt;br /&gt;
wiki.nano.DevilFISH 1.0,http://www.robocoderepository.com/BotFiles/2235/wiki.nano.DevilFISH_1.0.jar&lt;br /&gt;
wiki.nano.RaikoNano 1.1,http://www.robocoderepository.com/BotFiles/2163/wiki.nano.RaikoNano_1.1.jar&lt;br /&gt;
wiki.WaveRammer 1.0,http://www.robocoderepository.com/BotFiles/3505/wiki.WaveRammer_1.0.jar&lt;br /&gt;
wiki.Wolverine 2.1,http://darkcanuck.net/rumble/robots/wiki.Wolverine_2.1.jar&lt;br /&gt;
wilson.Chameleon 0.91,http://www.robocoderepository.com/BotFiles/1608/wilson.Chameleon_0.91.jar&lt;br /&gt;
winamp32.micro.MicroMacro 1.0,http://www.robocoderepository.com/BotFiles/2891/winamp32.micro.MicroMacro_1.0.jar&lt;br /&gt;
wit.Chuliath 1.0,http://www.robocoderepository.com/BotFiles/2306/wit.Chuliath_1.0.jar&lt;br /&gt;
wit.Deep7 2.0,http://www.robocoderepository.com/BotFiles/2313/wit.Deep7_2.0.jar&lt;br /&gt;
xander.cat.XanderCat 9.7.1,http://www.distantvisions.net/robocode/xander.cat.XanderCat_9.7.1.jar&lt;br /&gt;
xandercat.Nissa 1.1,http://www.distantvisions.net/robocode/xandercat.Nissa_1.1.jar&lt;br /&gt;
xandercat.Rowdy 1.3,http://www.distantvisions.net/robocode/xandercat.Rowdy_1.3.jar&lt;br /&gt;
xandercat.Simon 1.0,http://www.distantvisions.net/robocode/xandercat.Simon_1.0.jar&lt;br /&gt;
xiongan.Xiongan 1.1,http://www.robocoderepository.com/BotFiles/3565/xiongan.Xiongan_1.1.jar&lt;br /&gt;
yarghard.Y101 1.0,http://sliwa.ws/RoboCode/yarghard.Y101_1.0.jar&lt;br /&gt;
yk.JahMicro 1.0,http://www.robocoderepository.com/BotFiles/3033/yk.JahMicro_1.0.jar&lt;br /&gt;
yk.JahRoslav 1.1,http://www.robocoderepository.com/BotFiles/3032/yk.JahRoslav_1.1.jar&lt;br /&gt;
zen.Lindada 0.2,http://www.robocoderepository.com/BotFiles/1679/zen.Lindada_0.2.jar&lt;br /&gt;
zeze2.OperatorZeze 1.05,http://www.robocoderepository.com/BotFiles/3330/zeze2.OperatorZeze_1.05.jar&lt;br /&gt;
zch.David 0.21,http://www.robocoderepository.com/BotFiles/3575/zch.David_0.21.jar&lt;br /&gt;
zch.Hirkan 0.11,http://www.robocoderepository.com/BotFiles/1288/zch.Hirkan_0.11.jar&lt;br /&gt;
zh.UnderDog 0.0.2,http://www.robocoderepository.com/BotFiles/3053/zh.UnderDog_0.0.2.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 3.0,http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_3.0.jar&lt;br /&gt;
zyx.micro.Ant 1.1,http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar&lt;br /&gt;
zyx.nano.Ant 1.1,http://www.robocoderepository.com/BotFiles/3493/zyx.nano.Ant_1.1.jar&lt;br /&gt;
zyx.nano.EscherichiaColi 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.EscherichiaColi_1.0.jar&lt;br /&gt;
zyx.nano.RedBull 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.RedBull_1.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''''No chatting on this page. Use the /ParticipantsChat page for that.'''''&lt;br /&gt;
&lt;br /&gt;
'''''Removed because the jarcontent/filename is not correct'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''cberendt.Bot1 0.160''&amp;lt;br&amp;gt;&lt;br /&gt;
''dmsr.MiniR101 0.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''henriquevilela.TieFighter 0.1,3224''&amp;lt;br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_7980_gen7 1.0,3552''br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_13029_gen7 1.0,3553''&amp;lt;br&amp;gt;&lt;br /&gt;
''techdude.Carruthers 1.2.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''uccc.Orbiter 1.0''&amp;lt;br&amp;gt;&lt;br /&gt;
''WhoAmI.WhoAmI 1.00''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Removed until file corruption is resolved:'''''&lt;br /&gt;
&lt;br /&gt;
''cas.CelsoKiller 1.0,3465''&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to almost always giving '0' scores:'''''&lt;br /&gt;
&lt;br /&gt;
''com.syncleus.robocode.Dreadnaught 0.1,3426''&amp;lt;br&amp;gt;&lt;br /&gt;
''lazarecki.PinkerStinker 0.1,http://www.robocoderepository.com/BotFiles/3824/lazarecki.PinkerStinker_0.1.jar''&lt;br /&gt;
&lt;br /&gt;
'''''Removed because it's incorrectly packaged:'''''&lt;br /&gt;
&lt;br /&gt;
''Indesh.Indesh 1.1,http://jakobserlier.250free.com/Indesh.jar''&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to 1.6.1.4 incompatibility'''''&lt;br /&gt;
&lt;br /&gt;
''extra.LightSauce 0.01,http://www.robocoderepository.com/BotFiles/4031/extra.LightSauce_0.01.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''extra.Sauce .01,http://robocoderepository.com/BotFiles/4029/extra.Sauce_.01.jar''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to WontFix issues in Robocode 1.7+:'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Hviela: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2953268&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2953268]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': hvilela.HVilela 0.9.3,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.3.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Barney (Tries to write files without using RobocodeOutputStream. Robocode 1.7 punishes for that more harshly which will give 0 scores)&amp;lt;br&amp;gt;&lt;br /&gt;
'': Homer.Barney 1.0,http://www.robocoderepository.com/BotFiles/1932/Homer.Barney_1.0.jar&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Thread:User_talk:Zyx/Welcome_back_;)/reply&amp;diff=22017</id>
		<title>Thread:User talk:Zyx/Welcome back ;)/reply</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Thread:User_talk:Zyx/Welcome_back_;)/reply&amp;diff=22017"/>
		<updated>2011-09-26T18:10:08Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Reply to Welcome back ;)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi, thanks. Well, it won't be soon, but I'll be adding something soon enough.&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=21728</id>
		<title>RoboRumble/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=21728"/>
		<updated>2011-09-11T22:23:17Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Added YersiniaPestis 1.3.7 back as a participant, want to come back and want to know which version is a better start point.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:RoboRumble/Navigation}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just add your bot name ('''as appears in the Robocode selector after packaging''', so including versionnumber) and the RobocodeRepository id number separated by &amp;quot;,&amp;quot; (there must be no space after the comma).&amp;lt;br&amp;gt; &lt;br /&gt;
Please, make sure your bot is not in the list before adding it, and delete the old version if you are adding a new one.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The list is in '''alphabetical''' order. Add your bot in the right slot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ab.DengerousRoBatra 1.3,http://www.robocoderepository.com/BotFiles/3664/ab.DengerousRoBatra_1.3.jar&lt;br /&gt;
abc.Shadow 3.83c,http://robocode.aclsi.pt/abc.Shadow_3.83c.jar&lt;br /&gt;
abc.tron3.Tron 3.11,http://www.robocoderepository.com/BotFiles/2205/abc.tron3.Tron_3.11.jar&lt;br /&gt;
abc.Tron 2.02,http://www.robocoderepository.com/BotFiles/241/abc.Tron_2.02.jar&lt;br /&gt;
abud.ThirdRobo 1.0,http://www.robocoderepository.com/BotFiles/2479/abud.ThirdRobo_1.0.jar&lt;br /&gt;
ad.last.Bottom 1.0,http://www.robocoderepository.com/BotFiles/1876/ad.last.Bottom_1.0.jar&lt;br /&gt;
ad.Quest 0.10,http://www.robocoderepository.com/BotFiles/1846/ad.Quest_0.10.jar&lt;br /&gt;
adt.Ar1 2.1,http://www.robocoderepository.com/BotFiles/2254/adt.Ar1_2.1.jar&lt;br /&gt;
adt.Ar2 1.0,http://www.robocoderepository.com/BotFiles/2303/adt.Ar2_1.0.jar&lt;br /&gt;
aetos.AetosFirstBot 1.0,http://robocode.aetosgames.com/aetos.AetosFirstBot_1.0.jar&lt;br /&gt;
ag.Gir 0.99,http://www.robocoderepository.com/BotFiles/3065/ag.Gir_0.99.jar&lt;br /&gt;
agd.Mooserwirt2 2.7,http://rednaxela-robocode.dyndns.org/data/robot_archive/agd.Mooserwirt2_2.7.jar&lt;br /&gt;
ags.Glacier 0.2.7,http://rednaxela-robocode.dyndns.org/data/robots/ags.Glacier_0.2.7.jar&lt;br /&gt;
ags.micro.Carpet 1.1,http://rednaxela-robocode.dyndns.org/data/robots/ags.micro.Carpet_1.1.jar&lt;br /&gt;
ags.Midboss 1q.fast,http://rednaxela-robocode.dyndns.org/data/robots/ags.Midboss_1q.fast.jar&lt;br /&gt;
ags.polished.PolishedRuby 1,http://rednaxela-robocode.dyndns.org/data/robots/ags.polished.PolishedRuby_1.jar&lt;br /&gt;
ags.rougedc.RougeDC willow,http://rednaxela-robocode.dyndns.org/data/robots/ags.rougedc.RougeDC_willow.jar&lt;br /&gt;
ahf.Acero 1.0,http://www.robocoderepository.com/BotFiles/2151/ahf.Acero_1.0.jar&lt;br /&gt;
ahf.NanoAndrew .4,http://www.robocoderepository.com/BotFiles/2002/ahf.NanoAndrew_.4.jar&lt;br /&gt;
ahf.r2d2.R2d2 0.86,http://www.robocoderepository.com/BotFiles/2035/ahf.r2d2.R2d2_0.86.jar&lt;br /&gt;
ahr.ice.Ice 1.0,http://robocoderepository.com/BotFiles/3966/ahr.ice.Ice_1.0.jar&lt;br /&gt;
AIR.iRobot 1.0,http://www.robocoderepository.com/BotFiles/3205/AIR.iRobot_1.0.jar&lt;br /&gt;
ak.Fermat 2.0,http://www.robocoderepository.com/BotFiles/799/ak.Fermat_2.0.jar&lt;br /&gt;
alex.Diabolo5 1.1,http://darkcanuck.net/rumble/robots/alex.Diabolo5_1.1.jar&lt;br /&gt;
alk.lap.LoudAndProud 2.23,http://www.robocoderepository.com/BotFiles/3601/alk.lap.LoudAndProud_2.23.jar&lt;br /&gt;
am.Miedzix 3.0,http://darkcanuck.net/rumble/robots/am.Miedzix_3.0.jar&lt;br /&gt;
amarok.Rookie 1.1,http://www.robocoderepository.com/BotFiles/422/amarok.Rookie_1.1.jar&lt;br /&gt;
amk.ChumbaMini 0.2,http://www.robocoderepository.com/BotFiles/2655/amk.ChumbaMini_0.2.jar&lt;br /&gt;
amk.ChumbaWumba 0.3,http://www.robocoderepository.com/BotFiles/2646/amk.ChumbaWumba_0.3.jar&lt;br /&gt;
amk.jointstrike.JointStrike 0.2,http://www.robocoderepository.com/BotFiles/2597/amk.jointstrike.JointStrike_0.2.jar&lt;br /&gt;
amk.ShizzleStiX.ShizzleStiX 0.6,http://www.robocoderepository.com/BotFiles/2603/amk.ShizzleStiX.ShizzleStiX_0.6.jar&lt;br /&gt;
amk.superstrike.SuperStrike 0.3,http://www.robocoderepository.com/BotFiles/2600/amk.superstrike.SuperStrike_0.3.jar&lt;br /&gt;
amk.Punbot.Punbot 0.01,http://www.robocoderepository.com/BotFiles/2604/amk.Punbot.Punbot_0.01.jar&lt;br /&gt;
ao.T100 0.9,http://www.robocoderepository.com/BotFiles/3385/ao.T100_0.9.jar&lt;br /&gt;
ap.Frederick 1.1,http://darkcanuck.net/rumble/robots/ap.Frederick_1.1.jar&lt;br /&gt;
apollokidd.ApolloKidd 0.9,http://www.robocoderepository.com/BotFiles/321/apollokidd.ApolloKidd_0.9.jar&lt;br /&gt;
apv.Aspid 1.7,http://www.robocoderepository.com/BotFiles/1412/apv.Aspid_1.7.jar&lt;br /&gt;
apv.AspidReloaded 0.6,http://www.robocoderepository.com/BotFiles/1985/apv.AspidReloaded_0.6.jar&lt;br /&gt;
apv.LauLectrik 1.2,http://www.robocoderepository.com/BotFiles/1300/apv.LauLectrik_1.2.jar&lt;br /&gt;
apv.MicroAspid 1.8,http://www.robocoderepository.com/BotFiles/2519/apv.MicroAspid_1.8.jar&lt;br /&gt;
apv.NanoLauLectrik 1.0,http://www.robocoderepository.com/BotFiles/1399/apv.NanoLauLectrik_1.0.jar&lt;br /&gt;
apv.NanoLauLectrikTheCannibal 1.1,http://www.robocoderepository.com/BotFiles/2147/apv.NanoLauLectrikTheCannibal_1.1.jar&lt;br /&gt;
apv.ScruchiPu 1.0,http://www.robocoderepository.com/BotFiles/1367/apv.ScruchiPu_1.0.jar&lt;br /&gt;
apv.test.Virus 0.6.1,http://www.robocoderepository.com/BotFiles/2645/apv.test.Virus_0.6.1.jar&lt;br /&gt;
apv.TheBrainPi 0.5fix,http://darkcanuck.net/rumble/robots/apv.TheBrainPi_0.5fix.jar&lt;br /&gt;
ar.horizon.Horizon 1.2.2,http://www.robocoderepository.com/BotFiles/3286/ar.horizon.Horizon_1.2.2.jar&lt;br /&gt;
ar.QuantumChromodynamics 1.2.1,http://www.robocoderepository.com/BotFiles/3220/ar.QuantumChromodynamics_1.2.1.jar&lt;br /&gt;
ar.TheoryOfEverything 1.2.1,http://www.robocoderepository.com/BotFiles/3221/ar.TheoryOfEverything_1.2.1.jar&lt;br /&gt;
ara.Shera 0.88,http://www.robocoderepository.com/BotFiles/1050/ara.Shera_0.88.jar&lt;br /&gt;
areb.Union 1.06,http://www.robocoderepository.com/BotFiles/2893/areb.Union_1.06.jar&lt;br /&gt;
arthord.micro.Apoptygma 0.4,http://www.robocoderepository.com/BotFiles/1688/arthord.micro.Apoptygma_0.4.jar&lt;br /&gt;
arthord.micro.Muffin 0.6.1,http://www.robocoderepository.com/BotFiles/1963/arthord.micro.Muffin_0.6.1.jar&lt;br /&gt;
arthord.KostyaTszyu Beta2,http://www.robocoderepository.com/BotFiles/2322/arthord.KostyaTszyu_Beta2.jar&lt;br /&gt;
arthord.MannyPacquiao Delta2,http://scoutery.awardspace.com/arthord.MannyPacquiao_Delta2.jar&lt;br /&gt;
arthord.NanoSatan Mu,http://www.robocoderepository.com/BotFiles/2157/arthord.NanoSatan_Mu.jar&lt;br /&gt;
arthord.NanoSatanMelee Beta,http://www.robocoderepository.com/BotFiles/2088/arthord.NanoSatanMelee_Beta.jar&lt;br /&gt;
ary.micro.Weak 1.2,http://www.robocoderepository.com/BotFiles/3433/ary.micro.Weak_1.2.jar&lt;br /&gt;
ary.mini.Nimi 1.0,http://www.robocoderepository.com/BotFiles/3397/ary.mini.Nimi_1.0.jar&lt;br /&gt;
ary.nano.AceSurf 1.2,http://www.robocoderepository.com/BotFiles/3352/ary.nano.AceSurf_1.2.jar&lt;br /&gt;
ary.nano.ColorNanoP 1.1,http://www.robocoderepository.com/BotFiles/3629/ary.nano.ColorNanoP_1.1.jar&lt;br /&gt;
ary.Crisis 1.0,http://www.robocoderepository.com/BotFiles/3495/ary.Crisis_1.0.jar&lt;br /&gt;
ary.Help 1.0,http://darkcanuck.net/rumble/robots/ary.Help_1.0.jar&lt;br /&gt;
ary.FourWD 1.3d,http://darkcanuck.net/rumble/robots/ary.FourWD_1.3d.jar&lt;br /&gt;
ary.SMG 1.01,http://ary-robocode.110mb.com/ary.SMG_1.01.jar&lt;br /&gt;
as.xbots 1.0,http://darkcanuck.net/rumble/robots/as.xbots_1.0.jar&lt;br /&gt;
asd.Cthulhu 1.2,http://darkcanuck.net/rumble/robots/asd.Cthulhu_1.2.jar&lt;br /&gt;
asm.Statistas 0.1,http://www.robocoderepository.com/BotFiles/1989/asm.Statistas_0.1.jar&lt;br /&gt;
aw.Gilgalad.Gilgalad 0.81,http://www.robocoderepository.com/BotFiles/4077/aw.Gilgalad.Gilgalad_0.81.jar&lt;br /&gt;
awesomeness.Elite 1.0,http://robocoderepository.com/BotFiles/3597/awesomeness.Elite.jar&lt;br /&gt;
awl.Locutus 1.0,3844&lt;br /&gt;
axeBots.HataMoto 3.09,http://www.robocoderepository.com/BotFiles/1655/axeBots.HataMoto_3.09.jar&lt;br /&gt;
axeBots.Musashi 2.18,http://www.robocoderepository.com/BotFiles/1759/axeBots.Musashi_2.18.jar&lt;br /&gt;
axeBots.Okami 1.04,http://www.robocoderepository.com/BotFiles/2016/axeBots.Okami_1.04.jar&lt;br /&gt;
axeBots.SilverSurfer 2.53.33fix,http://rednaxela-robocode.dyndns.org/data/robots/axeBots.SilverSurfer_2.53.33fix.jar&lt;br /&gt;
ayk.WallHugger 1.0,https://sites.google.com/site/khanguyprojects/file-cabinet/ayk.WallHugger_1.0.jar&lt;br /&gt;
baal.nano.N 1.42,http://webpages.charter.net/eleeleth/Robots/baal.nano.N_1.42.jar&lt;br /&gt;
banshee.mini.Nexus6 0.2.0,http://www.robocoderepository.com/BotFiles/3467/banshee.mini.Nexus6_0.2.0.jar&lt;br /&gt;
banshee.micro.Nexus6 0.3.0,http://www.robocoderepository.com/BotFiles/3473/banshee.micro.Nexus6_0.3.0.jar&lt;br /&gt;
bayen.nano.Squirrel 0.2,http://www.freewebs.com/bayen/files/bayen.nano.Squirrel_0.2.jar&lt;br /&gt;
bayen.nut.Squirrel 1.621,http://darkcanuck.net/rumble/robots/bayen.nut.Squirrel_1.621.jar&lt;br /&gt;
bayen.UbaMicro 1.4,http://www.robocoderepository.com/BotFiles/2830/bayen.UbaMicro_1.4.jar&lt;br /&gt;
bayen.UbaRamLT 1.0,http://www.robocoderepository.com/BotFiles/2868/bayen.UbaRamLT_1.0.jar&lt;br /&gt;
bbo.RamboT 0.3,http://www.robocoderepository.com/BotFiles/2210/bbo.RamboT_0.3.jar&lt;br /&gt;
bbo.TheRoof 1.4.3,http://www.robocoderepository.com/BotFiles/2179/bbo.TheRoof_1.4.3.jar&lt;br /&gt;
Bemo.Sweet30 1.6.1,http://www.stg-volleyball.de/images/Bemo.Sweet30_1.6.1.jar&lt;br /&gt;
benhorner.PureAggression 0.2.6,http://www.robocoderepository.com/BotFiles/3421/benhorner.PureAggression_0.2.6.jar&lt;br /&gt;
bh.PencilRain 0.01,http://www.robocoderepository.com/BotFiles/3670/bh.PencilRain-0.01.jar&lt;br /&gt;
bigpete.Stewie 1.0,http://www.robocoderepository.com/BotFiles/2927/bigpete.Stewie_1.0.jar&lt;br /&gt;
bing2.Melody 1.3.1,http://www.ccs.neu.edu/home/bing/robocode/bing2.Melody_1.3.1.jar&lt;br /&gt;
bjl.LoneDragon 0.5,http://www.robocoderepository.com/BotFiles/1929/bjl.LoneDragon_0.5.jar&lt;br /&gt;
bndl.LostLion 1.2,http://www.robocoderepository.com/BotFiles/1033/bndl.LostLion_1.2.jar&lt;br /&gt;
bons.NanoStalker 1.2,http://www.robocoderepository.com/BotFiles/1179/bons.NanoStalker_1.2.jar&lt;br /&gt;
bp.Kuma 1.0,http://www.robocoderepository.com/BotFiles/3238/bp.Kuma_1.0.jar&lt;br /&gt;
braaropolis.Abot 1.0,http://darkcanuck.net/rumble/robots/braaropolis.Abot_1.0.jar&lt;br /&gt;
brainfade.Fallen 0.63,http://www.robocoderepository.com/BotFiles/2250/brainfade.Fallen_0.63.jar&lt;br /&gt;
brainfade.melee.Dusk 0.44,http://www.robocoderepository.com/BotFiles/2518/brainfade.melee.Dusk_0.44.jar&lt;br /&gt;
buba.Archivist 0.1,http://www.robocoderepository.com/BotFiles/3899/buba.Archivist_0.1.jar&lt;br /&gt;
buba.Buba 0.3,http://www.robocoderepository.com/BotFiles/3896/buba.Buba_0.3.jar&lt;br /&gt;
bvh.fnr.Fenrir 0.36l,http://www.robocoderepository.com/BotFiles/1428/bvh.fnr.Fenrir_0.36l.jar&lt;br /&gt;
bvh.frg.Friga 0.112dev,http://darkcanuck.net/rumble/robots/bvh.frg.Friga_0.112dev.jar&lt;br /&gt;
bvh.fry.Freya 0.82,http://darkcanuck.net/rumble/robots/bvh.fry.Freya_0.82.jar&lt;br /&gt;
bvh.hdr.Hodur 0.4,http://www.robocoderepository.com/BotFiles/1954/bvh.hdr.Hodur_0.4.jar&lt;br /&gt;
bvh.loki.Loki 0.5,http://www.robocoderepository.com/BotFiles/885/bvh.loki.Loki_0.5.jar&lt;br /&gt;
bvh.micro.Freya 0.3,http://www.robocoderepository.com/BotFiles/2815/bvh.micro.Freya_0.3.jar&lt;br /&gt;
bvh.micro.Svadilfari 0.2,http://www.robocoderepository.com/BotFiles/1086/bvh.micro.Svadilfari_0.2.jar&lt;br /&gt;
bvh.mini.Fenrir 0.39,http://www.robocoderepository.com/BotFiles/1429/bvh.mini.Fenrir_0.39.jar&lt;br /&gt;
bvh.mini.Freya 0.55,http://darkcanuck.net/rumble/robots/bvh.mini.Freya_0.55.jar&lt;br /&gt;
bvh.mini.Mjolnir 0.3,http://www.robocoderepository.com/BotFiles/2220/bvh.mini.Mjolnir_0.3.jar&lt;br /&gt;
bvh.mini.Wodan 0.50,http://www.robocoderepository.com/BotFiles/2064/bvh.mini.Wodan_0.50.jar&lt;br /&gt;
bvh.tyr.Tyr 1.74,http://www.robocoderepository.com/BotFiles/886/bvh.tyr.Tyr_1.74.jar&lt;br /&gt;
bwbaugh.nano.Tirunculus 0.0.0a,http://files.brianbaugh.com/robocode/bwbaugh.nano.Tirunculus_0.0.0a.jar&lt;br /&gt;
bzdp.BoxCar 2.0,http://www.robocoderepository.com/BotFiles/3703/bzdp.BoxCar_2.0.jar&lt;br /&gt;
bzdp.Pansy 2.1,http://www.robocoderepository.com/BotFiles/3726/bzdp.Pansy_2.1.jar&lt;br /&gt;
caimano.Furia_Ceca 0.22,http://www.robocoderepository.com/BotFiles/1843/caimano.Furia_Ceca_0.22.jar&lt;br /&gt;
cbot.agile.Nibbler 0.2,http://www.robocoderepository.com/BotFiles/1537/cbot.agile.Nibbler_0.2.jar&lt;br /&gt;
cbot.cbot.CBot 0.8,http://www.robocoderepository.com/BotFiles/1375/cbot.cbot.CBot_0.8.jar&lt;br /&gt;
cf.mini.Chiva 1.0,http://www.robocoderepository.com/BotFiles/2331/cf.mini.Chiva_1.0.jar&lt;br /&gt;
cf.OldMan.OldManXP 0.1,http://www.robocoderepository.com/BotFiles/1968/cf.OldMan.OldManXP_0.1.jar&lt;br /&gt;
cf.proto.Shiva 2.2,http://www.robocoderepository.com/BotFiles/2409/cf.proto.Shiva_2.2.jar&lt;br /&gt;
cf.star.Star2 1.23,http://www.robocoderepository.com/BotFiles/2255/cf.star.Star2_1.23.jar&lt;br /&gt;
ch.rhj.rbc.RHJ1 1.0,http://www.robocoderepository.com/BotFiles/1879/ch.rhj.rbc.RHJ1_1.0.jar&lt;br /&gt;
CharlieN.Omega.Omega 1.03,http://www.robocoderepository.com/BotFiles/3503/CharlieN.Omega.Omega_1.03.jar&lt;br /&gt;
chase.c.Wristwatch 1.0,http://file.csdgn.org/robocode/chase.c.Wristwatch_1.0.jar&lt;br /&gt;
chase.pm.Pytko 1.0,http://file.csdgn.org/robocode/chase.pm.Pytko_1.0.jar&lt;br /&gt;
chase.s2.Genesis 1.1,http://file.csdgn.org/robocode/chase.s2.Genesis_1.1.jar&lt;br /&gt;
chickenfuego.UrChicken2 1.0,http://www.robocoderepository.com/BotFiles/3422/chickenfuego.UrChicken2_1.0.jar&lt;br /&gt;
cjk.Merkava 0.1.1,http://www.robocoderepository.com/BotFiles/2637/cjk.Merkava_0.1.1.jar&lt;br /&gt;
cjm.chalk.Chalk 2.6.Be,http://scatterbright.com/robots/cjm.chalk.Chalk_2.6.Be.jar&lt;br /&gt;
cjm.Charo 1.1,http://scatterbright.com/robots/cjm.Charo_1.1.jar&lt;br /&gt;
cjm.Che 1.2,http://www.robocoderepository.com/BotFiles/2703/cjm.Che_1.2.jar&lt;br /&gt;
cjm.Chomsky 1.5,http://scatterbright.com/robots/cjm.Chomsky_1.5.jar&lt;br /&gt;
codemojo.nano.Woot 1.0,http://darkcanuck.net/rumble/robots/codemojo.nano.Woot_1.0.jar&lt;br /&gt;
cs.ags.Scarlet 1.1,http://file.csdgn.org/robocode/cs.ags.Scarlet_1.1.jar&lt;br /&gt;
cs.ExclusionNano 1.1,http://file.csdgn.org/robocode/cs.ExclusionNano_1.1.jar&lt;br /&gt;
cs.Nene MC60k7,http://file.csdgn.org/robocode/cs.Nene_MC60k7.jar&lt;br /&gt;
cs.s2.Seraphim 2.1.4,http://file.csdgn.org/robocode/cs.s2.Seraphim_2.1.4.jar&lt;br /&gt;
csm.NthGeneration 0.04,http://www.robocoderepository.com/BotFiles/1214/csm.NthGeneration_0.04.jar&lt;br /&gt;
csp.Eagle 3.30,http://www.robocoderepository.com/BotFiles/2436/csp.Eagle_3.30.jar&lt;br /&gt;
css.Delitioner 0.11,http://darkcanuck.net/rumble/robots/css.Delitioner_0.11.jar&lt;br /&gt;
cx.BlestPain 1.41,http://www.robocoderepository.com/BotFiles/1671/cx.BlestPain_1.41.jar&lt;br /&gt;
cx.CigaretBH 1.03,http://www.robocoderepository.com/BotFiles/1414/cx.CigaretBH_1.03.jar&lt;br /&gt;
cx.Lacrimas 1.36,http://www.robocoderepository.com/BotFiles/1820/cx.Lacrimas_1.36.jar&lt;br /&gt;
cx.micro.Blur 0.2,http://www.robocoderepository.com/BotFiles/2447/cx.micro.Blur_0.2.jar&lt;br /&gt;
cx.micro.Smoke 0.96,http://www.robocoderepository.com/BotFiles/1037/cx.micro.Smoke_0.96.jar&lt;br /&gt;
cx.micro.Spark 0.6,http://www.robocoderepository.com/BotFiles/1320/cx.micro.Spark_0.6.jar&lt;br /&gt;
cx.mini.BlackSwans 0.60,http://www.robocoderepository.com/BotFiles/1158/cx.mini.BlackSwans_0.60.jar&lt;br /&gt;
cx.mini.Cigaret 1.31,http://www.robocoderepository.com/BotFiles/1152/cx.mini.Cigaret_1.31.jar&lt;br /&gt;
cx.mini.Nimrod 0.55,http://www.robocoderepository.com/BotFiles/1236/cx.mini.Nimrod_0.55.jar&lt;br /&gt;
cx.nano.Smog 2.6,http://www.robocoderepository.com/BotFiles/1036/cx.nano.Smog_2.6.jar&lt;br /&gt;
cx.Princess 1.0,http://www.robocoderepository.com/BotFiles/1343/cx.Princess_1.0.jar&lt;br /&gt;
da.NewBGank 1.4,http://www.robocoderepository.com/BotFiles/3312/da.NewBGank_1.4.jar&lt;br /&gt;
dam.MogBot 2.9,http://www.robocoderepository.com/BotFiles/555/dam.MogBot_2.9.jar&lt;br /&gt;
dans.Cinnamon 1.2,http://www.robocoderepository.com/BotFiles/1976/dans.Cinnamon_1.2.jar&lt;br /&gt;
darkcanuck.Gaff 1.50,http://darkcanuck.net/rumble/robots/darkcanuck.Gaff_1.50.jar&lt;br /&gt;
darkcanuck.Holden 1.13a,http://darkcanuck.net/rumble/robots/darkcanuck.Holden_1.13a.jar&lt;br /&gt;
darkcanuck.Pris 0.92,http://darkcanuck.net/rumble/robots/darkcanuck.Pris_0.92.jar&lt;br /&gt;
davidalves.Firebird 0.25,http://davidalves.net/robocode/robots/davidalves.Firebird_0.25.jar&lt;br /&gt;
davidalves.Phoenix 1.02,http://davidalves.net/robocode/robots/davidalves.Phoenix_1.02.jar&lt;br /&gt;
davidalves.PhoenixOS 1.1,http://davidalves.net/robocode/robots/davidalves.PhoenixOS_1.1.jar&lt;br /&gt;
davidalves.net.Duelist 0.1.6src,http://www.robocoderepository.com/BotFiles/1000/davidalves.net.Duelist_0.1.6src.jar&lt;br /&gt;
davidalves.net.DuelistMicro 1.22,http://www.robocoderepository.com/BotFiles/1144/davidalves.net.DuelistMicro_1.22.jar&lt;br /&gt;
davidalves.net.DuelistMicroMkII 1.1,http://www.robocoderepository.com/BotFiles/1281/davidalves.net.DuelistMicroMkII_1.1.jar&lt;br /&gt;
davidalves.net.DuelistMini 1.1,http://www.robocoderepository.com/BotFiles/1181/davidalves.net.DuelistMini_1.1.jar&lt;br /&gt;
davidalves.net.DuelistNano 1.0,http://www.robocoderepository.com/BotFiles/1272/davidalves.net.DuelistNano_1.0.jar&lt;br /&gt;
dcs.Eater_of_Worlds 1.1.3-A,http://www.robocoderepository.com/BotFiles/2578/dcs.Eater_of_Worlds_1.1.3-A.jar&lt;br /&gt;
dcs.Eater_of_Worlds_Mini 1.0,http://www.robocoderepository.com/BotFiles/2850/dcs.Eater_of_Worlds_Mini_1.0.jar&lt;br /&gt;
dcs.PM.Eater_of_Worlds_PM 1.2,http://www.robocoderepository.com/BotFiles/2856/dcs.PM.Eater_of_Worlds_PM_1.2.jar&lt;br /&gt;
de.erdega.robocode.Polyphemos 0.4,http://darkcanuck.net/rumble/robots/de.erdega.robocode.Polyphemos_0.4.jar&lt;br /&gt;
deewiant.Anomaly 0.2,http://www.iki.fi/~deewiant/files/deewiant.Anomaly_0.2.jar&lt;br /&gt;
deith.Czolgzilla 0.11,http://www.robocoderepository.com/BotFiles/3256/deith.Czolgzilla_0.11.jar&lt;br /&gt;
demetrix.ForceMajeure 0.75,http://ever-rage.narod.ru/robowiki/demetrix.ForceMajeure_0.75.jar&lt;br /&gt;
demetrix.nano.Neutrino 0.27,http://ever-rage.narod.ru/robowiki/demetrix.nano.Neutrino_0.27.jar&lt;br /&gt;
demetrix.nano.SledgeHammer 0.22,http://ever-rage.narod.ru/robowiki/demetrix.nano.SledgeHammer_0.22.jar&lt;br /&gt;
deo.CloudBot 1.3,http://robocoderepository.com/BotFiles/3644/deo.CloudBot_1.3.jar&lt;br /&gt;
deo.FlowerBot 1.0,http://robocoderepository.com/BotFiles/3683/deo.FlowerBot_1.0.jar&lt;br /&gt;
deo.virtual.RainbowBot 1.0,http://robocoderepository.com/BotFiles/3694/deo.virtual.RainbowBot_1.0.jar&lt;br /&gt;
dft.Calliope 5.6,http://www.robocoderepository.com/BotFiles/237/dft.Calliope_5.6.jar&lt;br /&gt;
dft.Cyanide 1.90,http://darkcanuck.net/rumble/robots/dft.Cyanide_1.90.jar&lt;br /&gt;
dft.Cyprus 3.0,http://www.robocoderepository.com/BotFiles/377/dft.Cyprus_3.0.jar&lt;br /&gt;
dft.Freddie 1.32,http://darkcanuck.net/rumble/robots/dft.Freddie_1.32.jar&lt;br /&gt;
dft.Guppy 1.0,http://darkcanuck.net/rumble/robots/dft.Guppy_1.0.jar&lt;br /&gt;
dft.Immortal 1.40,http://darkcanuck.net/rumble/robots/dft.Immortal_1.40.jar&lt;br /&gt;
dft.Krazy 1.5,http://www.robocoderepository.com/BotFiles/2099/dft.Krazy_1.5.jar&lt;br /&gt;
dft.Virgin 1.25,http://www.robocoderepository.com/BotFiles/1447/dft.Virgin_1.25.jar&lt;br /&gt;
dggp.haiku.gpBot_0 1.1,http://www.robocoderepository.com/BotFiles/3154/dggp.haiku.gpBot_0_1.1.jar&lt;br /&gt;
dittman.BlindSquirl Retired,http://home.comcast.net/~kokyunage/robocode/ugluk/dittman.BlindSquirl_Retired.jar&lt;br /&gt;
djc.Aardvark 0.3.6,http://www.robocoderepository.com/BotFiles/652/djc.Aardvark_0.3.6.jar&lt;br /&gt;
djdjdj.NanoSkunk10 1.0,http://davidjoerg.com/robocode/djdjdj.NanoSkunk10_1.0.jar&lt;br /&gt;
dk.stable.Gorgatron 1.1,http://www.robocoderepository.com/BotFiles/2112/dk.stable.Gorgatron_1.1.jar&lt;br /&gt;
dks.MicroDanMK2 1.0,http://darkcanuck.net/rumble/robots/dks.MicroDanMK2_1.0.jar&lt;br /&gt;
DM.Capriite 3.7.2,http://www.robocoderepository.com/BotFiles/2989/DM.Capriite_3.7.2.jar&lt;br /&gt;
DM.Chicken 4.0,http://www.robocoderepository.com/BotFiles/3020/DM.Chicken_4.0.jar&lt;br /&gt;
DM.Mijit .3,http://www.robocoderepository.com/BotFiles/3043/DM.Mijit_.3.jar&lt;br /&gt;
dmp.micro.Aurora 1.41,http://www.robocoderepository.com/BotFiles/853/dmp.micro.Aurora_1.41.jar&lt;br /&gt;
dmp.nano.Eve 3.41,http://www.robocoderepository.com/BotFiles/842/dmp.nano.Eve_3.41.jar&lt;br /&gt;
donjezza.Jezza 1.0,http://www.robocoderepository.com/BotFiles/3385/donjezza.Jezza_1.0.jar&lt;br /&gt;
donjezza.Muncho 1.0,http://www.robocoderepository.com/BotFiles/3384/donjezza.Muncho_1.0.jar&lt;br /&gt;
drd.Dreadknoght 0.9,http://www.robocoderepository.com/BotFiles/3835/drd.Dreadknoght_0.9.jar&lt;br /&gt;
drm.CobraBora 1.12,http://www.robocoderepository.com/BotFiles/1146/drm.CobraBora_1.12.jar&lt;br /&gt;
drm.Magazine 0.39,http://www.robocoderepository.com/BotFiles/989/drm.Magazine_0.39.jar&lt;br /&gt;
ds.OoV4 0.3b,http://www.robocoderepository.com/BotFiles/2851/ds.OoV4_0.3b.jar&lt;br /&gt;
dsw.StaticD 1.0,http://darkcanuck.net/rumble/robots/dsw.StaticD_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3a 1.0,http://darkcanuck.net/rumble/robots/dsx724.VSAB_EP3a_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3_ATR 1.1,http://www.robocoderepository.com/BotFiles/3432/dsx724.VSAB_EP3_ATR_1.1.jar&lt;br /&gt;
DTF.Kludgy 1.2b,http://www.robocoderepository.com/BotFiles/4041/DTF.Kludgy_1.2b.jar&lt;br /&gt;
dukie.Ambassador 1.0,http://www.robocoderepository.com/BotFiles/2845/dukie.Ambassador_1.0.jar&lt;br /&gt;
dummy.micro.HummingBird 2.14,http://www.robocoderepository.com/BotFiles/369/dummy.micro.HummingBird_2.14.jar&lt;br /&gt;
dummy.micro.Sparrow 2.5,http://www.robocoderepository.com/BotFiles/484/dummy.micro.Sparrow_2.5.jar&lt;br /&gt;
dummy.mini.Parakeet 2.40,http://www.robocoderepository.com/BotFiles/400/dummy.mini.Parakeet_2.40.jar&lt;br /&gt;
dvogon.GangBang 1.0,http://www.robocoderepository.com/BotFiles/3193/dvogon.GangBang_1.0.jar&lt;br /&gt;
dy.LevelOne 2.0,http://www.robocoderepository.com/BotFiles/3452/dy.LevelOne_2.0.jar&lt;br /&gt;
dz.Caedo 1.4,http://www.robocoderepository.com/BotFiles/1044/dz.Caedo_1.4.jar&lt;br /&gt;
dz.GalbaMicro 0.11,http://www.robocoderepository.com/BotFiles/2482/dz.GalbaMicro_0.11.jar&lt;br /&gt;
dz.GalbaMini 0.121,http://darkcanuck.net/rumble/robots/dz.GalbaMini_0.121.jar&lt;br /&gt;
dz.MostlyHarmlessNano 2.1,http://www.robocoderepository.com/BotFiles/2166/dz.MostlyHarmlessNano_2.1.jar&lt;br /&gt;
dz.OthoMicro 0.12,http://www.robocoderepository.com/BotFiles/2198/dz.OthoMicro_0.12.jar&lt;br /&gt;
dz.OthoMini 0.15,http://www.robocoderepository.com/BotFiles/2221/dz.OthoMini_0.15.jar&lt;br /&gt;
eat.HumblePieLite 1.0,http://www.robocoderepository.com/BotFiles/1088/eat.HumblePieLite_1.0.jar&lt;br /&gt;
ebo.Sparse 0.02,http://www.4geeks.de/files/ebo.Sparse_0.02.jar&lt;br /&gt;
ebo.Tahoe 1.1.79,http://www.4geeks.de/files/ebo.Tahoe_1.1.79.jar&lt;br /&gt;
EE.LittleBig 1.0,http://www.robocoderepository.com/BotFiles/4009/EE.LittleBig_1.0.jar&lt;br /&gt;
EFD.AdvancedEFD 0.4.5a,http://sites.google.com/site/jannisbeese/robots/EFD.AdvancedEFD_0.4.5a.jar&lt;br /&gt;
el.Attackr 0.1,http://darkcanuck.net/rumble/robots/el.Attackr_0.1.jar&lt;br /&gt;
el.JumpShoot 0.2,http://www.robocoderepository.com/BotFiles/3360/el.JumpShoot_0.2.jar&lt;br /&gt;
el33t.EL33tGangstarr2 2.0,http://www.robocoderepository.com/BotFiles/2069/el33t.EL33tGangstarr2_2.0.jar&lt;br /&gt;
eld.Hmm 1.0,http://darkcanuck.net/rumble/robots/eld.Hmm_1.0.jar&lt;br /&gt;
element.Earth 1.1,http://www.robocoderepository.com/BotFiles/3587/element.Earth_1.1.jar&lt;br /&gt;
elloco.Flower 0.1r1,http://www.robocoderepository.com/BotFiles/3242/elloco.Flower_0.1r1.jar&lt;br /&gt;
elloco.Kabuto 0.2r,http://www.robocoderepository.com/BotFiles/3229/elloco.Kabuto_0.2r.jar&lt;br /&gt;
elvbot.ElverionBot 0.3,http://www.robocoderepository.com/BotFiles/3541/elvbot.ElverionBot_0.3.jar&lt;br /&gt;
emp.Yngwie 1.11,http://www.robocoderepository.com/BotFiles/1928/emp.Yngwie_1.11.jar&lt;br /&gt;
erdnis.Rover 0.3,http://www.free-games-fun.com/erdnis.Rover_0.3.jar&lt;br /&gt;
eskimo.micro.Echo 0.1,http://robocoderepository.com/BotFiles/3969/eskimo.micro.Echo_0.1.jar&lt;br /&gt;
et.Predator 1.8,http://www.robocoderepository.com/BotFiles/668/et.Predator_1.8.jar&lt;br /&gt;
ethdsy.Malacka 2.4,http://www.robocoderepository.com/BotFiles/1159/ethdsy.Malacka_2.4.jar&lt;br /&gt;
evd.X1 0.01,http://www.robocoderepository.com/BotFiles/3503/evd.X1_0.01.jar&lt;br /&gt;
exauge.GateKeeper 1.1.121g,http://www.robocoderepository.com/BotFiles/3928/exauge.GateKeeper_1.1.121g.jar&lt;br /&gt;
exauge.LemonDrop 1.6.130,http://www.robocoderepository.com/BotFiles/3911/exauge.LemonDrop_1.6.130.jar&lt;br /&gt;
exauge.Leopard 1.1.019,http://www.robocoderepository.com/BotFiles/3917/exauge.Leopard_1.1.019.jar&lt;br /&gt;
fala.robocode.FalaRobot 1.0,http://www.robocoderepository.com/BotFiles/3474/fala.robocode.FalaRobot_1.0.jar&lt;br /&gt;
fcr.First 1.0,http://www.robocoderepository.com/BotFiles/3362/fcr.First_1.0.jar&lt;br /&gt;
Fenix.FenixTrack 1.0,http://www.robocoderepository.com/BotFiles/1627/Fenix.FenixTrack_1.0.jar&lt;br /&gt;
florent.FloatingTadpole 1.2.6,http://www.robocoderepository.com/BotFiles/2675/florent.FloatingTadpole_1.2.6.jar&lt;br /&gt;
florent.small.LittleAngel 1.8,http://www.robocoderepository.com/BotFiles/2917/florent.small.LittleAngel_1.8.jar&lt;br /&gt;
florent.test.Toad 0.14t,http://wesley3.free.fr/florent.test.Toad_0.14t.jar&lt;br /&gt;
florent.XSeries.X2 0.17,http://wesley3.free.fr/florent.XSeries.X2_0.17.jar&lt;br /&gt;
fm.claire 1.7,http://www.robocoderepository.com/BotFiles/2251/fm.claire_1.7.jar&lt;br /&gt;
fm.mammillarias 1.3,http://www.robocoderepository.com/BotFiles/2238/fm.mammillarias_1.3.jar&lt;br /&gt;
fnc.bandit.Bandit 5.2.0,http://www.robocoderepository.com/BotFiles/2155/fnc.bandit.Bandit_5.2.0.jar&lt;br /&gt;
fnc.bandit2002.Bandit2002 4.0.2,http://www.robocoderepository.com/BotFiles/2202/fnc.bandit2002.Bandit2002_4.0.2.jar&lt;br /&gt;
frag.FragBot 1.0,http://darkcanuck.net/rumble/robots/frag.FragBot_1.0.jar&lt;br /&gt;
franzor.Lizt 1.3.1,http://rednaxela-robocode.dyndns.org/data/robot_archive/franzor.Lizt_1.3.1.jar&lt;br /&gt;
fromHell.CHCl3 1.4.2,http://fromhell.schreiende-stille.de/Robocode/Java/fromHell.CHCl3_1.4.2.jar&lt;br /&gt;
fullsail.LaxativeTeaTwo 1.0,http://www.robocoderepository.com/BotFiles/3403/fullsail.LaxativeTeaTwo_1.0.jar&lt;br /&gt;
fullsail.TimbotNoPrediction 1.0,http://darkcanuck.net/rumble/robots/fullsail.TimbotNoPrediction_1.0.jar&lt;br /&gt;
fullsail.SweetTea 1.1,http://darkcanuck.net/rumble/robots/fullsail.SweetTea_1.1.jar&lt;br /&gt;
fushi.PvP1.PvP1 2004-02-16,http://www.robocoderepository.com/BotFiles/2023/fushi.PvP1.PvP1_2004-02-16.jar&lt;br /&gt;
fw.Number1 1.0b,http://www.dijitari.com/void/robocode/fw.Number1_1.0b.jar&lt;br /&gt;
gadsky.Gadsky 1.01,http://www.robocoderepository.com/BotFiles/3595/gadsky.Gadsky_1.01.jar&lt;br /&gt;
Gecko.ultimateGeckoBot 1.0,http://www.robocoderepository.com/BotFiles/4039/Gecko.ultimateGeckoBot_1.0.jar&lt;br /&gt;
geep.mini.GPBotA 1.0,http://www.robocoderepository.com/BotFiles/2361/geep.mini.GPBotA_1.0.jar&lt;br /&gt;
geep.mini.GPBotB 1.1,http://www.robocoderepository.com/BotFiles/2363/geep.mini.GPBotB_1.1.jar&lt;br /&gt;
germ.TheMind .2,http://www.robocoderepository.com/BotFiles/2525/germ.TheMind_.2.jar&lt;br /&gt;
gf.Centaur.Centaur 0.6.7,http://www.robocoderepository.com/BotFiles/4066/gf.Centaur.Centaur_0.6.7.jar&lt;br /&gt;
gg.Squaraus 0.6,http://www.robocoderepository.com/BotFiles/1788/gg.Squaraus_0.6.jar&lt;br /&gt;
gg.Wolverine 2.0,http://darkcanuck.net/rumble/robots/gg.Wolverine_2.0.jar&lt;br /&gt;
gh.GresSuffurd 0.3.5,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GresSuffurd_0.3.5.jar&lt;br /&gt;
gh.GrubbmGrb 1.2.4,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GrubbmGrb_1.2.4.jar&lt;br /&gt;
gh.GrypRepetyf 0.13,http://www.robocoderepository.com/BotFiles/2650/gh.GrypRepetyf_0.13.jar&lt;br /&gt;
gh.micro.Grinnik 0.7,http://www.robocoderepository.com/BotFiles/3208/gh.micro.Grinnik_0.7.jar&lt;br /&gt;
gh.micro.GrubbmThree 0.9,http://www.robocoderepository.com/BotFiles/2444/gh.micro.GrubbmThree_0.9.jar&lt;br /&gt;
gh.mini.Gruwel 0.9,http://www.robocoderepository.com/BotFiles/2511/gh.mini.Gruwel_0.9.jar&lt;br /&gt;
gh.nano.Grofvuil 0.2,http://www.robocoderepository.com/BotFiles/2553/gh.nano.Grofvuil_0.2.jar&lt;br /&gt;
gimp.GimpBot 0.1,http://www.robocoderepository.com/BotFiles/2434/gimp.GimpBot_0.1.jar&lt;br /&gt;
gio.RealGioBot 1.0,http://www.robocoderepository.com/BotFiles/2521/gio.RealGioBot_1.0.jar&lt;br /&gt;
gjr.Cephalosporin 0.2,http://www.robocoderepository.com/BotFiles/2240/gjr.Cephalosporin_0.2.jar&lt;br /&gt;
gm.GaetanoA 2.15,http://www.robocoderepository.com/BotFiles/2188/gm.GaetanoA_2.15.jar&lt;br /&gt;
goblin.Bender 2.4,http://www.robocoderepository.com/BotFiles/1871/goblin.Bender_2.4.jar&lt;br /&gt;
grybgoofy.GoofyBot 0.10,http://www.robocoderepository.com/BotFiles/2196/grybgoofy.GoofyBot_0.10.jar&lt;br /&gt;
gu.MicroScoob 1.3,http://www.robocoderepository.com/BotFiles/2086/gu.MicroScoob_1.3.jar&lt;br /&gt;
gwah.GBotMarkIV 1.0,http://www.horula.ca/roborumble/participants/download.php?file=18&lt;br /&gt;
gwah.GerryBotMkII 1.5.1,http://www.horula.ca/roborumble/participants/download.php?file=17&lt;br /&gt;
hamilton.Hamilton 1.0,http://www.robocoderepository.com/BotFiles/1408/hamilton.Hamilton_1.0.jar&lt;br /&gt;
hapiel.Spiral 0.1,http://robocoderepository.com/BotFiles/3997/hapiel.Spiral_0.1.jar&lt;br /&gt;
hirataatsushi.Neo 1.6,http://www.robocoderepository.com/BotFiles/1081/hirataatsushi.Neo_1.6.jar&lt;br /&gt;
hirataatsushi.Trinity 0.003,http://www.robocoderepository.com/BotFiles/1145/hirataatsushi.Trinity_0.003.jar&lt;br /&gt;
homerbots.h1 1.0,http://www.robocoderepository.com/BotFiles/2999/homerbots.h1_1.0.jar&lt;br /&gt;
hp.Athena 0.1,http://www.robocoderepository.com/BotFiles/3415/hp.Athena_0.1.jar&lt;br /&gt;
hvilela.HVilela 0.9,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.jar&lt;br /&gt;
ins.MobyNano 0.8,http://www.robocoderepository.com/BotFiles/939/ins.MobyNano_0.8.jar&lt;br /&gt;
intruder.PrairieWolf 2.61,http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar&lt;br /&gt;
ivor.prophet.Prophet 0.01,http://www.ivan.php5.sk/ivor.prophet.Prophet_0.01.jar&lt;br /&gt;
is.fon.rs.FonDestroyer3084 1.0,http://www.robocoderepository.com/BotFiles/4047/is.fon.rs.FonDestroyer3084_1.0.jar&lt;br /&gt;
jaara.LambdaBot 1.1,http://www.robocoderepository.com/BotFiles/3514/jaara.LambdaBot_1.1.jar&lt;br /&gt;
jab.avk.ManuelGallegus 0.6,http://darkcanuck.net/rumble/robots/jab.avk.ManuelGallegus_0.6.jar&lt;br /&gt;
jab.DiamondStealer 5,http://darkcanuck.net/rumble/robots/jab.DiamondStealers_5.jar&lt;br /&gt;
jab.micro.Sanguijuela 0.8,http://darkcanuck.net/rumble/robots/jab.micro.Sanguijuela_0.8.jar&lt;br /&gt;
janm.Jammy 1.0,http://www.robocoderepository.com/BotFiles/3543/janm.Jammy_1.0.jar&lt;br /&gt;
jam.micro.RaikoMicro 1.44,http://www.robocoderepository.com/BotFiles/1983/jam.micro.RaikoMicro_1.44.jar&lt;br /&gt;
jam.mini.Raiko 0.43,http://www.robocoderepository.com/BotFiles/1922/jam.mini.Raiko_0.43.jar&lt;br /&gt;
jam.RaikoMX 0.32,http://www.robocoderepository.com/BotFiles/1961/jam.RaikoMX_0.32.jar&lt;br /&gt;
japs.Serenity 1.0,http://www.robocoderepository.com/BotFiles/2217/japs.Serenity_1.0.jar&lt;br /&gt;
japs.Sjonniebot 0.9.1,http://www.robocoderepository.com/BotFiles/2203/japs.Sjonniebot_0.9.1.jar&lt;br /&gt;
jasolo.Sonda 0.55,http://www.robocoderepository.com/BotFiles/1534/jasolo.Sonda_0.55.jar&lt;br /&gt;
jaw.Mouse 0.11,http://www.robocoderepository.com/BotFiles/2472/jaw.Mouse_0.11.jar&lt;br /&gt;
jaw.KarenCain 0.11,http://www.robocoderepository.com/BotFiles/2474/jaw.KarenCain_0.11.jar&lt;br /&gt;
jaybot.adv.bots.JayBot 2.0,http://darkcanuck.net/rumble/robots/jaybot.adv.bots.JayBot_2.0.jar&lt;br /&gt;
jaybot.bots.Oddball 4.0,http://darkcanuck.net/rumble/robots/jaybot.bots.Oddball_4.0.jar&lt;br /&gt;
jbot.Rabbit2 1.1,http://darkcanuck.net/rumble/robots/jbot.Rabbit2_1.1.jar&lt;br /&gt;
jcs.AutoBot 4.2.1,http://www.robocoderepository.com/BotFiles/2616/jcs.AutoBot_4.2.1.jar&lt;br /&gt;
jcs.Decepticon 2.5.3,http://www.robocoderepository.com/BotFiles/2620/jcs.Decepticon_2.5.3.jar&lt;br /&gt;
jcs.Megatron 1.2,http://www.robocoderepository.com/BotFiles/2632/jcs.Megatron_1.2.jar&lt;br /&gt;
jcs.Seth 1.8,http://darkcanuck.net/rumble/robots/jcs.Seth_1.8.jar&lt;br /&gt;
jcw.ArcherOne 1.0,http://darkcanuck.net/rumble/robots/jcw.ArcherOne_1.0.jar&lt;br /&gt;
jekl.DarkHallow .90.9,http://www.robocoderepository.com/BotFiles/2296/jekl.DarkHallow_.90.9.jar&lt;br /&gt;
jekl.Jekyl .70,http://www.robocoderepository.com/BotFiles/1837/jekl.Jekyl_.70.jar&lt;br /&gt;
jekl.mini.BlackPearl .91,http://www.robocoderepository.com/BotFiles/1875/jekl.mini.BlackPearl_.91.jar&lt;br /&gt;
jep.nano.Hawkwing 0.4.1,http://www.robocoderepository.com/BotFiles/1561/jep.nano.Hawkwing_0.4.1.jar&lt;br /&gt;
jep.nano.Hotspur 0.1,http://www.robocoderepository.com/BotFiles/1877/jep.nano.Hotspur_0.1.jar&lt;br /&gt;
jep.Terrible 0.4.1,http://www.robocoderepository.com/BotFiles/1536/jep.Terrible_0.4.1.jar&lt;br /&gt;
jeremyreeder.Vincent 2011.12.09,http://www.robocoderepository.com/BotFiles/3993/jeremyreeder.Vincent_2011.12.09.jar&lt;br /&gt;
jf.Dodger 1.3,http://rednaxela-robocode.dyndns.org/data/robot_archive/jf.Dodger_1.3.jar&lt;br /&gt;
jgap.JGAP12584 1.0,http://www.robocoderepository.com/BotFiles/3383/jgap.JGAP12584_1.0.jar&lt;br /&gt;
jgap.JGAP130166 1.0,http://www.robocoderepository.com/BotFiles/3371/jgap.JGAP130166_1.0.jar&lt;br /&gt;
jgap.JGAP23423 1.0,http://www.robocoderepository.com/BotFiles/3378/jgap.JGAP23423_1.0.jar&lt;br /&gt;
jgap.JGAP6139 1.0,http://www.robocoderepository.com/BotFiles/3372/jgap.JGAP6139_1.0.jar&lt;br /&gt;
jgap.JGAP7247_2 1.0,http://www.robocoderepository.com/BotFiles/3382/jgap.JGAP7247_2_1.0.jar&lt;br /&gt;
jgap.JGAP7958 1.0,http://www.robocoderepository.com/BotFiles/3373/jgap.JGAP7958_1.0.jar&lt;br /&gt;
jje.BagPuss 1.2,http://darkcanuck.net/rumble/robots/jje.BagPuss_1.2.jar&lt;br /&gt;
jk.mega.DrussGT 2.2.2,https://sites.google.com/site/jkflying/jk.mega.DrussGT_2.2.2.jar&lt;br /&gt;
jk.micro.Toorkild 0.2.4b,http://www.minifly.rchomepage.com/robocode/jk.micro.Toorkild_0.2.4b.jar&lt;br /&gt;
jk.mini.CunobelinDC 0.7,http://www.minifly.rchomepage.com/robocode/jk.mini.CunobelinDC_0.7.jar&lt;br /&gt;
jk.precise.Wintermute 0.7,http://www.minifly.rchomepage.com/robocode/jk.precise.Wintermute_0.7.jar&lt;br /&gt;
jmcd.BeoWulf 2.8,http://www.robocoderepository.com/BotFiles/1377/jmcd.BeoWulf_2.8.jar&lt;br /&gt;
joe.ADinosaur 1.0,http://www.robocoderepository.com/BotFiles/2822/joe.ADinosaur_1.0.jar&lt;br /&gt;
josago.Jorgito 0.16,http://www.robocoderepository.com/BotFiles/4000/josago.Jorgito_0.16.jar&lt;br /&gt;
jp.Perpy 16.0,http://www.robocoderepository.com/BotFiles/3001/jp.Perpy_16.0.jar&lt;br /&gt;
jp.SineWall 1.0,http://www.robocoderepository.com/BotFiles/2968/jp.SineWall_1.0.jar&lt;br /&gt;
jrm.Test0 1.0,http://www.robocoderepository.com/BotFiles/3636/jrm.Test0_1.0.jar&lt;br /&gt;
js.PinBall 1.6,http://www.robocoderepository.com/BotFiles/684/js.PinBall_1.6.jar&lt;br /&gt;
jsal.Jsalbot 1.0,http://jeremybubs.googlepages.com/jsal.Jsalbot_1.0.jar&lt;br /&gt;
jt.SpearmintCT Alpha,http://www.robocoderepository.com/BotFiles/2164/jt.SpearmintCT_Alpha.jar&lt;br /&gt;
justin.DemonicRage 3.20,http://sites.google.com/site/justinsitehere/file-cabinet/justin.DemonicRage_3.20.jar&lt;br /&gt;
jw.Booring 1.11,http://www.robocoderepository.com/BotFiles/1250/jw.Booring_1.11.jar&lt;br /&gt;
jwst.DAD.DarkAndDarker 1.1,http://darkcanuck.net/rumble/robots/jwst.DAD.DarkAndDarker_1.1.jar&lt;br /&gt;
kanishk.Fr0z3n 1.1,http://darkcanuck.net/rumble/robots/kanishk.Fr0z3n_1.1.jar&lt;br /&gt;
kano.gamma.KanoGamma 1.8,http://www.robocoderepository.com/BotFiles/1098/kano.gamma.KanoGamma_1.8.jar&lt;br /&gt;
kawam.kmBot9 1.0,http://www.robocoderepository.com/BotFiles/967/kawam.kmBot9_1.0.jar&lt;br /&gt;
kawigi.f.FhqwhgadsMicro 1.0,http://www.robocoderepository.com/BotFiles/1673/kawigi.f.FhqwhgadsMicro_1.0.jar&lt;br /&gt;
kawigi.micro.Shiz 1.1,http://www.robocoderepository.com/BotFiles/2007/kawigi.micro.Shiz_1.1.jar&lt;br /&gt;
kawigi.mini.Coriantumr 1.1,http://www.robocoderepository.com/BotFiles/1988/kawigi.mini.Coriantumr_1.1.jar&lt;br /&gt;
kawigi.mini.Fhqwhgads 1.1,http://www.robocoderepository.com/BotFiles/1604/kawigi.mini.Fhqwhgads_1.1.jar&lt;br /&gt;
kawigi.nano.FunkyChicken 1.1,http://www.robocoderepository.com/BotFiles/1512/kawigi.nano.FunkyChicken_1.1.jar&lt;br /&gt;
kawigi.nano.ThnikkaBot 0.9,http://www.robocoderepository.com/BotFiles/2059/kawigi.nano.ThnikkaBot_0.9.jar&lt;br /&gt;
kawigi.robot.Girl 1.2,http://www.robocoderepository.com/BotFiles/2124/kawigi.robot.Girl_1.2.jar&lt;br /&gt;
kawigi.sbf.Barracuda 1.0,http://www.robocoderepository.com/BotFiles/1535/kawigi.sbf.Barracuda_1.0.jar&lt;br /&gt;
kawigi.sbf.FloodHT 0.9.2,http://www.robocoderepository.com/BotFiles/1552/kawigi.sbf.FloodHT_0.9.2.jar&lt;br /&gt;
kawigi.sbf.FloodMicro 1.5,http://www.robocoderepository.com/BotFiles/1381/kawigi.sbf.FloodMicro_1.5.jar&lt;br /&gt;
kawigi.sbf.FloodMini 1.4,http://www.robocoderepository.com/BotFiles/1462/kawigi.sbf.FloodMini_1.4.jar&lt;br /&gt;
kawigi.sbf.FloodNano 1.2,http://www.robocoderepository.com/BotFiles/1421/kawigi.sbf.FloodNano_1.2.jar&lt;br /&gt;
kawigi.sbf.FloodSonnet 0.9,http://www.robocoderepository.com/BotFiles/1779/kawigi.sbf.FloodSonnet_0.9.jar&lt;br /&gt;
kawigi.sbf.Teancum 1.3,http://www.robocoderepository.com/BotFiles/1470/kawigi.sbf.Teancum_1.3.jar&lt;br /&gt;
kawigi.spare.SpareParts 0.7.6nosnd,http://www.robocoderepository.com/BotFiles/1335/kawigi.spare.SpareParts_0.7.6nosnd.jar&lt;br /&gt;
kc.micro.Needle 0.101,http://www.robocoderepository.com/BotFiles/3379/kc.micro.Needle_0.101.jar&lt;br /&gt;
kc.micro.Thorn 1.252,http://sites.google.com/site/kevcsite/robocode/kc.micro.Thorn_1.252.jar&lt;br /&gt;
kc.micro.WaveShark 0.31,http://www.robocoderepository.com/BotFiles/3822/kc.micro.WaveShark_0.31.jar&lt;br /&gt;
kc.mini.Vyper 0.311,http://darkcanuck.net/rumble/robots/kc.mini.Vyper_0.311.jar&lt;br /&gt;
kc.nano.Splinter 1.2,http://darkcanuck.net/rumble/robots/kc.nano.Splinter_1.2.jar&lt;br /&gt;
kc.serpent.Hydra 0.21,http://darkcanuck.net/rumble/robots/kc.serpent.Hydra_0.21.jar&lt;br /&gt;
kc.serpent.WaveSerpent 2.11,http://sites.google.com/site/kevcsite/robocode/kc.serpent.WaveSerpent_2.11.jar&lt;br /&gt;
kcn.percept.PerceptBot 2.3,http://www.robocoderepository.com/BotFiles/1075/kcn.percept.PerceptBot_2.3.jar&lt;br /&gt;
kcn.unnamed.Unnamed 1.21,http://www.robocoderepository.com/BotFiles/1969/kcn.unnamed.Unnamed_1.21.jar&lt;br /&gt;
kenran.mega.Pantheist 1.1,http://sites.google.com/site/kenranbots/robocode/kenran.mega.Pantheist_1.1.jar&lt;br /&gt;
kid.Gladiator .7.2,http://darkcanuck.net/rumble/robots/kid.Gladiator_.7.2.jar&lt;br /&gt;
kid.Toa .0.5,http://rednaxela-robocode.dyndns.org/data/robot_archive/kid.Toa_.0.5.jar&lt;br /&gt;
KiraNL.Cataris 1.0,http://sandbox-project.nl/robocode/KiraNL.Cataris_1.0.jar&lt;br /&gt;
KiraNL.Chupacabra 0.5,http://sandbox-project.nl/robocode/KiraNL.Chupacabra_0.5.jar&lt;br /&gt;
KiraNL.ChupaLite 0.4,http://sandbox-project.nl/robocode/KiraNL.ChupaLite_0.4.jar&lt;br /&gt;
KiraNL.SpaceKees 0.1,http://sandbox-project.nl/robocode/KiraNL.SpaceKees_0.1.jar&lt;br /&gt;
kinsen.melee.Angsaichmophobia 1.8c,http://sites.google.com/site/dcvqksyb/robocode/kinsen.melee.Angsaichmophobia_1.8c.jar&lt;br /&gt;
kinsen.nano.Hoplomachy 1.6,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Hoplomachy_1.6.jar&lt;br /&gt;
kinsen.nano.Quarrelet 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Quarrelet_1.0.jar&lt;br /&gt;
kinsen.nano.Senticous 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Senticous_1.0.jar&lt;br /&gt;
kjc.etc.Dharok 1.0,http://www.robocoderepository.com/BotFiles/3293/kjc.etc.Dharok_1.0.jar&lt;br /&gt;
kjc.MailManX 2.0,http://www.robocoderepository.com/BotFiles/3288/kjc.MailManX_2.0.jar&lt;br /&gt;
kjc.Karaykan 1.0,http://www.robocoderepository.com/BotFiles/3289/kjc.Karaykan_1.0.jar&lt;br /&gt;
klein.GottesKrieger 1.1,http://www.robocoderepository.com/BotFiles/3258/klein.GottesKrieger_1.1.jar&lt;br /&gt;
Krabb.fe4r.Fe4r 0.4,http://www.robocoderepository.com/BotFiles/2766/Krabb.fe4r.Fe4r_0.4.jar&lt;br /&gt;
Krabb.sliNk.Garm 0.9u,http://designnj.de/roboking/Krabb.sliNk.Garm_0.9u.jar&lt;br /&gt;
Krabb.krabby.Krabby 1.18b,http://darkcanuck.net/rumble/robots/Krabb.krabby.Krabby_1.18b.jar&lt;br /&gt;
Krabb.krabby2.Krabby2 1.9o,http://darkcanuck.net/rumble/robots/Krabb.krabby2.Krabby2_1.9o.jar&lt;br /&gt;
krillr.mini.JointStrike 2.0.0,http://darkcanuck.net/rumble/robots/krillr.mini.JointStrike_2.0.0.jar&lt;br /&gt;
krillr.mega.Psyche 0.0.3,http://darkcanuck.net/rumble/robots/krillr.mega.Psyche_0.0.3.jar&lt;br /&gt;
kronenthaler.Basilisk 1.0,http://www.robocoderepository.com/BotFiles/4051/kronenthaler.Basilisk_1.0.jar&lt;br /&gt;
krzysiek.robbo2.Robbo 1.0.0,http://darkcanuck.net/rumble/robots/krzysiek.robbo2.Robbo_1.0.0.jar&lt;br /&gt;
kurios.DOSexe .9a,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9a.jar&lt;br /&gt;
kvk.HebusLeTroll 0.41,http://www.robocoderepository.com/BotFiles/2125/kvk.HebusLeTroll_0.41.jar&lt;br /&gt;
labg.Cataclysm 2.05,http://www.robocoderepository.com/BotFiles/2399/labg.Cataclysm_2.05.jar&lt;br /&gt;
lancel.Lynx 1.09,http://www.robocoderepository.com/BotFiles/3992/lancel.Lynx_1.09.jar&lt;br /&gt;
lazarecki.mega.PinkerStinker 0.7,http://www.robocoderepository.com/BotFiles/3838/lazarecki.mega.PinkerStinker_0.7.jar&lt;br /&gt;
leb.ShootAnArrow 0.1,http://www.robocoderepository.com/BotFiles/2648/leb.ShootAnArrow_0.1.jar&lt;br /&gt;
lechu.Ala 0.0.4,http://www.robocoderepository.com/BotFiles/3497/lechu.Ala_0.0.4.jar&lt;br /&gt;
lechu.Lechu 1.1,http://www.robocoderepository.com/BotFiles/3480/lechu.Lechu_1.1.jar&lt;br /&gt;
lion.Kresnanano 1.0,http://www.robocoderepository.com/BotFiles/2295/lion.Kresnanano_1.0.jar&lt;br /&gt;
lk.nano.Avesnar 1.1,http://www.robocoderepository.com/BotFiles/1597/lk.nano.Avesnar_1.1.jar&lt;br /&gt;
lorneswork.Predator 1.0,http://www.robocoderepository.com/BotFiles/2609/lorneswork.Predator_1.0.jar&lt;br /&gt;
lrem.Spectre 0.4.4,http://www.robocoderepository.com/BotFiles/2253/lrem.Spectre_0.4.4.jar&lt;br /&gt;
lrem.magic.TormentedAngel Antiquitie,http://maxnet.org.pl/~lrem/lrem.magic.TormentedAngel_Antiquitie.jar&lt;br /&gt;
lrem.micro.MoggFanatic 0.2,http://www.robocoderepository.com/BotFiles/2639/lrem.micro.MoggFanatic_0.2.jar&lt;br /&gt;
lrem.micro.FalseProphet Alpha,http://www.robocoderepository.com/BotFiles/2415/lrem.micro.FalseProphet_Alpha.jar&lt;br /&gt;
lrem.quickhack.QuickHack 1.0,http://www.robocoderepository.com/BotFiles/2555/lrem.quickhack.QuickHack_1.0.jar&lt;br /&gt;
lunchie.Lunchbox 0.93,http://darkcanuck.net/rumble/robots/lunchie.Lunchbox_0.93.jar&lt;br /&gt;
lw.LuthersTest 0.1,http://darkcanuck.net/rumble/robots/lw.LuthersTest_0.1.jar&lt;br /&gt;
lxx.Tomcat 3.22,http://jdevs-robocode.googlecode.com/files/lxx.Tomcat_3.22.jar&lt;br /&gt;
m3thos.Eva00 1.1,http://darkcanuck.net/rumble/robots/m3thos.Eva00_1.1.jar&lt;br /&gt;
m3thos.Eva02 0.7.1,http://darkcanuck.net/rumble/robots/m3thos.Eva02_0.7.1.jar&lt;br /&gt;
m3thos.mini.Eva01 0.5.5,http://darkcanuck.net/rumble/robots/m3thos.mini.Eva01_0.5.5.jar&lt;br /&gt;
ma.is.fon.rs.RobotA 0.01,http://www.robocoderepository.com/BotFiles/4048/ma.is.fon.rs.RobotA_0.01.jar&lt;br /&gt;
madmath.Cow 0.1.1,http://www.robocoderepository.com/BotFiles/3476/madmath.Cow_0.1.1.jar&lt;br /&gt;
marcinek.TopGun 1.3,http://www.robocoderepository.com/BotFiles/3458/marcinek.TopGun_1.3.jar&lt;br /&gt;
marksteam.Phoenix 1.0,http://www.robocoderepository.com/BotFiles/2749/marksteam.Phoenix_1.0.jar&lt;br /&gt;
matt.advanced.Katana 1.0,http://www.robocoderepository.com/BotFiles/2498/matt.advanced.Katana_1.0.jar&lt;br /&gt;
matt.BlueMind 0.8.00,http://www.robocoderepository.com/BotFiles/2685/matt.BlueMind_0.8.00.jar&lt;br /&gt;
matt.UnderDark3 2.4.34,http://www.robocoderepository.com/BotFiles/2485/matt.UnderDark3_2.4.34.jar&lt;br /&gt;
matt.UnderDark4 0.4.00,http://www.robocoderepository.com/BotFiles/2644/matt.UnderDark4_0.4.00.jar&lt;br /&gt;
mbh.Mbh 0.1,http://www.robocoderepository.com/BotFiles/3365/mbh.Mbh_0.1.jar&lt;br /&gt;
mbro.BelajarBot 0.0.3,http://www.robocoderepository.com/BotFiles/2471/mbro.BelajarBot_0.0.3.jar&lt;br /&gt;
mbro.Detektor3 0.1.1,http://www.robocoderepository.com/BotFiles/2478/mbro.Detektor3_0.1.1.jar&lt;br /&gt;
mc.Messapia 0.1.8,http://www.robocoderepository.com/BotFiles/2223/mc.Messapia_0.1.8.jar&lt;br /&gt;
mcb.Audace 1.3,http://www.robocoderepository.com/BotFiles/3424/mcb.Audace_1.3.jar&lt;br /&gt;
McS.Spanky_test 0.1a,http://www.robocoderepository.com/BotFiles/4067/McS.Spanky_test_0.1a.jar&lt;br /&gt;
md.November 1.0,http://www.robocoderepository.com/BotFiles/1004/md.November_1.0.jar&lt;br /&gt;
md.Pasta 1.1,http://www.robocoderepository.com/BotFiles/1014/md.Pasta_1.1.jar&lt;br /&gt;
md.VelociRaptor 1.3,http://www.robocoderepository.com/BotFiles/232/md.VelociRaptor_1.3.jar&lt;br /&gt;
mdouet.BotKicker 2.0,http://www.robocoderepository.com/BotFiles/1478/mdouet.BotKicker_2.0.jar&lt;br /&gt;
metal.small.MCool 1.21,http://www.robocoderepository.com/BotFiles/1698/metal.small.MCool_1.21.jar&lt;br /&gt;
metal.small.dna2.MCoolDNA 1.5,http://www.robocoderepository.com/BotFiles/2354/metal.small.dna2.MCoolDNA_1.5.jar&lt;br /&gt;
microtestbotpack.MicroTestBot 1.0,http://dl.dropbox.com/u/4547352/robocode/microtestbotpack.MicroTestBot_1.0.jar&lt;br /&gt;
mk.Alpha 0.2.1,http://darkcanuck.net/rumble/robots/mk.Alpha_0.2.1.jar&lt;br /&gt;
mladjo.AIR 0.7,http://www.robocoderepository.com/BotFiles/3187/mladjo.AIR_0.7.jar&lt;br /&gt;
mladjo.GnuKlub 0.1,http://darkcanuck.net/rumble/robots/mladjo.GnuKlub_0.1.jar&lt;br /&gt;
mladjo.Grrrrr 0.9,http://www.robocoderepository.com/BotFiles/3189/mladjo.Grrrrr_0.9.jar&lt;br /&gt;
mladjo.iRobot 0.3,http://www.robocoderepository.com/BotFiles/3149/mladjo.iRobot_0.3.jar&lt;br /&gt;
mladjo.Startko 1.0,http://www.robocoderepository.com/BotFiles/3186/mladjo.Startko_1.0.jar&lt;br /&gt;
mld.DustBunny 3.8,http://www.robocoderepository.com/BotFiles/3650/mld.DustBunny_3.8.jar&lt;br /&gt;
mld.Infinity 2.2,http://www.robocoderepository.com/BotFiles/3591/mld.Infinity_2.2.jar&lt;br /&gt;
mld.LittleBlackBook 1.69e,https://sites.google.com/site/dorganrobocode/file-cabinet/mld.LittleBlackBook_1.69e.jar&lt;br /&gt;
mld.Moebius 2.9.3,http://www.robocoderepository.com/BotFiles/3634/mld.Moebius_2.9.3.jar&lt;br /&gt;
mld.Wisdom 1.0,http://www.robocoderepository.com/BotFiles/3640/mld.Wisdom_1.0.jar&lt;br /&gt;
mmb.Roskilde 0.5,http://www.robocoderepository.com/BotFiles/3965/mmb.Roskilde_0.5.jar&lt;br /&gt;
mme.NikeEnhanced 2.0,http://www.robocoderepository.com/BotFiles/2828/mme.NikeEnhanced_2.0.jar&lt;br /&gt;
mn.Combat 2.3.1,http://sites.google.com/site/mnrobocode/robots/mn.Combat_2.3.1.jar&lt;br /&gt;
mnt.AHEB 0.6a,http://www.robocoderepository.com/BotFiles/2417/mnt.AHEB_0.6a.jar&lt;br /&gt;
mnt.SurferBot 0.2.5,http://www.robocoderepository.com/BotFiles/2433/mnt.SurferBot_0.2.5.jar&lt;br /&gt;
morbid.MorbidPriest 1.0,http://www.robocoderepository.com/BotFiles/1758/morbid.MorbidPriest_1.0.jar&lt;br /&gt;
mrm.MightyMoose .2,http://darkcanuck.net/rumble/robots/mrm.MightyMoose_.2.jar&lt;br /&gt;
ms.Ares 0.19,http://www.robocoderepository.com/BotFiles/730/ms.Ares_0.19.jar&lt;br /&gt;
mue.Ascendant 1.2.27,http://mue.sonar-echo.de/robocode/mue.Ascendant_1.2.27.jar&lt;br /&gt;
mue.Hyperion 0.8,http://www.robocoderepository.com/BotFiles/2224/mue.Hyperion_0.8.jar&lt;br /&gt;
muf.CrazyKitten 0.9,http://www.robocoderepository.com/BotFiles/1946/muf.CrazyKitten_0.9.jar&lt;br /&gt;
mwj.A1176183 1.0,http://robocode.rleach.id.au/mwj.A1176183_1.0.jar&lt;br /&gt;
myl.micro.Avipes 1.00,http://www.robocoderepository.com/BotFiles/1347/myl.micro.Avipes_1.00.jar&lt;br /&gt;
myl.micro.NekoNinja 1.30,http://www.robocoderepository.com/BotFiles/944/myl.micro.NekoNinja_1.30.jar&lt;br /&gt;
myl.micro.Predator 1.50,http://www.robocoderepository.com/BotFiles/1097/myl.micro.Predator_1.50.jar&lt;br /&gt;
myl.micro.Troodon 1.10,http://www.robocoderepository.com/BotFiles/1226/myl.micro.Troodon_1.10.jar&lt;br /&gt;
myl.nano.Graviton 1.10,http://www.robocoderepository.com/BotFiles/770/myl.nano.Graviton_1.10.jar&lt;br /&gt;
myl.nano.Kakuru 1.20,http://www.robocoderepository.com/BotFiles/1330/myl.nano.Kakuru_1.20.jar&lt;br /&gt;
myl.nano.KomoriNinja 1.1,http://www.robocoderepository.com/BotFiles/978/myl.nano.KomoriNinja_1.1.jar&lt;br /&gt;
mym.EdgeStalker 1.0,http://www.robocoderepository.com/BotFiles/3956/mym.EdgeStalker_1.0.jar&lt;br /&gt;
mz.Adept 2.65,http://www.robocoderepository.com/BotFiles/2090/mz.Adept_2.65.jar&lt;br /&gt;
mz.AdeptBSB 1.03,http://www.robocoderepository.com/BotFiles/2113/mz.AdeptBSB_1.03.jar&lt;br /&gt;
mz.Movement 1.8,http://www.robocoderepository.com/BotFiles/2145/mz.Movement_1.8.jar&lt;br /&gt;
mz.NanoDeath 2.56,http://www.robocoderepository.com/BotFiles/2010/mz.NanoDeath_2.56.jar&lt;br /&gt;
mz.NanoGod 2.02,http://www.robocoderepository.com/BotFiles/1996/mz.NanoGod_2.02.jar&lt;br /&gt;
nammyung.ModelT 0.23,http://www.robocoderepository.com/BotFiles/969/nammyung.ModelT_0.23.jar&lt;br /&gt;
nanoskank.NanoSkank 1.0,http://darkcanuck.net/rumble/robots/nanoskank.NanoSkank_1.0.jar&lt;br /&gt;
nat.BlackHole 2.0gamma,http://nat.robothai.net/robots/nat.BlackHole_2.0gamma.jar&lt;br /&gt;
nat.micro.NP 1.34,http://nat.robothai.net/robots/nat.micro.NP_1.34.jar&lt;br /&gt;
nat.micro.Reepicheep 0.1a,http://nat.robothai.net/robots/nat.micro.Reepicheep_0.1a.jar&lt;br /&gt;
nat.nano.Ocnirp 1.73,http://nat.robothai.net/robots/nat.nano.Ocnirp_1.73.jar&lt;br /&gt;
nat.nano.OcnirpPM 1.0,http://nat.robothai.net/robots/nat.nano.OcnirpPM_1.0.jar&lt;br /&gt;
nat.nano.OcnirpSNG 1.0b,http://nat.robothai.net/robots/nat.nano.OcnirpSNG_1.0b.jar&lt;br /&gt;
nat.Samekh 0.4,http://nat.robothai.net/robots/nat.Samekh_0.4.jar&lt;br /&gt;
ncj.MoxieBot 1.0,http://www.robocoderepository.com/BotFiles/4003/ncj.MoxieBot_1.0.jar&lt;br /&gt;
ndn.DyslexicMonkey 1.1,http://www.robocoderepository.com/BotFiles/1141/ndn.DyslexicMonkey_1.1.jar&lt;br /&gt;
NDH.GuessFactor 1.0, http://www.robocoderepository.com/BotFiles/3949/NDH.GuessFactor_1.0.jar&lt;br /&gt;
ne.Chimera 1.2,http://www.robocoderepository.com/BotFiles/3276/ne.Chimera_1.2.jar&lt;br /&gt;
nexus.One 1.0,http://darkcanuck.net/rumble/robots/nexus.One_1.0.jar&lt;br /&gt;
nexus.Prototype 1.0,http://darkcanuck.net/rumble/robots/nexus.Prototype_1.0.jar&lt;br /&gt;
nic.Nicator 2.4,http://www.robocoderepository.com/BotFiles/193/nic.Nicator_2.4.jar&lt;br /&gt;
nic.SnippetBot 1.0,http://www.robocoderepository.com/BotFiles/286/nic.SnippetBot_1.0.jar&lt;br /&gt;
nkn.mini.Jskr0 0.1,http://www.robocoderepository.com/BotFiles/3852/nkn.mini.Jskr0_0.1.jar&lt;br /&gt;
NG.LegatusLegionis 1.2,http://www.robocoderepository.com/BotFiles/4026/NG.LegatusLegionis_1.2.jar&lt;br /&gt;
non.mega.NaN 0.1,http://www.robocoderepository.com/BotFiles/1960/non.mega.NaN_0.1.jar&lt;br /&gt;
non.mega.NoName 0.0,http://www.robocoderepository.com/BotFiles/1957/non.mega.NoName_0.0.jar&lt;br /&gt;
Noran.BitchingElk 0.054,http://www.robocoderepository.com/BotFiles/1855/Noran.BitchingElk_0.054.jar&lt;br /&gt;
Noran.RandomTargeting 0.02,http://www.robocoderepository.com/BotFiles/1849/Noran.RandomTargeting_0.02.jar&lt;br /&gt;
nova.Snow 1.0,http://www.robocoderepository.com/BotFiles/3623/nova.Snow_1.0.jar&lt;br /&gt;
ntc.Cannon 1.12test,http://www.robocoderepository.com/BotFiles/3815/ntc.Cannon_1.12test.jar&lt;br /&gt;
ntc.Evader 1.2,http://www.robocoderepository.com/BotFiles/3355/ntc.Evader_1.2.jar&lt;br /&gt;
ntc.Knowledge 1.1,http://www.robocoderepository.com/BotFiles/3354/ntc.Knowledge_1.1.jar&lt;br /&gt;
ntc.Lasers.Lasers 0.9,http://www.robocoderepository.com/BotFiles/3359/ntc.Lasers.Lasers_0.9.jar&lt;br /&gt;
ntc.Plains 0.9,http://www.robocoderepository.com/BotFiles/3381/ntc.Plains_0.9.jar&lt;br /&gt;
ntc.Swim 0.9,http://www.robocoderepository.com/BotFiles/3820/ntc.Swim_0.9.jar&lt;br /&gt;
ntw.Sighup 1.5,http://darkcanuck.net/rumble/robots/ntw.Sighup_1.5.jar&lt;br /&gt;
ntw.Sigsys 1.6,http://darkcanuck.net/rumble/robots/ntw.Sigsys_1.6.jar&lt;br /&gt;
nz.jdc.micro.HedgehogGF 1.3,http://www.robocoderepository.com/BotFiles/3626/nz.jdc.micro.HedgehogGF_1.3.jar&lt;br /&gt;
nz.jdc.micro.HedgehogP 1.2,http://www.robocoderepository.com/BotFiles/3622/nz.jdc.micro.HedgehogP_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophytePattern 1.0,http://www.robocoderepository.com/BotFiles/3578/nz.jdc.nano.NeophytePattern_1.0.jar&lt;br /&gt;
nz.jdc.nano.NeophytePRAL 1.2,http://www.robocoderepository.com/BotFiles/3568/nz.jdc.nano.NeophytePRAL_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophyteSRAL 1.2,http://www.robocoderepository.com/BotFiles/3567/nz.jdc.nano.NeophyteSRAL_1.2.jar&lt;br /&gt;
oa.weak.BotherBot 0.1,http://www.robocoderepository.com/BotFiles/2956/oa.weak.BotherBot_0.1.jar&lt;br /&gt;
oa.weak.FlyMk1 0.1,http://www.robocoderepository.com/BotFiles/2958/oa.weak.FlyMk1_0.1.jar&lt;br /&gt;
ola.Puffin 1.0,http://www.robocoderepository.com/BotFiles/3380/ola.Puffin_1.0.jar&lt;br /&gt;
oog.melee.Capulet 1.1,https://sites.google.com/site/crazybassoon/oog.melee.Capulet_1.1.jar&lt;br /&gt;
oog.melee.Mercutio 1.0,http://www.robocoderepository.com/BotFiles/3848/oog.melee.Mercutio_1.0.jar&lt;br /&gt;
oog.micro.MagicD3 0.41,http://www.robocoderepository.com/BotFiles/3801/oog.micro.MagicD3_0.41.jar&lt;br /&gt;
oog.micro.Maui 1.2,https://sites.google.com/site/crazybassoon/oog.micro.Maui_1.2.jar&lt;br /&gt;
oog.micro.SavantMicro 1.1,https://sites.google.com/site/crazybassoon/oog.micro.SavantMicro_1.1.jar&lt;br /&gt;
oog.mini.AlphaDragon 0.1,http://www.robocoderepository.com/BotFiles/4015/oog.mini.AlphaDragon_0.1.jar&lt;br /&gt;
oog.nano.Caligula 1.15,http://www.robocoderepository.com/BotFiles/4022/oog.nano.Caligula_1.15.jar&lt;br /&gt;
oog.nano.Fuatisha 1.1,http://www.robocoderepository.com/BotFiles/4045/oog.nano.Fuatisha_1.1.jar&lt;br /&gt;
oog.nano.MagicD2 2.4,http://www.robocoderepository.com/BotFiles/3749/oog.nano.MagicD2_2.4.jar&lt;br /&gt;
oog.nano.SavantVS 1.1,http://www.robocoderepository.com/BotFiles/3714/oog.nano.SavantVS_1.1.jar&lt;br /&gt;
oog.nano.SavantWS 0.1,http://www.robocoderepository.com/BotFiles/3709/oog.nano.SavantWS_0.1.jar&lt;br /&gt;
oog.PricklyPear 1.0.6,https://sites.google.com/site/crazybassoon/oog.PricklyPear_1.0.6.jar&lt;br /&gt;
pa.Improved 1.1,http://darkcanuck.net/rumble/robots/pa.Improved_1.1.jar&lt;br /&gt;
pak.JakeTheTestingRobot .1b,http://www.robocoderepository.com/BotFiles/3373/pak.JakeTheTestingRobot_.1b.jar&lt;br /&gt;
pak.Dargon 1.0b,http://www.robocoderepository.com/BotFiles/3388/pak.Dargon_1.0b.jar&lt;br /&gt;
panzer.Panzer 0.2,http://www.robocoderepository.com/BotFiles/4008/panzer.Panzer_0.2.jar&lt;br /&gt;
paolord.TheHulk 1.0,http://www.robocoderepository.com/BotFiles/3595/paolord.TheHulk_1.0.jar&lt;br /&gt;
patson.PatsonTestBot 1.0,http://www.robocoderepository.com/BotFiles/3324/patson.PatsonTestBot_1.0.jar&lt;br /&gt;
paulk.PaulV3 1.7,http://www.robocoderepository.com/BotFiles/3502/paulk.PaulV3_1.7.jar&lt;br /&gt;
pb.Oscillator 1.0,http://www.robocoderepository.com/BotFiles/2070/pb.Oscillator_1.0.jar&lt;br /&gt;
pe.mini.SandboxMini 1.2,http://www.robocoderepository.com/BotFiles/917/pe.mini.SandboxMini_1.2.jar&lt;br /&gt;
pe.minimelee.SandboxMiniMelee 1.1,http://www.robocoderepository.com/BotFiles/934/pe.minimelee.SandboxMiniMelee_1.1.jar&lt;br /&gt;
pe.SandboxDT 3.02,http://www.robocoderepository.com/BotFiles/793/pe.SandboxDT_3.02.jar&lt;br /&gt;
pe.SandboxLump 1.52,http://www.robocoderepository.com/BotFiles/731/pe.SandboxLump_1.52.jar&lt;br /&gt;
pedersen.Hubris 2.4,http://home.comcast.net/~kokyunage/robocode/hubris/pedersen.Hubris_2.4.jar&lt;br /&gt;
pedersen.Ugluk 1.0,http://home.comcast.net/~kokyunage/robocode/ugluk/pedersen.Ugluk_1.0.jar&lt;br /&gt;
pez.clean.Swiffer 0.2.9,http://www.robocoderepository.com/BotFiles/1883/pez.clean.Swiffer_0.2.9.jar&lt;br /&gt;
pez.frankie.Frankie 0.9.6.1,http://www.robocoderepository.com/BotFiles/1565/pez.frankie.Frankie_0.9.6.1.jar&lt;br /&gt;
pez.gloom.GloomyDark 0.9.2,http://www.robocoderepository.com/BotFiles/1741/pez.gloom.GloomyDark_0.9.2.jar&lt;br /&gt;
pez.mako.Mako 1.5,http://www.robocoderepository.com/BotFiles/1317/pez.mako.Mako_1.5.jar&lt;br /&gt;
pez.micro.Aristocles 0.3.7,http://www.robocoderepository.com/BotFiles/1923/pez.micro.Aristocles_0.3.7.jar&lt;br /&gt;
pez.mini.ChironexFleckeri 0.5,http://www.robocoderepository.com/BotFiles/2513/pez.mini.ChironexFleckeri_0.5.jar&lt;br /&gt;
pez.mini.Gouldingi 1.5,http://www.robocoderepository.com/BotFiles/1351/pez.mini.Gouldingi_1.5.jar&lt;br /&gt;
pez.mini.Pugilist 2.4.18,http://darkcanuck.net/rumble/robots/pez.mini.Pugilist_2.4.18.jar&lt;br /&gt;
pez.mini.Tityus 0.9.1,http://www.robocoderepository.com/BotFiles/1657/pez.mini.Tityus_0.9.1.jar&lt;br /&gt;
pez.mini.VertiLeach 0.4.0,http://www.robocoderepository.com/BotFiles/1744/pez.mini.VertiLeach_0.4.0.jar&lt;br /&gt;
pez.nano.Icarus 0.3,http://www.robocoderepository.com/BotFiles/2353/pez.nano.Icarus_0.3.jar&lt;br /&gt;
pez.nano.LittleEvilBrother 0.1,http://www.robocoderepository.com/BotFiles/2056/pez.nano.LittleEvilBrother_0.1.jar&lt;br /&gt;
pez.rumble.Ali 0.4.9,http://www.robocoderepository.com/BotFiles/2416/pez.rumble.Ali_0.4.9.jar&lt;br /&gt;
pez.rumble.CassiusClay 2rho.01b,http://www.dijitari.com/void/robocode/pez.rumble.CassiusClay_2rho.01b.jar&lt;br /&gt;
pfvicm.Sobieski 7.2.3b,http://www.robocoderepository.com/BotFiles/2911/pfvicm.Sobieski_7.2.3b.jar&lt;br /&gt;
ph.micro.Pikeman 0.4.5,http://www.robocoderepository.com/BotFiles/2364/ph.micro.Pikeman_0.4.5.jar&lt;br /&gt;
ph.mini.Archer 0.6.6,http://www.robocoderepository.com/BotFiles/2326/ph.mini.Archer_0.6.6.jar&lt;br /&gt;
ph.musketeer.Musketeer 0.6,http://www.robocoderepository.com/BotFiles/2281/ph.musketeer.Musketeer_0.6.jar&lt;br /&gt;
ph.Thinker 0.2.5,http://www.robocoderepository.com/BotFiles/2336/ph.Thinker_0.2.5.jar&lt;br /&gt;
pi.Dark 10,http://darkcanuck.net/rumble/robots/pi.Dark_10.jar&lt;br /&gt;
pl.Drum 0.1,http://darkcanuck.net/rumble/robots/pl.Drum_0.1.jar&lt;br /&gt;
pl.Patton.GeneralPatton 1.54,http://darkcanuck.net/rumble/robots/pl.Patton.GeneralPatton_1.54.jar&lt;br /&gt;
pla.Memnoch 0.5,http://www.robocoderepository.com/BotFiles/2211/pla.Memnoch_0.5.jar&lt;br /&gt;
PK.Twardy 0.4.2,http://www.robocoderepository.com/BotFiles/3272/PK.Twardy_0.4.2.jar&lt;br /&gt;
pkdeken.Paladin 1.0,http://www.robocoderepository.com/BotFiles/3556/pkdeken.Paladin_1.0.jar&lt;br /&gt;
PkKillers.PkAssassin 1.0,http://www.robocoderepository.com/BotFiles/3485/PkKillers.PkAssassin_1.0.jar&lt;br /&gt;
pmc.SniperBot 1.0,http://darkcanuck.net/rumble/robots/pmc.SniperBot_1.0.jar&lt;br /&gt;
populations.TrainStoopidbot 0.01,http://www.robocoderepository.com/BotFiles/4052/populations.TrainStoopidbot_0.01.jar&lt;br /&gt;
positive.Portia 1.26e,http://sites.google.com/site/robopositive/portia/positive.Portia_1.26e.jar&lt;br /&gt;
povik.nano.Smilee 0.2.1,http://www.robocoderepository.com/BotFiles/3950/povik.nano.Smilee_0.2.1.jar&lt;br /&gt;
projectx.ProjectNano 2.0,http://darkcanuck.net/rumble/robots/projectx.ProjectNano_2.0.jar&lt;br /&gt;
projectx.TestNano 1.0,http://www.robocoderepository.com/BotFiles/3444/projectx.TestNano_1.0.jar&lt;br /&gt;
PSW.Relentless 0.1,http://www.robocoderepository.com/BotFiles/4082/PSW.Relentless_0.1.jar&lt;br /&gt;
pulsar.PulsarMax 0.8.9,http://www.robocoderepository.com/BotFiles/2227/pulsar.PulsarMax_0.8.9.jar&lt;br /&gt;
pulsar.PulsarNano 0.2.4,http://www.robocoderepository.com/BotFiles/2335/pulsar.PulsarNano_0.2.4.jar&lt;br /&gt;
pulsar.Nanis 0.3,http://www.robocoderepository.com/BotFiles/2560/pulsar.Nanis_0.3.jar&lt;br /&gt;
qohnil.blot.BlotBot 3.61,http://www.robocoderepository.com/BotFiles/546/qohnil.blot.BlotBot_3.61.jar&lt;br /&gt;
Queens_teamrobot.UltraRazor 1.0,http://www.robocoderepository.com/BotFiles/2108/Queens_teamrobot.UltraRazor_1.0.jar&lt;br /&gt;
quietus.Invader 0.1,http://robocode.rleach.id.au/quietus.Invader_0.1.jar&lt;br /&gt;
quietus.NarrowRadar 0.1,http://robocode.rleach.id.au/quietus.NarrowRadar_0.1.jar&lt;br /&gt;
radnor.DoctorBob 1.42,http://www.robocoderepository.com/BotFiles/2133/radnor.DoctorBob_1.42.jar&lt;br /&gt;
radnor.RamRod 1.0,http://www.robocoderepository.com/BotFiles/2085/radnor.RamRod_1.0.jar&lt;br /&gt;
rampancy.Durandal 2.2d,http://stanford.edu/~mchunlum/robocode/rampancy.Durandal_2.2d.jar&lt;br /&gt;
rampancy.micro.Epiphron 1.0,http://stanford.edu/~mchunlum/robocode/rampancy.micro.Epiphron_1.0.jar&lt;br /&gt;
rapture.Rapture 2.13,http://www.robocoderepository.com/BotFiles/15/rapture.Rapture_2.13.jar&lt;br /&gt;
ratosh.nano.Debo 1.36,http://www.robocoderepository.com/BotFiles/1702/ratosh.nano.Debo_1.36.jar&lt;br /&gt;
ratosh.Nobo 0.21,http://www.robocoderepository.com/BotFiles/1612/ratosh.Nobo_0.21.jar&lt;br /&gt;
ratosh.Wesco 1.4,http://www.robocoderepository.com/BotFiles/1914/ratosh.Wesco_1.4.jar&lt;br /&gt;
rc.yoda.Yoda 1.0.6c.fix,http://rednaxela-robocode.dyndns.org/data/robots/rc.yoda.Yoda_1.0.6c.fix.jar&lt;br /&gt;
rcb.Vanessa03 0,http://www.robocoderepository.com/BotFiles/1364/rcb.Vanessa03_0.jar&lt;br /&gt;
rcp.Kuramatron 1.0,http://www.robocoderepository.com/BotFiles/3307/rcp.Kuramatron_1.0.jar&lt;br /&gt;
rdt199.Warlord 0.73,http://www.robocoderepository.com/BotFiles/1130/rdt199.Warlord_0.73.jar&lt;br /&gt;
reaper.Reaper 1.1,http://www.robocoderepository.com/BotFiles/3412/reaper.Reaper_1.1.jar&lt;br /&gt;
repositorio.NanoStep 1.0,http://darkcanuck.net/rumble/robots/repositorio.NanoStep_1.0.jar&lt;br /&gt;
rfj.Sunburn 1.1,http://www.robocoderepository.com/BotFiles/1060/rfj.Sunburn_1.1.jar&lt;br /&gt;
rijteam.SmartDodge 1.1,http://www.robocoderepository.com/BotFiles/2959/rijteam.SmartDodge_1.1.jar&lt;br /&gt;
robar.haiku.Spike 1.0,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.haiku.Spike_1.0.jar&lt;br /&gt;
robar.micro.Gladius 1.15,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.micro.Gladius_1.15.jar&lt;br /&gt;
robar.micro.Kirbyi 1.0,http://hunrobar.freeblog.hu/files/myrobots/robar.micro.Kirbyi_1.0.jar&lt;br /&gt;
robar.micro.Topaz 0.25,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.micro.Topaz_0.25.jar&lt;br /&gt;
robar.nano.Assertive 0.3,http://rednaxela-robocode.dyndns.org/data/robot_archive/robar.nano.Assertive_0.3.jar&lt;br /&gt;
robar.nano.BlackWidow 1.3,http://www.robocoderepository.com/BotFiles/3574/robar.nano.BlackWidow_1.3.jar&lt;br /&gt;
robar.nano.Breeze 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Breeze_0.3.jar&lt;br /&gt;
robar.nano.Mosquito 1.1,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Mosquito_1.1.jar&lt;br /&gt;
robar.nano.MosquitoPM 1.0,http://www.robocoderepository.com/BotFiles/3559/robar.nano.MosquitoPM_1.0.jar&lt;br /&gt;
robar.nano.Prestige 1.0,http://www.robocoderepository.com/BotFiles/3507/robar.nano.Prestige_1.0.jar&lt;br /&gt;
robar.nano.Pugio 1.49,http://www.robocoderepository.com/BotFiles/3710/robar.nano.Pugio_1.49.jar&lt;br /&gt;
robar.nano.Scytodes 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Scytodes_0.3.jar&lt;br /&gt;
robar.nano.Vespa 0.95,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Vespa_0.95.jar&lt;br /&gt;
robo.PartsBot 1.1,http://darkcanuck.net/rumble/robots/robo.PartsBot_1.1.jar&lt;br /&gt;
RobotMarco.MarcoV 0.1,http://www.robocoderepository.com/BotFiles/3941/RobotMarco.MarcoV_0.1.jar&lt;br /&gt;
rsim.micro.uCatcher 0.1,http://sites.google.com/site/rsimander/robocode/rsim.micro.uCatcher_0.1.jar&lt;br /&gt;
rsim.mini.BulletCatcher 0.4,http://www.robocoderepository.com/BotFiles/3737/rsim.mini.BulletCatcher_0.4.jar&lt;br /&gt;
rsk1.RSK1 4.0,http://www.robocoderepository.com/BotFiles/3284/rsk1.RSK1_4.0.jar&lt;br /&gt;
ruc.nano.Zealot 0.2,http://www.robocoderepository.com/BotFiles/1229/ruc.nano.Zealot_0.2.jar&lt;br /&gt;
rus.vv.Dzhigit 1.1,http://www.robocoderepository.com/BotFiles/4002/rus.vv.Dzhigit1.1.jar&lt;br /&gt;
rus.vv.Snezhok 1.1,http://www.robocoderepository.com/BotFiles/3998/rus.vv.Snezhok1.1.jar&lt;br /&gt;
ry.LightningBug 1.0,http://www.robocoderepository.com/BotFiles/3472/ry.LightningBug_1.0.jar&lt;br /&gt;
ry.VirtualGunExperiment 1.2.0,http://www.robocoderepository.com/BotFiles/3662/ry.VirtualGunExperiment_1.2.0.jar&lt;br /&gt;
ry.Worst 1.0,http://www.robocoderepository.com/BotFiles/3645/ry.Worst_1.0.jar&lt;br /&gt;
rz.Aleph 0.34,http://www.robocoderepository.com/BotFiles/1993/rz.Aleph_0.34.jar&lt;br /&gt;
rz.Apollon 0.23,http://www.robocoderepository.com/BotFiles/2098/rz.Apollon_0.23.jar&lt;br /&gt;
rz.Artist 0.2,http://www.robocoderepository.com/BotFiles/2156/rz.Artist_0.2.jar&lt;br /&gt;
rz.GlowBlow 2.31,http://www.robocoderepository.com/BotFiles/1354/rz.GlowBlow_2.31.jar&lt;br /&gt;
rz.GlowBlowAPM 1.0,http://www.robocoderepository.com/BotFiles/1382/rz.GlowBlowAPM_1.0.jar&lt;br /&gt;
rz.GlowBlowMelee 1.4,http://www.robocoderepository.com/BotFiles/1436/rz.GlowBlowMelee_1.4.jar&lt;br /&gt;
rz.HawkOnFire 0.1,http://www.robocoderepository.com/BotFiles/1575/rz.HawkOnFire_0.1.jar&lt;br /&gt;
rz.SmallDevil 1.502,http://www.robocoderepository.com/BotFiles/1322/rz.SmallDevil_1.502.jar&lt;br /&gt;
sadoner.killer 0.2,http://www.robocoderepository.com/BotFiles/4020/sadoner.killer_0.2.jar&lt;br /&gt;
sam.ChipmunkDuelist 1.0,http://www.robocoderepository.com/BotFiles/3094/sam.ChipmunkDuelist_1.0.jar&lt;br /&gt;
sam.Samspin 1.0,http://www.robocoderepository.com/BotFiles/2823/sam.Samspin_1.0.jar&lt;br /&gt;
sample.Corners 1.0,http://www.robocoderepository.com/BotFiles/1/sample.Corners_1.0.jar&lt;br /&gt;
sample.Crazy 1.0,http://www.robocoderepository.com/BotFiles/2/sample.Crazy_1.0.jar&lt;br /&gt;
sample.Fire 1.0,http://www.robocoderepository.com/BotFiles/3/sample.Fire_1.0.jar&lt;br /&gt;
sample.MyFirstJuniorRobot 1.0,http://sites.google.com/site/mnrobocode/robots/sample.MyFirstJuniorRobot_1.0.jar&lt;br /&gt;
sample.MyFirstRobot 1.0,http://www.robocoderepository.com/BotFiles/4/sample.MyFirstRobot_1.0.jar&lt;br /&gt;
sample.RamFire 1.0,http://www.robocoderepository.com/BotFiles/5/sample.RamFire_1.0.jar&lt;br /&gt;
sample.SittingDuck 1.0,http://www.robocoderepository.com/BotFiles/6/sample.SittingDuck_1.0.jar&lt;br /&gt;
sample.SpinBot 1.0,http://www.robocoderepository.com/BotFiles/7/sample.SpinBot_1.0.jar&lt;br /&gt;
sample.Target 1.0,http://www.robocoderepository.com/BotFiles/8/sample.Target_1.0.jar&lt;br /&gt;
sample.Tracker 1.0,http://www.robocoderepository.com/BotFiles/9/sample.Tracker_1.0.jar&lt;br /&gt;
sample.TrackFire 1.0,http://www.robocoderepository.com/BotFiles/10/sample.TrackFire_1.0.jar&lt;br /&gt;
sample.VelociRobot 1.0,http://sites.google.com/site/mnrobocode/robots/sample.VelociRobot_1.0.jar&lt;br /&gt;
sample.Walls 1.0,http://www.robocoderepository.com/BotFiles/11/sample.Walls_1.0.jar&lt;br /&gt;
sanyi.mikrobi.Roberto 1.0,http://www.robocoderepository.com/BotFiles/3929/sanyi.mikrobi.Roberto_1.0.jar&lt;br /&gt;
sch.Simone 0.3d,http://www.robocoderepository.com/BotFiles/374/sch.Simone_0.3d.jar&lt;br /&gt;
serenity.moonlightBat 1.17,http://www.robocoderepository.com/BotFiles/2877/serenity.moonlightBat_1.17.jar&lt;br /&gt;
serenity.nonSense 1.39,http://www.robocoderepository.com/BotFiles/3586/serenity.nonSense_1.39.jar&lt;br /&gt;
serenity.serenityFire 1.29,http://www.robocoderepository.com/BotFiles/3071/serenity.serenityFire_1.29.jar&lt;br /&gt;
sgp.JollyNinja 3.53,http://www.robocoderepository.com/BotFiles/183/sgp.JollyNinja_3.53.jar&lt;br /&gt;
sgp.MadHatter 4.13,http://www.robocoderepository.com/BotFiles/156/sgp.MadHatter_4.13.jar&lt;br /&gt;
sgp.nano.FurryLeech 1.0,http://www.robocoderepository.com/BotFiles/802/sgp.nano.FurryLeech_1.0.jar&lt;br /&gt;
sgp.ShiningBeetle 1.1,http://www.robocoderepository.com/BotFiles/498/sgp.ShiningBeetle_1.1.jar&lt;br /&gt;
sgp.SleepingGoat 1.1,http://www.robocoderepository.com/BotFiles/500/sgp.SleepingGoat_1.1.jar&lt;br /&gt;
SHAM.WOW 1.4,http://darkcanuck.net/rumble/robots/SHAM.WOW_1.4.jar&lt;br /&gt;
shinh.Entangled 0.3,http://www.robocoderepository.com/BotFiles/1070/shinh.Entangled_0.3.jar&lt;br /&gt;
shrub.Silver v048,http://www.robocoderepository.com/BotFiles/449/shrub.Silver_v048.jar&lt;br /&gt;
shrub.Vapour v159,http://www.robocoderepository.com/BotFiles/2654/shrub.Vapour_v159.jar&lt;br /&gt;
shu.nitro.LENIN .T34,http://www.robocoderepository.com/BotFiles/1956/shu.nitro.LENIN_.T34.jar&lt;br /&gt;
sigterm.Sigterm 1.0,http://darkcanuck.net/rumble/robots/sigterm.Sigterm_1.0.jar&lt;br /&gt;
simonton.beta.LifelongObsession 0.5.1,http://www.robocoderepository.com/BotFiles/3195/simonton.beta.LifelongObsession_0.5.1.jar&lt;br /&gt;
simonton.GFNano_D 3.1b,http://www.robocoderepository.com/BotFiles/3114/simonton.GFNano_D_3.1b.jar&lt;br /&gt;
simonton.nano.WeekendObsession_S 1.7,http://www.robocoderepository.com/BotFiles/3117/simonton.nano.WeekendObsession_S_1.7.jar&lt;br /&gt;
simonton.mega.SniperFrog 1.0.fix2,http://rednaxela-robocode.dyndns.org/data/robots/simonton.mega.SniperFrog_1.0.fix2.jar&lt;br /&gt;
simonton.micro.GFMicro 1.0,http://darkcanuck.net/rumble/robots/simonton.micro.GFMicro_1.0.jar&lt;br /&gt;
simonton.micro.WeeklongObsession 3.4.1,http://darkcanuck.net/rumble/robots/simonton.micro.WeeklongObsession_3.4.1.jar&lt;br /&gt;
simonton.mini.WeeksOnEnd 1.10.4,http://darkcanuck.net/rumble/robots/simonton.mini.WeeksOnEnd_1.10.4.jar&lt;br /&gt;
skm.butterfly 1.0,http://www.robocoderepository.com/BotFiles/3868/sean1.jar&lt;br /&gt;
skm.Ryubot 1.0,http://www.robocoderepository.com/BotFiles/3594/skm.Ryubot_1.0.jar&lt;br /&gt;
skm.PateranBotlock2 1.0,http://www.robocoderepository.com/BotFiles/3591/skm.PateranBotlock2_1.0.jar&lt;br /&gt;
sL300.Mozart life,http://www.robocoderepository.com/BotFiles/1992/sL300.Mozart_life.jar&lt;br /&gt;
sm.Devil 7.3,http://www.robocoderepository.com/BotFiles/1481/sm.Devil_7.3.jar&lt;br /&gt;
sng.arco.Arco 0.0,http://www.robocoderepository.com/BotFiles/3279/sng.arco.Arco_0.0.jar&lt;br /&gt;
sos.SOS 1.0,http://www.robocoderepository.com/BotFiles/3489/sos.SOS_1.0.jar&lt;br /&gt;
spinnercat.CopyKat 1.2.3,http://www.robocoderepository.com/BotFiles/3818/spinnercat.CopyKat_1.2.3.jar&lt;br /&gt;
spinnercat.Limit .01,http://www.robocoderepository.com/BotFiles/3659/spinnercat.Limit_.01.jar&lt;br /&gt;
spinnercat.Kitten 1.6,http://www.robocoderepository.com/BotFiles/3819/spinnercat.Kitten_1.6.jar&lt;br /&gt;
spinnercat.haiku.Refrigerator 1.1,http://www.robocoderepository.com/BotFiles/3688/spinnercat.haiku.Refrigerator_1.1.jar&lt;br /&gt;
spinnercat.mega.Tardis 1.2,http://www.robocoderepository.com/BotFiles/3692/spinnercat.mega.Tardis_1.2.jar&lt;br /&gt;
spinnercat.Robovirus 2.718,http://www.robocoderepository.com/BotFiles/3657/spinnercat.Robovirus_2.718.jar&lt;br /&gt;
sqTank.waveSurfing.LionWWSVMvoid 0.01,http://www.robocoderepository.com/BotFiles/3436/sqTank.waveSurfing.LionWWSVMvoid_0.01.jar&lt;br /&gt;
squidM.SquidmanNano 1.0,http://www.blubex.hm-labs.com/robocode/squidM.SquidmanNano_1.0.jar&lt;br /&gt;
squidM.SurfinUSA 1.0,http://www.blubex.hm-labs.com/robocode/squidM.SurfinUSA_1.0.jar&lt;br /&gt;
starpkg.StarViewerZ 1.26,http://www.robocoderepository.com/BotFiles/1931/starpkg.StarViewerZ_1.26.jar&lt;br /&gt;
staticline.Whiskey 0.5.3,http://www.robocoderepository.com/BotFiles/3972/staticline.Whiskey_0.5.3.jar&lt;br /&gt;
staticline.whiskey.Whiskey 0.6,http://rednaxela-robocode.dyndns.org/data/robot_archive/staticline.whiskey.Whiskey_0.6.jar&lt;br /&gt;
stefw.Tigger 0.0.23,http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar&lt;br /&gt;
stelo.Chord 1.0,http://darkcanuck.net/rumble/robots/stelo.Chord_1.0.jar&lt;br /&gt;
stelo.FretNano 1.1,http://darkcanuck.net/rumble/robots/stelo.FretNano_1.1.jar&lt;br /&gt;
stelo.Lifestealer 1.0,http://darkcanuck.net/rumble/robots/stelo.Lifestealer_1.0.jar&lt;br /&gt;
stelo.MatchupMini 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupMini_1.1.jar&lt;br /&gt;
stelo.MatchupMicro 1.2,http://darkcanuck.net/rumble/robots/stelo.MatchupMicro_1.2.jar&lt;br /&gt;
stelo.MatchupAGF 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupAGF_1.1.jar&lt;br /&gt;
stelo.MatchupWS 1.2c,http://darkcanuck.net/rumble/robots/stelo.MatchupWS_1.2c.jar&lt;br /&gt;
stelo.Mirror 1.1,http://www.robocoderepository.com/BotFiles/3034/stelo.Mirror_1.1.jar&lt;br /&gt;
stelo.MirrorMicro 1.1,http://darkcanuck.net/rumble/robots/stelo.MirrorMicro_1.1.jar&lt;br /&gt;
stelo.MirrorNano 1.4,http://darkcanuck.net/rumble/robots/stelo.MirrorNano_1.4.jar&lt;br /&gt;
stelo.MoojukNano 1.2,http://darkcanuck.net/rumble/robots/stelo.MoojukNano_1.2.jar&lt;br /&gt;
stelo.PastFuture 2.1.9,http://www.robocoderepository.com/BotFiles/3910/stelo.PastFuture_2.1.9.jar&lt;br /&gt;
stelo.PatternRobot 1.0,http://www.robocoderepository.com/BotFiles/2995/stelo.PatternRobot_1.0.jar&lt;br /&gt;
stelo.PianistNano 1.3,http://darkcanuck.net/rumble/robots/stelo.PianistNano_1.3.jar&lt;br /&gt;
stelo.RamTrackSurfer 1.2,http://darkcanuck.net/rumble/robots/stelo.RamTrackSurfer_1.2.jar&lt;br /&gt;
stelo.Randomness 1.1,http://www.robocoderepository.com/BotFiles/3021/stelo.Randomness_1.1.jar&lt;br /&gt;
stelo.Spread 0.3,http://www.robowiki.net/w/images/a/a5/Stelo.Spread_0.3.jar&lt;br /&gt;
stelo.SteloTestNano 1.0,http://darkcanuck.net/rumble/robots/stelo.SteloTestNano_1.0.jar&lt;br /&gt;
stelo.UnfoolableNano 1.0,http://darkcanuck.net/rumble/robots/stelo.UnfoolableNano_1.0.jar&lt;br /&gt;
stelo.UntouchableNano 1.4,http://darkcanuck.net/rumble/robots/stelo.UntouchableNano_1.4.jar&lt;br /&gt;
step.nanoPri 1.0,http://www.robocoderepository.com/BotFiles/2996/step.nanoPri_1.0.jar&lt;br /&gt;
step.NanoBidu 1.0,http://www.robocoderepository.com/BotFiles/3014/step.NanoBidu_1.0.jar&lt;br /&gt;
stf.PanzerGeneral 0.1,http://www.robocoderepository.com/BotFiles/2233/stf.PanzerGeneral_0.1.jar&lt;br /&gt;
stordy.StordyBot 1.0,http://sites.google.com/site/stordyrobo/Home/stordy.StordyBot_1.0.jar&lt;br /&gt;
strider.Festis 1.2.1,http://www.robocoderepository.com/BotFiles/2355/strider.Festis_1.2.1.jar&lt;br /&gt;
strider.Mer 1.1.0,http://www.robocoderepository.com/BotFiles/2360/strider.Mer_1.1.0.jar&lt;br /&gt;
stuff.Vlad 0.1,http://www.robocoderepository.com/BotFiles/3701/stuff.Vlad_0.1.jar&lt;br /&gt;
sul.NanoR2 1.32,http://www.robocoderepository.com/BotFiles/3348/sul.NanoR2_1.32.jar&lt;br /&gt;
sul.Pinkbot 1.1,http://www.robocoderepository.com/BotFiles/3346/sul.Pinkbot_1.1.jar&lt;br /&gt;
sul.Bicephal 1.2,http://www.robocoderepository.com/BotFiles/3343/sul.Bicephal_1.2.jar&lt;br /&gt;
sul.BlueBot 1.0,http://www.robocoderepository.com/BotFiles/3347/sul.BlueBot_1.0.jar&lt;br /&gt;
supersample.SuperBoxBot 1.0,http://www.robocoderepository.com/BotFiles/3994/supersample.SuperBoxBot_1.0.jar&lt;br /&gt;
supersample.SuperCorners 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperCorners_1.0.jar&lt;br /&gt;
SuperSample.SuperCrazy 1.0,http://file.csdgn.org/robocode/SuperSample.SuperCrazy_1.0.jar&lt;br /&gt;
supersample.SuperMercutio 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperMercutio_1.0.jar&lt;br /&gt;
supersample.SuperRamFire 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperRamFire_1.0.jar&lt;br /&gt;
supersample.SuperSpinBot 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperSpinBot_1.0.jar&lt;br /&gt;
supersample.SuperTracker 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperTracker_1.0.jar&lt;br /&gt;
supersample.SuperTrackFire 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperTrackFire_1.0.jar&lt;br /&gt;
supersample.SuperWalls 1.0,http://sites.google.com/site/mnrobocode/robots/supersample.SuperWalls_1.0.jar&lt;br /&gt;
syl.Centipede 0.5,http://www.robocoderepository.com/BotFiles/1254/syl.Centipede_0.5.jar&lt;br /&gt;
synapse.Geomancy 15,http://sites.google.com/site/synapsebots/home/synapse.Geomancy_15.jar?attredirects=0&lt;br /&gt;
synapse.rsim.GeomancyBS 0.11,http://robocoderepository.com/BotFiles/3758/synapse.rsim.GeomancyBS_0.11.jar&lt;br /&gt;
synnalagma.NeuralPremier 0.51,http://www.robocoderepository.com/BotFiles/1557/synnalagma.NeuralPremier_0.51.jar&lt;br /&gt;
synnalagma.test.MiniNeural 1.1,http://www.robocoderepository.com/BotFiles/1754/synnalagma.test.MiniNeural_1.1.jar&lt;br /&gt;
tad.Dalek98 0.98,http://darkcanuck.net/rumble/robots/tad.Dalek98_0.98.jar&lt;br /&gt;
takeBot.SpinSpiral 1.2,http://www.robocoderepository.com/BotFiles/312/takeBot.SpinSpiral_1.2.jar&lt;br /&gt;
takeBot.SpiralCrash 1.0,http://www.robocoderepository.com/BotFiles/1013/takeBot.SpiralCrash_1.0.jar&lt;br /&gt;
takeBot.WeavingWiggle 1.1,http://www.robocoderepository.com/BotFiles/1012/takeBot.WeavingWiggle_1.1.jar&lt;br /&gt;
tango.Recrimpo 2.51,http://www.robocoderepository.com/BotFiles/2015/tango.Recrimpo_2.51.jar&lt;br /&gt;
taqho.taqbot 1.0,http://www.robocoderepository.com/BotFiles/1316/taqho.taqbot_1.0.jar&lt;br /&gt;
tcf.Drifter 29,http://www.7sun.com/robocode/robots/tcf.Drifter_29.jar&lt;br /&gt;
tcf.Repat3 2,http://www.robocoderepository.com/BotFiles/3328/tcf.Repat3_2.jar&lt;br /&gt;
techdude.kombat.FlamingKombat 1.5,http://www.robocoderepository.com/BotFiles/2810/techdude.kombat.FlamingKombat_1.5.jar&lt;br /&gt;
techdude.Class2C.Class2C 0.1,http://www.robocoderepository.com/BotFiles/3078/techdude.Class2C.Class2C_0.1.jar&lt;br /&gt;
test.Podgy 4.0,http://www.robocoderepository.com/BotFiles/3214/test.Podgy_4.0.jar&lt;br /&gt;
test.Fuzzer 1.0.1,http://www.robocoderepository.com/BotFiles/3345/test.Fuzzer_1.0.1.jar&lt;br /&gt;
tex.Longbot 0.4,https://sites.google.com/a/pelt.cc/pelt/home/my-roborcode-project/tex.Longbot_0.4.jar?attredirects=0&amp;amp;d=1&lt;br /&gt;
testantiswapgun.AntiSwap 1.0,http://www.robocode.ilbello.com/asd.AntiSwap_1.0.jar&lt;br /&gt;
throxbot.ThroxBot 0.1,http://www.robocoderepository.com/BotFiles/2548/throxbot.ThroxBot_0.1.jar&lt;br /&gt;
tide.pear.Pear 0.62.1,http://www.robocoderepository.com/BotFiles/2393/tide.pear.Pear_0.62.1.jar&lt;br /&gt;
timmit.micro.TimXJ 0.22,http://www.robocoderepository.com/BotFiles/1683/timmit.micro.TimXJ_0.22.jar&lt;br /&gt;
timmit.mini.TimVA 0.43,http://www.robocoderepository.com/BotFiles/1681/timmit.mini.TimVA_0.43.jar&lt;br /&gt;
timmit.nano.TimCat 0.13,http://www.robocoderepository.com/BotFiles/1600/timmit.nano.TimCat_0.13.jar&lt;br /&gt;
timmit.nano.TimDog 0.33,http://www.robocoderepository.com/BotFiles/1602/timmit.nano.TimDog_0.33.jar&lt;br /&gt;
timmit.TimmiT 0.22,http://www.robocoderepository.com/BotFiles/1468/timmit.TimmiT_0.22.jar&lt;br /&gt;
TJ.Exupery 1.39,http://www.robocoderepository.com/BotFiles/3970/TJ.Exupery1.39.jar&lt;br /&gt;
tjk.deBroglie 0.66,http://robocoderepository.com/BotFiles/3989/tjk.deBroglie_0.66.jar&lt;br /&gt;
tlp.ThreeLeggedPig 1,http://rednaxela-robocode.dyndns.org/data/robot_archive/tlp.ThreeLeggedPig_1.jar&lt;br /&gt;
tm.Yuugao 1.0,http://www.robocoderepository.com/BotFiles/1056/tm.Yuugao_1.0.jar&lt;br /&gt;
tobe.calypso.Calypso 4.1,http://www.robocoderepository.com/BotFiles/784/tobe.calypso.Calypso_4.1.jar&lt;br /&gt;
tobe.Fusion 1.0,http://www.robocoderepository.com/BotFiles/649/tobe.Fusion_1.0.jar&lt;br /&gt;
tobe.mini.Charon 0.9,http://www.robocoderepository.com/BotFiles/836/tobe.mini.Charon_0.9.jar&lt;br /&gt;
tobe.Relativity 3.9,http://www.robocoderepository.com/BotFiles/360/tobe.Relativity_3.9.jar&lt;br /&gt;
tobe.Saturn lambda,http://www.robocoderepository.com/BotFiles/685/tobe.Saturn_lambda.jar&lt;br /&gt;
tornyil.bottomup.BottomUp 1.05,http://www.alpha-consulting.hu/robo/tornyil.bottomup.BottomUp_1.05.jar&lt;br /&gt;
tornyil.Lajcsi2.Lajcsi2sm 1.0,http://www.alpha-consulting.hu/robo/tornyil.Lajcsi2.Lajcsi2sm_1.0.jar&lt;br /&gt;
toz.Gnome 1.1,http://darkcanuck.net/rumble/robots/toz.Gnome_1.1.jar&lt;br /&gt;
trab.Crusader 0.1.7,http://www.stud.ntnu.no/~grashei/bots/trab.Crusader_0.1.7.jar&lt;br /&gt;
trab.nano.AinippeNano 1.3,http://www.stud.ntnu.no/~grashei/bots/trab.nano.AinippeNano_1.3.jar&lt;br /&gt;
tw.Exterminator 1.0,http://www.robocoderepository.com/BotFiles/3607/tw.Exterminator_1.0.jar&lt;br /&gt;
tzu.TheArtOfWar 1.2,http://darkcanuck.net/rumble/robots/tzu.TheArtOfWar_1.2.jar&lt;br /&gt;
ua.kiiv.kosyak.robocode.tn1.Tn1 2.0,http://www.robocoderepository.com/BotFiles/4072/ua.kiiv.kosyak.robocode.tn1.Tn1_2.0.jar&lt;br /&gt;
uccc.Dorito 1.12,http://www.devfluid.com/csc_w/images/e/e9/Uccc.Dorito_1.12.jar&lt;br /&gt;
uccc.MilkyWay 1.01,http://www.devfluid.com/csc_w/images/a/a6/Uccc.MilkyWay_1.01.jar&lt;br /&gt;
uccc.RingDing 1.12,http://www.devfluid.com/csc_w/images/5/5f/Uccc.RingDing_1.12.jar&lt;br /&gt;
uccc.Scrapple 1.0,http://www.devfluid.com/csc_w/images/7/7a/Uccc.Scrapple_1.0.jar&lt;br /&gt;
urdos.URDOS 1.3,http://darkcanuck.net/rumble/robots/urdos.URDOS_1.3.jar&lt;br /&gt;
usa.nano.Nemo 2.0,http://www.robocoderepository.com/BotFiles/2045/usa.nano.Nemo_2.0.jar&lt;br /&gt;
vic.Locke 0.7.5.5,http://www.robocoderepository.com/BotFiles/2115/vic.Locke_0.7.5.5.jar&lt;br /&gt;
vft.Valkyrie 1.0,http://www.robocoderepository.com/BotFiles/3009/vft.Valkyrie_1.0.jar&lt;br /&gt;
vft.Hrist 1.0,http://darkcanuck.net/rumble/robots/vft.Hrist_1.0.jar&lt;br /&gt;
vjik.UnViolation 1.1,http://www.robocoderepository.com/BotFiles/3886/vjik.UnViolation_1.1.jar&lt;br /&gt;
voidious.Diamond 1.6.9,http://www.dijitari.com/void/robocode/voidious.Diamond_1.6.9.jar&lt;br /&gt;
voidious.Dookious 1.573c,http://www.dijitari.com/void/robocode/voidious.Dookious_1.573c.jar&lt;br /&gt;
voidious.micro.Jen 1.11,http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar&lt;br /&gt;
voidious.mini.Komarious 1.88,http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar&lt;br /&gt;
voidious.perceptual.RetroGirl 1.0.0,http://www.dijitari.com/void/robocode/voidious.perceptual.RetroGirl_1.0.0.jar&lt;br /&gt;
vuen.Fractal 0.55,http://www.robocoderepository.com/BotFiles/1579/vuen.Fractal_0.55.jar&lt;br /&gt;
wcsv.Engineer.Engineer 0.5.4,http://darkcanuck.net/rumble/robots/wcsv.Engineer.Engineer_0.5.4.jar&lt;br /&gt;
wcsv.PowerHouse.PowerHouse 1.7e3,http://darkcanuck.net/rumble/robots/wcsv.PowerHouse.PowerHouse_1.7e3.jar&lt;br /&gt;
wcsv.mega.PowerHouse2 0.2,http://darkcanuck.net/rumble/robots/wcsv.mega.PowerHouse2_0.2.jar&lt;br /&gt;
wcsv.Stampede 1.3.3,http://www.robocoderepository.com/BotFiles/2527/wcsv.Stampede_1.3.3.jar&lt;br /&gt;
wcsv.Stampede2.Stampede2 1.1.0,http://www.robocoderepository.com/BotFiles/2714/wcsv.Stampede2.Stampede2_1.1.0.jar&lt;br /&gt;
WdV.Lesserbee 0.01,http://www.robocoderepository.com/BotFiles/4046/WdV.Lesserbee_0.01.jar&lt;br /&gt;
whind.Constitution 0.7.1,http://www.robocoderepository.com/BotFiles/2812/whind.Constitution_0.7.1.jar&lt;br /&gt;
whind.Strength 0.6.4,http://whindgames.50webs.com/otherstuff/whind.Strength_0.6.4.jar&lt;br /&gt;
whind.StrengthBee 0.6.4,http://whindgames.50webs.com/otherstuff/whind.StrengthBee_0.6.4.jar&lt;br /&gt;
whind.Wisdom 0.5.1,http://www.robocoderepository.com/BotFiles/2742/whind.Wisdom_0.5.1.jar&lt;br /&gt;
wiki.BasicGFSurfer 1.02,http://www.dijitari.com/void/robocode/wiki.BasicGFSurfer_1.02.jar&lt;br /&gt;
wiki.mako.MakoHT 1.2.2.1,http://www.robocoderepository.com/BotFiles/1374/wiki.mako.MakoHT_1.2.2.1.jar&lt;br /&gt;
wiki.mini.BlackDestroyer 0.9.0,http://www.robocoderepository.com/BotFiles/1927/wiki.mini.BlackDestroyer_0.9.0.jar&lt;br /&gt;
wiki.mini.GouldingiHT 1.0,http://www.robocoderepository.com/BotFiles/1383/wiki.mini.GouldingiHT_1.0.jar&lt;br /&gt;
wiki.mini.Griffon 0.1,http://www.robocoderepository.com/BotFiles/1774/wiki.mini.Griffon_0.1.jar&lt;br /&gt;
wiki.mini.Sedan 1.0,http://www.robocoderepository.com/BotFiles/1676/wiki.mini.Sedan_1.0.jar&lt;br /&gt;
wiki.nano.DevilFISH 1.0,http://www.robocoderepository.com/BotFiles/2235/wiki.nano.DevilFISH_1.0.jar&lt;br /&gt;
wiki.nano.RaikoNano 1.1,http://www.robocoderepository.com/BotFiles/2163/wiki.nano.RaikoNano_1.1.jar&lt;br /&gt;
wiki.WaveRammer 1.0,http://www.robocoderepository.com/BotFiles/3505/wiki.WaveRammer_1.0.jar&lt;br /&gt;
wiki.Wolverine 2.1,http://darkcanuck.net/rumble/robots/wiki.Wolverine_2.1.jar&lt;br /&gt;
wilson.Chameleon 0.91,http://www.robocoderepository.com/BotFiles/1608/wilson.Chameleon_0.91.jar&lt;br /&gt;
winamp32.micro.MicroMacro 1.0,http://www.robocoderepository.com/BotFiles/2891/winamp32.micro.MicroMacro_1.0.jar&lt;br /&gt;
wit.Chuliath 1.0,http://www.robocoderepository.com/BotFiles/2306/wit.Chuliath_1.0.jar&lt;br /&gt;
wit.Deep7 2.0,http://www.robocoderepository.com/BotFiles/2313/wit.Deep7_2.0.jar&lt;br /&gt;
xander.cat.XanderCat 9.0.1,http://www.distantvisions.net/robocode/xander.cat.XanderCat_9.0.1.jar&lt;br /&gt;
xandercat.Nissa 1.1,http://www.distantvisions.net/robocode/xandercat.Nissa_1.1.jar&lt;br /&gt;
xandercat.Rowdy 1.3,http://www.distantvisions.net/robocode/xandercat.Rowdy_1.3.jar&lt;br /&gt;
xandercat.Simon 1.0,http://www.distantvisions.net/robocode/xandercat.Simon_1.0.jar&lt;br /&gt;
xiongan.Xiongan 1.1,http://www.robocoderepository.com/BotFiles/3565/xiongan.Xiongan_1.1.jar&lt;br /&gt;
yarghard.Y101 1.0,http://sliwa.ws/RoboCode/yarghard.Y101_1.0.jar&lt;br /&gt;
yk.JahMicro 1.0,http://www.robocoderepository.com/BotFiles/3033/yk.JahMicro_1.0.jar&lt;br /&gt;
yk.JahRoslav 1.1,http://www.robocoderepository.com/BotFiles/3032/yk.JahRoslav_1.1.jar&lt;br /&gt;
zen.Lindada 0.2,http://www.robocoderepository.com/BotFiles/1679/zen.Lindada_0.2.jar&lt;br /&gt;
zeze2.OperatorZeze 1.05,http://www.robocoderepository.com/BotFiles/3330/zeze2.OperatorZeze_1.05.jar&lt;br /&gt;
zch.David 0.21,http://www.robocoderepository.com/BotFiles/3575/zch.David_0.21.jar&lt;br /&gt;
zch.Hirkan 0.11,http://www.robocoderepository.com/BotFiles/1288/zch.Hirkan_0.11.jar&lt;br /&gt;
zh.UnderDog 0.0.2,http://www.robocoderepository.com/BotFiles/3053/zh.UnderDog_0.0.2.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 1.3.7,http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_1.3.7.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 3.0,http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_3.0.jar&lt;br /&gt;
zyx.micro.Ant 1.1,http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar&lt;br /&gt;
zyx.nano.Ant 1.1,http://www.robocoderepository.com/BotFiles/3493/zyx.nano.Ant_1.1.jar&lt;br /&gt;
zyx.nano.EscherichiaColi 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.EscherichiaColi_1.0.jar&lt;br /&gt;
zyx.nano.RedBull 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.RedBull_1.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''''No chatting on this page. Use the /ParticipantsChat page for that.'''''&lt;br /&gt;
&lt;br /&gt;
'''''Removed because the jarcontent/filename is not correct'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''cberendt.Bot1 0.160''&amp;lt;br&amp;gt;&lt;br /&gt;
''dmsr.MiniR101 0.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''henriquevilela.TieFighter 0.1,3224''&amp;lt;br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_7980_gen7 1.0,3552''br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_13029_gen7 1.0,3553''&amp;lt;br&amp;gt;&lt;br /&gt;
''techdude.Carruthers 1.2.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''uccc.Orbiter 1.0''&amp;lt;br&amp;gt;&lt;br /&gt;
''WhoAmI.WhoAmI 1.00''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Removed until file corruption is resolved:'''''&lt;br /&gt;
&lt;br /&gt;
''cas.CelsoKiller 1.0,3465''&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to almost always giving '0' scores:'''''&lt;br /&gt;
&lt;br /&gt;
''com.syncleus.robocode.Dreadnaught 0.1,3426''&amp;lt;br&amp;gt;&lt;br /&gt;
''lazarecki.PinkerStinker 0.1,http://www.robocoderepository.com/BotFiles/3824/lazarecki.PinkerStinker_0.1.jar''&lt;br /&gt;
&lt;br /&gt;
'''''Removed because it's incorrectly packaged:'''''&lt;br /&gt;
&lt;br /&gt;
''Indesh.Indesh 1.1,http://jakobserlier.250free.com/Indesh.jar''&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to 1.6.1.4 incompatibility'''''&lt;br /&gt;
&lt;br /&gt;
''extra.LightSauce 0.01,http://www.robocoderepository.com/BotFiles/4031/extra.LightSauce_0.01.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''extra.Sauce .01,http://robocoderepository.com/BotFiles/4029/extra.Sauce_.01.jar''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to WontFix issues in Robocode 1.7+:'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Hviela: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2953268&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2953268]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': hvilela.HVilela 0.9.3,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.3.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Barney (Tries to write files without using RobocodeOutputStream. Robocode 1.7 punishes for that more harshly which will give 0 scores)&amp;lt;br&amp;gt;&lt;br /&gt;
'': Homer.Barney 1.0,http://www.robocoderepository.com/BotFiles/1932/Homer.Barney_1.0.jar&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=User_talk:Zyx&amp;diff=19263</id>
		<title>User talk:Zyx</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User_talk:Zyx&amp;diff=19263"/>
		<updated>2011-05-10T20:58:45Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Codefest Winnings */ reply&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox small&lt;br /&gt;
| title     = Archived Talks&lt;br /&gt;
| namespace = User&lt;br /&gt;
| page1     = Talk Archive 20090506&lt;br /&gt;
| title1    = 2009/05/06&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Wiki Help ==&lt;br /&gt;
&lt;br /&gt;
I'm trying to learn how to use the wiki, so probably will be asking more questions. But to start I would like to know how to add those nice ''content tables'' to the pages, I've been going trough the pages that has them and see nothing special in the code :-S. And as a more general second question, is there somewhere I can learn how to write wiki stuff? Particularly this one of course. --[[User:Zyx|zyx]] 01:11, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:How_to_edit|Here]] is all about mediawiki syntax. MediaWiki automatically add the TOC once the page have more than 4 headers (inclusive) at before the first header. If you want to add the TOC manually, add &amp;lt;nowiki&amp;gt;__TOC__&amp;lt;/nowiki&amp;gt; to the page (like this page) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 01:22, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Another useful link I bookmarked recently is [http://meta.wikimedia.org/wiki/Cheatsheet this MediaWiki cheatsheet]. I tend to check [http://mediawiki.org mediawiki.org], or just Google (eg, ''mediawiki namespaces'') when I'm looking for something specific. There's a lot of good info out there because so many people use MediaWiki. But I've learned a lot of what I know from people like Nat and [[User:AaronR|AaronR]] doing stuff on this wiki. =) --[[User:Voidious|Voidious]] 01:30, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Hey, you won't believe me that this is the first wiki (beside the old one) I've working on. I learn the thing from what AaronR and [[User:Nfwu|Nfwu]] used to done actually. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 01:52, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks guys, I'm too dinosaur-ish for web related stuff. This is the first wiki I've been, and have been moderator of two forums, but there I'm just as dumb as I am here :-P. --[[User:Zyx|zyx]] 01:56, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Handle ==&lt;br /&gt;
&lt;br /&gt;
I always realized that your handle was the last 3 letters in the alphabet, but it only just occurred to me that this is like the opposite of &amp;quot;[[User:ABC|ABC]]&amp;quot;. I'm curious if that is intentional or just coincidence? (To be clear, I mean if it's inspired by ABC the Robocoder or not.) Kind of funny that two of our PL kings have such similar handles. =) --[[User:Voidious|Voidious]] 18:16, 4 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I think it is coincidence, because his email is zyx###@gmail.com (### replace with number, I don't remember which) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 08:49, 5 August 2009 (UTC)&lt;br /&gt;
: It is a coincidence, I've been using zyx since nintendo times :). --[[User:Zyx|zyx]] 11:56, 5 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Melee Testing ==&lt;br /&gt;
How do you guys test melee bots? Not tool-wise, I know [[Voidious]] patched [[RoboResearch]] which I will probably use to test the melee bot as well soon. But I mean battle-wise, I was testing with the top 6 bots from different authors and 2 ''random'' middle bots, the other two spots were taken by two versions of my bots and ran 100 round battles and compare the results of my two bots to decide which one is better. But I knew that testing wasn't suitable, YersiniaPestis 3.0 can beat [[Shadow]], [[Aleph]] a lot of times (~40% of times beats one of them), [[Portia]] every now and then and [[Fermat]] every time under that circumstances, but I knew that in reality battles don't such a high concentration of top bots so results were kind of irrelevant as rumble performance meant. Thanks. --[[User:Zyx|zyx]] 21:03, 19 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Well, I struggle with this too, but my attitude is to try to emulate the same mixes of bots that you'll face in the rumble. So you'd want the same range of skill levels, some battles with all weak bots, some with mid-range bots, and some with stronger bots. Right now my test bed is 27 bots, split into 6 groups (with each bot appearing twice), and I'll run ~20 seasons. For many versions of [[Diamond]] in a row, this was accurately predicting a rating increase or not. Then I released a version without much testing, its rumble rating went up, but I ran the test afterward and the score went down. :-/ So I'm still figuring it out myself, really. If you're curious about my test bed, it's here: [http://www.dijitari.com/void/robocode/dibed6.rrc dibed6.rrc]. Good luck, and please let us know if you make any Melee test bed breakthroughs. =) --[[User:Voidious|Voidious]] 21:30, 19 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks, I'll check it later. If I do, I will. --[[User:Zyx|zyx]]&lt;br /&gt;
&lt;br /&gt;
== Google Code Jam ==&lt;br /&gt;
I don't know if any of you like programming contests, but I'm actually a devoted contestant of those. Next week the Google Code Jam begins, which is an online contest similar to the ACM-ICPC or TopCoder contests but it has its differences, specially in the format and languages you can use (any language is fine, even BrainF#@k). I'll be participating in it, if anyone is interested in learing more about it go to [http://code.google.com/codejam/ CodeJam 2009]. Hope at least some of you find it interesting so we can meet there. --[[User:Zyx|zyx]] 16:38, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Good AI Books ==&lt;br /&gt;
&lt;br /&gt;
Background: Buying books in Venezuela sucks, they are old, translated(I like to read the original author) and expensive.&lt;br /&gt;
&lt;br /&gt;
My mom is currently visiting my brother in the UK, I always buy some books when she is over there since I love reading scientific or technical books. Currently I'm looking to expand my AI books collection since it is rather poor, and I thought maybe some of you could help me find a good choice. I already have ''Artificial Intelligence: A Modern Approach'' of Norvig and Russell, although it's the first edition and in Spanish so I'm considering the second edition in English. But besides that one which good AI books can you recommend? Also I have a couple of NN books so I would be more interested in something either general or specific to other subjects, but if you have a good NN book to recommend I wouldn't mind hearing and reading about it as well. Thanks in advance. --[[User:Zyx|zyx]] 01:16, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't have any &amp;quot;general AI&amp;quot; books (could use some recommendations too) but the favourite of the ones I have is &amp;quot;Reinforcement Learning&amp;quot; by Sutton &amp;amp; Barto.  As a bonus, it's actually [http://www.cs.ualberta.ca/~sutton/book/the-book.html available online].  [[Leon]] and early versions of [[Pris]] use concepts from this book.  For NN I have &amp;quot;Fundamentals of Neural Networks&amp;quot; by Fausett, but there are many more practical resources scattered about online.  For example, [http://www.ai-junkie.com/ &amp;quot;ai-junkie] has some great tutorials on NN and genetic algorithms. --[[User:Darkcanuck|Darkcanuck]] 06:42, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if you find it usefull, but at the university I study at we're using ''Artificial Intelligence, structures and strategies for complex problem solving'' by George F. Luger. It's been pretty general so far (I'm at chapter 4, and it has mostly been about treesearching strategies), and it's also nice to read. I'm wondering if I can incoorperate anything in robots...   --[[User:Positive|Positive]] 17:35, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: For an ''Intro to Machine Learning'' class I took in my last semester of CS, one of the books we used was this: [http://www.inference.phy.cam.ac.uk/mackay/itila/ Information Theory, Inference, and Learning Algorithms, by David MacKay]. The physical version of the book is sold normally, but you can download a PDF of the entire book for free as long as you agree not to print it out. I remember it being pretty &amp;quot;dense&amp;quot;, as was the class, but I learned a lot. The only other book I can think of to mention is one that [[User:PEZ|PEZ]] talked about a bit: [http://www.randomhouse.com/features/wisdomofcrowds/ The Wisdom of Crowds, by James Surowiecki]. (PEZ talks about it here: [[oldwiki:CrowdTargeting]].) Good luck - let us know how your search turns out. =) --[[User:Voidious|Voidious]] 17:49, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks for all your responses, I won't buy the books recommended by [[Darkcanuck]] (the first one) and [[Voidious]] because I can download them and I have to save every penny, in Venezuela we have exchange control right now and we are only allowed to spend $400 on Internet each year :-S. The NN book, well I have some and as he said ai-junkie is a great place. The book [[Positive]] posted is really inexpensive so I was excited at first, but I read a bit on the Amazon preview and it seems fine but rather basic, I already have 3 undergraduate AI courses and I'm actually looking to do some graduate level studies now.&lt;br /&gt;
&lt;br /&gt;
I will buy the second edition of ''A Modern Approach'' of Norvig and Russell as it seems to be the most recommended book all around the world, to have it as a reference rather than reading it in depth again. And just to please my self I will buy the first 2 books from the ''AI Game Programming Wisdom'' series, they seems to be in the same fashion as the Game Programming Gems series which I found to be amazingly interesting when I first read them. Thanks all, and I hope you get something out it as well. My mom comes back next week, I'll let you know then how good or bad the books end up being. --[[User:Zyx|zyx]] 21:36, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I forgot to mention ''The Wisdom of Crowds'' is not an AI book, the author is a journalist and not a scientific in any way, I already mentioned some of this once [[Nat]] asked a question about it, but is actually more a psychological on how a crowd of people behaves. I think it had very positive feedback from people who read it for fun and very negative feedback from people who wanted it for scientific reasons, I read a bit of it long time ago and didn't find it very interesting but I myself only like scientific reading. --[[User:Zyx|zyx]] 21:43, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Google sites got disabled? ==&lt;br /&gt;
&lt;br /&gt;
Just to let you know, it seems your Google sites account recently got disabled &amp;quot;because of a perceived violation of the Terms of Service&amp;quot;. Got all your robots hosted there on the participants lists switched over to the Darkcanuck's mirror. --[[User:Rednaxela|Rednaxela]] 06:11, 30 April 2010 (UTC)&lt;br /&gt;
: Hi, thanks for this. However, I just checked and seems the Google site is working again, I don't use it for anything else than this robots. Hopefully it still works because I want to try doing some robocoding again. --[[User:Zyx|zyx]] 03:31, 15 October 2010 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Codefest Winnings ==&lt;br /&gt;
&lt;br /&gt;
Hey Zyx, have you been contacted by anybody at Codefest about the prize money? I have yet to hear from anyone and am wondering if I'm alone in this situation. --[[User:KID|KID]] 13:33, 25 April 2011 (UTC)&lt;br /&gt;
: This is probably very late, I received the email like a week ago (around May 4th or 5th), but I saw your prize is marked as dispatching, so I guess you received it too. Sorry for the late reply, been too busy to check robo wiki. --[[User:Zyx|zyx]] 20:58, 10 May 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18800</id>
		<title>Talk:DeltaSquad</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18800"/>
		<updated>2011-03-16T13:09:04Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Virtual Combat */ signature dyslexia continues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problems Running Teams ==&lt;br /&gt;
&lt;br /&gt;
So I've been having some problems running teams in robocode. When I create a team and go to run it I get something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Boss&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Fixer&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Sev&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Scorch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The funny thing is that those robots aren't even located in /home/brian/robocode/robots, they're off in my eclipse workspace. Anyone else have this problem? Know how to fix it? Could it be a bug in robocode? -- [[User:KID|KID]] 14:58, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Which robocode version do you use? I know some version of robocode have this bug, but I think it is fixed. ([https://sourceforge.net/tracker/?func=detail&amp;amp;aid=2585615&amp;amp;group_id=37202&amp;amp;atid=419486 bug report]) I it is not, then report it :-) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 23:50, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Virtual Combat ==&lt;br /&gt;
&lt;br /&gt;
Hey cool, and looks like you're #1 and undefeated so far? Nice job! =) And good luck! --[[User:Voidious|Voidious]] 23:31, 8 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks, dude! I'm trying not to let my head get to big right now as there is still a lot of time in phase 1, but I am still going to enjoy my time at the top. :-) Seeing as I was never able to make it there here... --[[User:KID|KID]] 04:48, 9 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congratulations to [[User:KID|KID]] (and I think his father), [[DeltaSquad]] is the champion of virtual combat. The finals were a tough winner of 2 out of 3 matches against my team, [[Untouchable]], and even when my team had previously beaten [[DeltaSquad]] a good number of times. [[DeltaSquad]] much more robust team crushed [[Untouchable]] to ashes for an amazing and well deserved championship win. Congrats again, since day one I knew your's was the only team that would really put up a challenge and have been waiting for the finals against you ever since. Good job. (Battles can be watched at http://codefest.org.in/vc-tournament.php) --[[User:Zyx|zyx]] 17:23, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, cool to hear you guys ended up #1 and #2! I checked up on the results a few times and saw Untouchable had overtaken DeltaSquad, but had no idea zyx was behind it. Congrats to you both! It would be cool to read any thoughts you guys want to share about the experience. Was the rule set interesting enough to inspire a new tournament or rumble format here at the RoboWiki? Or just revive any interest in normal team battles or [[Twin Duel]]? --[[User:Voidious|Voidious]] 18:05, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks. I think the basics of the rules are interesting enough to make a branch, however, they need a lot of polishing to make the battles more intense. Sometimes they are too short and luck plays a huge role, luck is always important in Robocode, but there were times it was too much. Another problem is that I think they built the system on a relatively unstable version of the base code, I don't how hard or easy is to use their extension in a more stable version of Robocode. For me it also gave enough encouragement to finally write a team bot, so hopefully I will sometime write an eternal rumble team. However, I am so time constrained right now that I even had to hide this tournament from my significant other and code late at night so she wouldn't know, I sort of put university work aside for the moment. As soon as my schedule frees I will however retake my Robocode addiction to some degree :), I just love it. I drifted, summarizing, I really think the capture the flag mode is interesting enough to have a tournament based on it, but lots of work is still needed to make it as stable and fair as the current eternal rumble is. About [[TwinDuel]], I think is great, but I am a mega bot author, I can't really write anything adequate in a codesize restrained environment. --[[User:Zyx|zyx]] 18:30, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Luck did play a lot into the competition, which I very much did not like, but in some respects it is the same in Robocode. Good starting locations can be a '''huge''' factor in who wins a melee battle for example. When competitions are based solely off single battle results and not off multiple battles the final results, in my opinion, cannot be trusted. I still believe that if a rating were to be assigned to both DeltaSquad and Untouchable like in the rumble, Untouchable would come out on top. I think, as you said yourself [[User:Zyx|zyx]], being robust is about the only thing that DeltaSquad has over Untouchable. --[[User:KID|KID]] 04:16, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thank you sir! I thought for sure you would take the final win. I thought I might sneak out a win with just one battle but thought for sure you would take me with the best of 3. I also got really scared after FedeeTeam beat me during the tournament... Yes, it was my dad, but he just joined because I thought you '''had''' to have two people to have a team. :-P&lt;br /&gt;
&lt;br /&gt;
I thought the competition was awesome! It was really cool to throw in the two new things of capture the flag and obstacles. In my mind, the later brought the most fun initially, but the combination of the two created a '''huge''' path-finding challenge in the end. I never did put any of my experiments in the field but was working on them throughout the entire competition. I would love to hear how [[User:Zyx|zyx]] worked on these new elements and would be willing to share all my source code as usual.&lt;br /&gt;
&lt;br /&gt;
As far as adding new competitions to the rumble, I think it would be fun and definitely revived my interest, but the actual program needs some work and maybe even some of the rules adjusted a little bit. The program stalled every once in a while, the pause didn't work after a flag was returned, and some other things I don't remember. While I thought only getting the closest point was a cool way to work the obstacles, the angle and distance made the points really inconsistent. Something to consider at least. Just my thoughts.&lt;br /&gt;
&lt;br /&gt;
--[[User:KID|KID]] 18:32, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just to address the problem you faced: original codebase of this tournament (which is custom-battlefield branch in Robocode SVN) is extremely unstable. The obstacle and other API isn't synchronised into the Roboccode core correctly, and it is based on early Robocode 1.7. At least two or three developers are brainstorming and working on this branch of Robocode.&lt;br /&gt;
&lt;br /&gt;
Congratulations too! This area of Robocode is really unexplored. This tournament really did bring new light into Robocode. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:23, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I do realize that it was based off a branch of an earlier version of Robocode and am in no way &amp;quot;complaining,&amp;quot; just pointing out some areas that needed work if this were to ever be streamlined. I do believe that if some work was put into updating it to recent versions we could have a very fun new game play for Robocode. --[[User:KID|KID]] 04:16, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats! It's interesting to see how this went! Like Voidious, I also checked up on it a few times and Untouchable doing well, but unaware it was zyx. --[[User:Rednaxela|Rednaxela]] 03:08, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I knew that he had to be from the wiki as soon as he started beating me! :-P --[[User:KID|KID]] 04:16, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I knew [[DeltaSquad]]'s author was from the wiki as soon as hi spun his radar, it wasn't a simple Double.POSITIVE_INFINITY. Somehow I read &amp;quot;robotikdude&amp;quot; as &amp;quot;robotkiddude&amp;quot; and immediately thought of [[User:KID|KID]]. Mostly because when I started robocoding I downloaded bots randomly, two impressed me deeply [[Shadow]] and [[Gladiator]], so I have always considered [[User:KID|KID]] one of the reasons I fully joined Robocode. --[[User:Zyx|zyx]] 13:09, 16 March 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18799</id>
		<title>Talk:DeltaSquad</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18799"/>
		<updated>2011-03-16T13:08:03Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Virtual Combat */ I knew you&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problems Running Teams ==&lt;br /&gt;
&lt;br /&gt;
So I've been having some problems running teams in robocode. When I create a team and go to run it I get something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Boss&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Fixer&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Sev&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Scorch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The funny thing is that those robots aren't even located in /home/brian/robocode/robots, they're off in my eclipse workspace. Anyone else have this problem? Know how to fix it? Could it be a bug in robocode? -- [[User:KID|KID]] 14:58, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Which robocode version do you use? I know some version of robocode have this bug, but I think it is fixed. ([https://sourceforge.net/tracker/?func=detail&amp;amp;aid=2585615&amp;amp;group_id=37202&amp;amp;atid=419486 bug report]) I it is not, then report it :-) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 23:50, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Virtual Combat ==&lt;br /&gt;
&lt;br /&gt;
Hey cool, and looks like you're #1 and undefeated so far? Nice job! =) And good luck! --[[User:Voidious|Voidious]] 23:31, 8 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks, dude! I'm trying not to let my head get to big right now as there is still a lot of time in phase 1, but I am still going to enjoy my time at the top. :-) Seeing as I was never able to make it there here... --[[User:KID|KID]] 04:48, 9 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congratulations to [[User:KID|KID]] (and I think his father), [[DeltaSquad]] is the champion of virtual combat. The finals were a tough winner of 2 out of 3 matches against my team, [[Untouchable]], and even when my team had previously beaten [[DeltaSquad]] a good number of times. [[DeltaSquad]] much more robust team crushed [[Untouchable]] to ashes for an amazing and well deserved championship win. Congrats again, since day one I knew your's was the only team that would really put up a challenge and have been waiting for the finals against you ever since. Good job. (Battles can be watched at http://codefest.org.in/vc-tournament.php) --[[User:Zyx|zyx]] 17:23, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, cool to hear you guys ended up #1 and #2! I checked up on the results a few times and saw Untouchable had overtaken DeltaSquad, but had no idea zyx was behind it. Congrats to you both! It would be cool to read any thoughts you guys want to share about the experience. Was the rule set interesting enough to inspire a new tournament or rumble format here at the RoboWiki? Or just revive any interest in normal team battles or [[Twin Duel]]? --[[User:Voidious|Voidious]] 18:05, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks. I think the basics of the rules are interesting enough to make a branch, however, they need a lot of polishing to make the battles more intense. Sometimes they are too short and luck plays a huge role, luck is always important in Robocode, but there were times it was too much. Another problem is that I think they built the system on a relatively unstable version of the base code, I don't how hard or easy is to use their extension in a more stable version of Robocode. For me it also gave enough encouragement to finally write a team bot, so hopefully I will sometime write an eternal rumble team. However, I am so time constrained right now that I even had to hide this tournament from my significant other and code late at night so she wouldn't know, I sort of put university work aside for the moment. As soon as my schedule frees I will however retake my Robocode addiction to some degree :), I just love it. I drifted, summarizing, I really think the capture the flag mode is interesting enough to have a tournament based on it, but lots of work is still needed to make it as stable and fair as the current eternal rumble is. About [[TwinDuel]], I think is great, but I am a mega bot author, I can't really write anything adequate in a codesize restrained environment. --[[User:Zyx|zyx]] 18:30, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Luck did play a lot into the competition, which I very much did not like, but in some respects it is the same in Robocode. Good starting locations can be a '''huge''' factor in who wins a melee battle for example. When competitions are based solely off single battle results and not off multiple battles the final results, in my opinion, cannot be trusted. I still believe that if a rating were to be assigned to both DeltaSquad and Untouchable like in the rumble, Untouchable would come out on top. I think, as you said yourself [[User:Zyx|zyx]], being robust is about the only thing that DeltaSquad has over Untouchable. --[[User:KID|KID]] 04:16, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thank you sir! I thought for sure you would take the final win. I thought I might sneak out a win with just one battle but thought for sure you would take me with the best of 3. I also got really scared after FedeeTeam beat me during the tournament... Yes, it was my dad, but he just joined because I thought you '''had''' to have two people to have a team. :-P&lt;br /&gt;
&lt;br /&gt;
I thought the competition was awesome! It was really cool to throw in the two new things of capture the flag and obstacles. In my mind, the later brought the most fun initially, but the combination of the two created a '''huge''' path-finding challenge in the end. I never did put any of my experiments in the field but was working on them throughout the entire competition. I would love to hear how [[User:Zyx|zyx]] worked on these new elements and would be willing to share all my source code as usual.&lt;br /&gt;
&lt;br /&gt;
As far as adding new competitions to the rumble, I think it would be fun and definitely revived my interest, but the actual program needs some work and maybe even some of the rules adjusted a little bit. The program stalled every once in a while, the pause didn't work after a flag was returned, and some other things I don't remember. While I thought only getting the closest point was a cool way to work the obstacles, the angle and distance made the points really inconsistent. Something to consider at least. Just my thoughts.&lt;br /&gt;
&lt;br /&gt;
--[[User:KID|KID]] 18:32, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just to address the problem you faced: original codebase of this tournament (which is custom-battlefield branch in Robocode SVN) is extremely unstable. The obstacle and other API isn't synchronised into the Roboccode core correctly, and it is based on early Robocode 1.7. At least two or three developers are brainstorming and working on this branch of Robocode.&lt;br /&gt;
&lt;br /&gt;
Congratulations too! This area of Robocode is really unexplored. This tournament really did bring new light into Robocode. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:23, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I do realize that it was based off a branch of an earlier version of Robocode and am in no way &amp;quot;complaining,&amp;quot; just pointing out some areas that needed work if this were to ever be streamlined. I do believe that if some work was put into updating it to recent versions we could have a very fun new game play for Robocode. --[[User:KID|KID]] 04:16, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats! It's interesting to see how this went! Like Voidious, I also checked up on it a few times and Untouchable doing well, but unaware it was zyx. --[[User:Rednaxela|Rednaxela]] 03:08, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I knew that he had to be from the wiki as soon as he started beating me! :-P --[[User:KID|KID]] 04:16, 16 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I knew [[DeltaSquad]]'s author was from the wiki as soon as hi spun his radar, it wasn't a simple Double.POSITIVE_INFINITY. Somehow I read &amp;quot;robotikdude&amp;quot; as &amp;quot;robotkiddude&amp;quot; and immediately thought of [[User:KID|KID]]. Mostly because when I started robocoding I downloaded bots randomly, two impressed me deeply [[Shadow]] and [[Gladiator]], so I have always considered [[User:KID|KID]] one of the reasons I fully joined Robocode. ~~---&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18785</id>
		<title>Talk:DeltaSquad</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18785"/>
		<updated>2011-03-15T18:30:07Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Virtual Combat */ lol, messed signature writing&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problems Running Teams ==&lt;br /&gt;
&lt;br /&gt;
So I've been having some problems running teams in robocode. When I create a team and go to run it I get something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Boss&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Fixer&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Sev&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Scorch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The funny thing is that those robots aren't even located in /home/brian/robocode/robots, they're off in my eclipse workspace. Anyone else have this problem? Know how to fix it? Could it be a bug in robocode? -- [[User:KID|KID]] 14:58, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Which robocode version do you use? I know some version of robocode have this bug, but I think it is fixed. ([https://sourceforge.net/tracker/?func=detail&amp;amp;aid=2585615&amp;amp;group_id=37202&amp;amp;atid=419486 bug report]) I it is not, then report it :-) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 23:50, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Virtual Combat ==&lt;br /&gt;
&lt;br /&gt;
Hey cool, and looks like you're #1 and undefeated so far? Nice job! =) And good luck! --[[User:Voidious|Voidious]] 23:31, 8 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks, dude! I'm trying not to let my head get to big right now as there is still a lot of time in phase 1, but I am still going to enjoy my time at the top. :-) Seeing as I was never able to make it there here... --[[User:KID|KID]] 04:48, 9 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congratulations to [[User:KID|KID]] (and I think his father), [[DeltaSquad]] is the champion of virtual combat. The finals were a tough winner of 2 out of 3 matches against my team, [[Untouchable]], and even when my team had previously beaten [[DeltaSquad]] a good number of times. [[DeltaSquad]] much more robust team crushed [[Untouchable]] to ashes for an amazing and well deserved championship win. Congrats again, since day one I knew your's was the only team that would really put up a challenge and have been waiting for the finals against you ever since. Good job. (Battles can be watched at http://codefest.org.in/vc-tournament.php) --[[User:Zyx|zyx]] 17:23, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, cool to hear you guys ended up #1 and #2! I checked up on the results a few times and saw Untouchable had overtaken DeltaSquad, but had no idea zyx was behind it. Congrats to you both! It would be cool to read any thoughts you guys want to share about the experience. Was the rule set interesting enough to inspire a new tournament or rumble format here at the RoboWiki? Or just revive any interest in normal team battles or [[Twin Duel]]? --[[User:Voidious|Voidious]] 18:05, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks. I think the basics of the rules are interesting enough to make a branch, however, they need a lot of polishing to make the battles more intense. Sometimes they are too short and luck plays a huge role, luck is always important in Robocode, but there were times it was too much. Another problem is that I think they built the system on a relatively unstable version of the base code, I don't how hard or easy is to use their extension in a more stable version of Robocode. For me it also gave enough encouragement to finally write a team bot, so hopefully I will sometime write an eternal rumble team. However, I am so time constrained right now that I even had to hide this tournament from my significant other and code late at night so she wouldn't know, I sort of put university work aside for the moment. As soon as my schedule frees I will however retake my Robocode addiction to some degree :), I just love it. I drifted, summarizing, I really think the capture the flag mode is interesting enough to have a tournament based on it, but lots of work is still needed to make it as stable and fair as the current eternal rumble is. About [[TwinDuel]], I think is great, but I am a mega bot author, I can't really write anything adequate in a codesize restrained environment. --[[User:Zyx|zyx]] 18:30, 15 March 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18784</id>
		<title>Talk:DeltaSquad</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18784"/>
		<updated>2011-03-15T18:28:25Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Virtual Combat */ some thoughts on the experience&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problems Running Teams ==&lt;br /&gt;
&lt;br /&gt;
So I've been having some problems running teams in robocode. When I create a team and go to run it I get something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Boss&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Fixer&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Sev&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Scorch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The funny thing is that those robots aren't even located in /home/brian/robocode/robots, they're off in my eclipse workspace. Anyone else have this problem? Know how to fix it? Could it be a bug in robocode? -- [[User:KID|KID]] 14:58, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Which robocode version do you use? I know some version of robocode have this bug, but I think it is fixed. ([https://sourceforge.net/tracker/?func=detail&amp;amp;aid=2585615&amp;amp;group_id=37202&amp;amp;atid=419486 bug report]) I it is not, then report it :-) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 23:50, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Virtual Combat ==&lt;br /&gt;
&lt;br /&gt;
Hey cool, and looks like you're #1 and undefeated so far? Nice job! =) And good luck! --[[User:Voidious|Voidious]] 23:31, 8 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks, dude! I'm trying not to let my head get to big right now as there is still a lot of time in phase 1, but I am still going to enjoy my time at the top. :-) Seeing as I was never able to make it there here... --[[User:KID|KID]] 04:48, 9 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congratulations to [[User:KID|KID]] (and I think his father), [[DeltaSquad]] is the champion of virtual combat. The finals were a tough winner of 2 out of 3 matches against my team, [[Untouchable]], and even when my team had previously beaten [[DeltaSquad]] a good number of times. [[DeltaSquad]] much more robust team crushed [[Untouchable]] to ashes for an amazing and well deserved championship win. Congrats again, since day one I knew your's was the only team that would really put up a challenge and have been waiting for the finals against you ever since. Good job. (Battles can be watched at http://codefest.org.in/vc-tournament.php) --[[User:Zyx|zyx]] 17:23, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, cool to hear you guys ended up #1 and #2! I checked up on the results a few times and saw Untouchable had overtaken DeltaSquad, but had no idea zyx was behind it. Congrats to you both! It would be cool to read any thoughts you guys want to share about the experience. Was the rule set interesting enough to inspire a new tournament or rumble format here at the RoboWiki? Or just revive any interest in normal team battles or [[Twin Duel]]? --[[User:Voidious|Voidious]] 18:05, 15 March 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks. I think the basics of the rules are interesting enough to make a branch, however, they need a lot of polishing to make the battles more intense. Sometimes they are too short and luck plays a huge role, luck is always important in Robocode, but there were times it was too much. Another problem is that I think they built the system on a relatively unstable version of the base code, I don't how hard or easy is to use their extension in a more stable version of Robocode. For me it also gave enough encouragement to finally write a team bot, so hopefully I will sometime write an eternal rumble team. However, I am so time constrained right now that I even had to hide this tournament from my significant other and code late at night so she wouldn't know, I sort of put university work aside for the moment. As soon as my schedule frees I will however retake my Robocode addiction to some degree :), I just love it. I drifted, summarizing, I really think the capture the flag mode is interesting enough to have a tournament based on it, but lots of work is still needed to make it as stable and fair as the current eternal rumble is. About [[TwinDuel]], I think is great, but I am a mega bot author, I can't really write anything adequate in a codesize restrained environment. ~~----&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=EliteTournament/Participants&amp;diff=18782</id>
		<title>EliteTournament/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=EliteTournament/Participants&amp;diff=18782"/>
		<updated>2011-03-15T17:48:55Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Participants List */ Retired Ant from micro tournament, I think is defeating the purpose of this tournament and became the weak to pray on.RedBull is similar but left since only other 2 in nano.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of robots entered into the EliteTournament. It should be alphabetized by username. If you enter a bot that is not a participant in the RoboRumble, please provide a link to download that robot. Please also include version numbers in your robot names&lt;br /&gt;
== Participants List ==&lt;br /&gt;
[[User:CrazyBassoonist|CrazyBassoonist]]:&lt;br /&gt;
:Mega-None&lt;br /&gt;
:Mini-oog.mini.AlphaDragon 0.1&lt;br /&gt;
:Micro-oog.micro.SavantMicro 1.0&lt;br /&gt;
:Nano-oog.nano.Fuatisha 1.0&lt;br /&gt;
:Extends Robot: oog.robot.CapulRobot 1.0 (available from robocoderepository.com)&lt;br /&gt;
:Implements Droid: oog.droid.Pirate 1.0 (available from robocoderepository.com)&lt;br /&gt;
&lt;br /&gt;
[[User:Nat|Nat]]&lt;br /&gt;
: Mega: nat.Samekh 0.3&lt;br /&gt;
: Mini: None&lt;br /&gt;
: Micro: nat.nano.Ocnirp 1.61b (I know, but I can resist ;))&lt;br /&gt;
: Nano: nat.nano.Ocnirp 1.61b&lt;br /&gt;
: Extends Robot: None&lt;br /&gt;
: Implements Droid: nat.droid.Toddler 1.0&lt;br /&gt;
''(all available from http://nat.robothai.net/robots)''&lt;br /&gt;
&lt;br /&gt;
[[User:Rednaxela|Rednaxela]]:&lt;br /&gt;
:Mega-ags.rougedc.RougeDC willow [http://rednaxela-robocode.dyndns.org/data/robots/ags.rougedc.RougeDC_willow.jar]&lt;br /&gt;
:Mini-None&lt;br /&gt;
:Micro-ags.micro.Carpet 1.1 [http://rednaxela-robocode.dyndns.org/data/robots/ags.micro.Carpet_1.1.jar]&lt;br /&gt;
:Nano-None&lt;br /&gt;
:Extends Robot: None&lt;br /&gt;
:Implements Droid: None&lt;br /&gt;
&lt;br /&gt;
[[User:Skilgannon|Skilgannon]]&lt;br /&gt;
:Mega-jk.mega.DrussGT 1.9.0b&lt;br /&gt;
:Mini-jk.mini.CunobelinDC 0.6&lt;br /&gt;
:Micro-jk.micro.Toorkild 0.2.4b&lt;br /&gt;
:Nano-None&lt;br /&gt;
:Extends Robot-None&lt;br /&gt;
:Implements Droid-None&lt;br /&gt;
(All bots are available for download at http://minifly.rchomepage.com/robocode )&lt;br /&gt;
&lt;br /&gt;
[[User:Voidious|Voidious]]&lt;br /&gt;
:Mega-voidious.Diamond 1.5.34 [http://www.dijitari.com/void/robocode/voidious.Diamond_1.5.34.jar]&lt;br /&gt;
:Mini-voidious.mini.Komarious 1.88 [http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar]&lt;br /&gt;
:Micro-voidious.micro.Jen 1.11 [http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar]&lt;br /&gt;
:Nano-None&lt;br /&gt;
:Extends Robot-None&lt;br /&gt;
:Implements Droid-None&lt;br /&gt;
&lt;br /&gt;
[[User:Zyx|Zyx]]&lt;br /&gt;
:Mega-zyx.mega.YersiniaPestis 3.0 [http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_3.0.jar]&lt;br /&gt;
:Mini-None&lt;br /&gt;
:Micro-None&lt;br /&gt;
:Nano-zyx.nano.RedBull 1.0 [http://darkcanuck.net/rumble/robots/zyx.nano.RedBull_1.0.jar]&lt;br /&gt;
:Extends Robot-None&lt;br /&gt;
:Implements Droid-None&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18781</id>
		<title>Talk:DeltaSquad</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:DeltaSquad&amp;diff=18781"/>
		<updated>2011-03-15T17:23:06Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Virtual Combat */ Congrats to the campion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Problems Running Teams ==&lt;br /&gt;
&lt;br /&gt;
So I've been having some problems running teams in robocode. When I create a team and go to run it I get something like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Boss&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Fixer&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Sev&lt;br /&gt;
Aborting battle, could not find robot: /home/brian/robocode/robotskid.team.Scorch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The funny thing is that those robots aren't even located in /home/brian/robocode/robots, they're off in my eclipse workspace. Anyone else have this problem? Know how to fix it? Could it be a bug in robocode? -- [[User:KID|KID]] 14:58, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Which robocode version do you use? I know some version of robocode have this bug, but I think it is fixed. ([https://sourceforge.net/tracker/?func=detail&amp;amp;aid=2585615&amp;amp;group_id=37202&amp;amp;atid=419486 bug report]) I it is not, then report it :-) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 23:50, 25 March 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Virtual Combat ==&lt;br /&gt;
&lt;br /&gt;
Hey cool, and looks like you're #1 and undefeated so far? Nice job! =) And good luck! --[[User:Voidious|Voidious]] 23:31, 8 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks, dude! I'm trying not to let my head get to big right now as there is still a lot of time in phase 1, but I am still going to enjoy my time at the top. :-) Seeing as I was never able to make it there here... --[[User:KID|KID]] 04:48, 9 February 2011 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congratulations to [[User:KID|KID]] (and I think his father), [[DeltaSquad]] is the champion of virtual combat. The finals were a tough winner of 2 out of 3 matches against my team, [[Untouchable]], and even when my team had previously beaten [[DeltaSquad]] a good number of times. [[DeltaSquad]] much more robust team crushed [[Untouchable]] to ashes for an amazing and well deserved championship win. Congrats again, since day one I knew your's was the only team that would really put up a challenge and have been waiting for the finals against you ever since. Good job. (Battles can be watched at http://codefest.org.in/vc-tournament.php) --[[User:Zyx|zyx]] 17:23, 15 March 2011 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=EliteTournament/Participants&amp;diff=18615</id>
		<title>EliteTournament/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=EliteTournament/Participants&amp;diff=18615"/>
		<updated>2011-02-26T04:48:38Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Participants List */ - Zyx Enters EliteTournament&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is a list of robots entered into the EliteTournament. It should be alphabetized by username. If you enter a bot that is not a participant in the RoboRumble, please provide a link to download that robot. Please also include version numbers in your robot names&lt;br /&gt;
== Participants List ==&lt;br /&gt;
[[User:CrazyBassoonist|CrazyBassoonist]]:&lt;br /&gt;
:Mega-None&lt;br /&gt;
:Mini-oog.mini.AlphaDragon 0.1&lt;br /&gt;
:Micro-oog.micro.SavantMicro 1.0&lt;br /&gt;
:Nano-oog.nano.Fuatisha 1.0&lt;br /&gt;
:Extends Robot: oog.robot.CapulRobot 1.0 (available from robocoderepository.com)&lt;br /&gt;
:Implements Droid: oog.droid.Pirate 1.0 (available from robocoderepository.com)&lt;br /&gt;
&lt;br /&gt;
[[User:Nat|Nat]]&lt;br /&gt;
: Mega: nat.Samekh 0.3&lt;br /&gt;
: Mini: None&lt;br /&gt;
: Micro: nat.nano.Ocnirp 1.61b (I know, but I can resist ;))&lt;br /&gt;
: Nano: nat.nano.Ocnirp 1.61b&lt;br /&gt;
: Extends Robot: None&lt;br /&gt;
: Implements Droid: nat.droid.Toddler 1.0&lt;br /&gt;
''(all available from http://nat.robothai.net/robots)''&lt;br /&gt;
&lt;br /&gt;
[[User:Rednaxela|Rednaxela]]:&lt;br /&gt;
:Mega-ags.rougedc.RougeDC willow [http://rednaxela-robocode.dyndns.org/data/robots/ags.rougedc.RougeDC_willow.jar]&lt;br /&gt;
:Mini-None&lt;br /&gt;
:Micro-ags.micro.Carpet 1.1 [http://rednaxela-robocode.dyndns.org/data/robots/ags.micro.Carpet_1.1.jar]&lt;br /&gt;
:Nano-None&lt;br /&gt;
:Extends Robot: None&lt;br /&gt;
:Implements Droid: None&lt;br /&gt;
&lt;br /&gt;
[[User:Skilgannon|Skilgannon]]&lt;br /&gt;
:Mega-jk.mega.DrussGT 1.9.0b&lt;br /&gt;
:Mini-jk.mini.CunobelinDC 0.6&lt;br /&gt;
:Micro-jk.micro.Toorkild 0.2.4b&lt;br /&gt;
:Nano-None&lt;br /&gt;
:Extends Robot-None&lt;br /&gt;
:Implements Droid-None&lt;br /&gt;
(All bots are available for download at http://minifly.rchomepage.com/robocode )&lt;br /&gt;
&lt;br /&gt;
[[User:Voidious|Voidious]]&lt;br /&gt;
:Mega-voidious.Diamond 1.5.34 [http://www.dijitari.com/void/robocode/voidious.Diamond_1.5.34.jar]&lt;br /&gt;
:Mini-voidious.mini.Komarious 1.88 [http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar]&lt;br /&gt;
:Micro-voidious.micro.Jen 1.11 [http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar]&lt;br /&gt;
:Nano-None&lt;br /&gt;
:Extends Robot-None&lt;br /&gt;
:Implements Droid-None&lt;br /&gt;
&lt;br /&gt;
[[User:Zyx|Zyx]]&lt;br /&gt;
:Mega-zyx.mega.YersiniaPestis 3.0 [http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_3.0.jar]&lt;br /&gt;
:Mini-None&lt;br /&gt;
:Micro-zyx.micro.Ant 1.1 [http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar]&lt;br /&gt;
:Nano-zyx.nano.RedBull 1.0 [http://darkcanuck.net/rumble/robots/zyx.nano.RedBull_1.0.jar]&lt;br /&gt;
:Extends Robot-None&lt;br /&gt;
:Implements Droid-None&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=17601</id>
		<title>RoboRumble/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=17601"/>
		<updated>2010-10-15T09:26:07Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Retired YersiniaPestis 3.4.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:RoboRumble/Navigation}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just add your bot name ('''as appears in the Robocode selector after packaging''', so including versionnumber) and the RobocodeRepository id number separated by &amp;quot;,&amp;quot; (there must be no space after the comma).&amp;lt;br&amp;gt; &lt;br /&gt;
Please, make sure your bot is not in the list before adding it, and delete the old version if you are adding a new one.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The list is in '''alphabetical''' order. Add your bot in the right slot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ab.DengerousRoBatra 1.3,http://www.robocoderepository.com/BotFiles/3664/ab.DengerousRoBatra_1.3.jar&lt;br /&gt;
abc.Shadow 3.83c,http://robocode.aclsi.pt/abc.Shadow_3.83c.jar&lt;br /&gt;
abc.tron3.Tron 3.11,http://www.robocoderepository.com/BotFiles/2205/abc.tron3.Tron_3.11.jar&lt;br /&gt;
abc.Tron 2.02,http://www.robocoderepository.com/BotFiles/241/abc.Tron_2.02.jar&lt;br /&gt;
abud.ThirdRobo 1.0,http://www.robocoderepository.com/BotFiles/2479/abud.ThirdRobo_1.0.jar&lt;br /&gt;
ad.last.Bottom 1.0,http://www.robocoderepository.com/BotFiles/1876/ad.last.Bottom_1.0.jar&lt;br /&gt;
ad.Quest 0.10,http://www.robocoderepository.com/BotFiles/1846/ad.Quest_0.10.jar&lt;br /&gt;
adt.Ar1 2.1,http://www.robocoderepository.com/BotFiles/2254/adt.Ar1_2.1.jar&lt;br /&gt;
adt.Ar2 1.0,http://www.robocoderepository.com/BotFiles/2303/adt.Ar2_1.0.jar&lt;br /&gt;
ag.Gir 0.99,http://www.robocoderepository.com/BotFiles/3065/ag.Gir_0.99.jar&lt;br /&gt;
agd.Mooserwirt2 2.7,http://www.glyndavies.org/robocode/agd.Mooserwirt2.jar&lt;br /&gt;
ags.Glacier 0.2.7,http://homepages.ucalgary.ca/~agschult/robocode/ags.Glacier_0.2.7.jar&lt;br /&gt;
ags.micro.Carpet 1.1,http://homepages.ucalgary.ca/~agschult/robocode/ags.micro.Carpet_1.1.jar&lt;br /&gt;
ags.Midboss 1s,http://homepages.ucalgary.ca/~agschult/robocode/ags.Midboss_1s.jar&lt;br /&gt;
ags.polished.PolishedRuby 1,http://homepages.ucalgary.ca/~agschult/robocode/ags.polished.PolishedRuby_1.jar&lt;br /&gt;
ags.rougedc.RougeDC willow,http://homepages.ucalgary.ca/~agschult/robocode/ags.rougedc.RougeDC_willow.jar&lt;br /&gt;
ahf.Acero 1.0,http://www.robocoderepository.com/BotFiles/2151/ahf.Acero_1.0.jar&lt;br /&gt;
ahf.NanoAndrew .4,http://www.robocoderepository.com/BotFiles/2002/ahf.NanoAndrew_.4.jar&lt;br /&gt;
ahf.r2d2.R2d2 0.86,http://www.robocoderepository.com/BotFiles/2035/ahf.r2d2.R2d2_0.86.jar&lt;br /&gt;
ahr.ice.Ice 1.0,http://robocoderepository.com/BotFiles/3966/ahr.ice.Ice_1.0.jar&lt;br /&gt;
AIR.iRobot 1.0,http://www.robocoderepository.com/BotFiles/3205/AIR.iRobot_1.0.jar&lt;br /&gt;
ak.Fermat 2.0,http://www.robocoderepository.com/BotFiles/799/ak.Fermat_2.0.jar&lt;br /&gt;
alex.Diabolo5 1.1,http://darkcanuck.net/rumble/robots/alex.Diabolo5_1.1.jar&lt;br /&gt;
alk.lap.LoudAndProud 2.23,http://www.robocoderepository.com/BotFiles/3601/alk.lap.LoudAndProud_2.23.jar&lt;br /&gt;
altglass.Exterminans2oo8 alpha0328,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_alpha0328.jar&lt;br /&gt;
altglass.Exterminans2oo8 Build0411,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_Build0411.jar&lt;br /&gt;
am.Miedzix 2.0,http://www.robocoderepository.com/BotFiles/3383/am.Miedzix_2.0.jar&lt;br /&gt;
am.Miedzix 3.0,http://darkcanuck.net/rumble/robots/am.Miedzix_3.0.jar&lt;br /&gt;
amarok.Rookie 1.1,http://www.robocoderepository.com/BotFiles/422/amarok.Rookie_1.1.jar&lt;br /&gt;
amk.ChumbaMini 0.2,http://www.robocoderepository.com/BotFiles/2655/amk.ChumbaMini_0.2.jar&lt;br /&gt;
amk.ChumbaWumba 0.3,http://www.robocoderepository.com/BotFiles/2646/amk.ChumbaWumba_0.3.jar&lt;br /&gt;
amk.jointstrike.JointStrike 0.2,http://www.robocoderepository.com/BotFiles/2597/amk.jointstrike.JointStrike_0.2.jar&lt;br /&gt;
amk.ShizzleStiX.ShizzleStiX 0.6,http://www.robocoderepository.com/BotFiles/2603/amk.ShizzleStiX.ShizzleStiX_0.6.jar&lt;br /&gt;
amk.superstrike.SuperStrike 0.3,http://www.robocoderepository.com/BotFiles/2600/amk.superstrike.SuperStrike_0.3.jar&lt;br /&gt;
amk.Punbot.Punbot 0.01,http://www.robocoderepository.com/BotFiles/2604/amk.Punbot.Punbot_0.01.jar&lt;br /&gt;
ao.T100 0.9,http://www.robocoderepository.com/BotFiles/3385/ao.T100_0.9.jar&lt;br /&gt;
ap.Frederick 1.1,http://darkcanuck.net/rumble/robots/ap.Frederick_1.1.jar&lt;br /&gt;
apollokidd.ApolloKidd 0.9,http://www.robocoderepository.com/BotFiles/321/apollokidd.ApolloKidd_0.9.jar&lt;br /&gt;
apv.Aspid 1.7,http://www.robocoderepository.com/BotFiles/1412/apv.Aspid_1.7.jar&lt;br /&gt;
apv.AspidReloaded 0.6,http://www.robocoderepository.com/BotFiles/1985/apv.AspidReloaded_0.6.jar&lt;br /&gt;
apv.LauLectrik 1.2,http://www.robocoderepository.com/BotFiles/1300/apv.LauLectrik_1.2.jar&lt;br /&gt;
apv.MicroAspid 1.8,http://www.robocoderepository.com/BotFiles/2519/apv.MicroAspid_1.8.jar&lt;br /&gt;
apv.NanoLauLectrik 1.0,http://www.robocoderepository.com/BotFiles/1399/apv.NanoLauLectrik_1.0.jar&lt;br /&gt;
apv.NanoLauLectrikTheCannibal 1.1,http://www.robocoderepository.com/BotFiles/2147/apv.NanoLauLectrikTheCannibal_1.1.jar&lt;br /&gt;
apv.ScruchiPu 1.0,http://www.robocoderepository.com/BotFiles/1367/apv.ScruchiPu_1.0.jar&lt;br /&gt;
apv.test.Virus 0.6.1,http://www.robocoderepository.com/BotFiles/2645/apv.test.Virus_0.6.1.jar&lt;br /&gt;
apv.TheBrainPi 0.5fix,http://darkcanuck.net/rumble/robots/apv.TheBrainPi_0.5fix.jar&lt;br /&gt;
ar.horizon.Horizon 1.2.2,http://www.robocoderepository.com/BotFiles/3286/ar.horizon.Horizon_1.2.2.jar&lt;br /&gt;
ar.QuantumChromodynamics 1.2.1,http://www.robocoderepository.com/BotFiles/3220/ar.QuantumChromodynamics_1.2.1.jar&lt;br /&gt;
ar.TheoryOfEverything 1.2.1,http://www.robocoderepository.com/BotFiles/3221/ar.TheoryOfEverything_1.2.1.jar&lt;br /&gt;
ara.Shera 0.88,http://www.robocoderepository.com/BotFiles/1050/ara.Shera_0.88.jar&lt;br /&gt;
areb.Union 1.06,http://www.robocoderepository.com/BotFiles/2893/areb.Union_1.06.jar&lt;br /&gt;
arthord.micro.Apoptygma 0.4,http://www.robocoderepository.com/BotFiles/1688/arthord.micro.Apoptygma_0.4.jar&lt;br /&gt;
arthord.micro.Muffin 0.6.1,http://www.robocoderepository.com/BotFiles/1963/arthord.micro.Muffin_0.6.1.jar&lt;br /&gt;
arthord.KostyaTszyu Beta2,http://www.robocoderepository.com/BotFiles/2322/arthord.KostyaTszyu_Beta2.jar&lt;br /&gt;
arthord.MannyPacquiao Delta2,http://scoutery.awardspace.com/arthord.MannyPacquiao_Delta2.jar&lt;br /&gt;
arthord.NanoSatan Mu,http://www.robocoderepository.com/BotFiles/2157/arthord.NanoSatan_Mu.jar&lt;br /&gt;
arthord.NanoSatanMelee Beta,http://www.robocoderepository.com/BotFiles/2088/arthord.NanoSatanMelee_Beta.jar&lt;br /&gt;
ary.micro.Weak 1.2,http://www.robocoderepository.com/BotFiles/3433/ary.micro.Weak_1.2.jar&lt;br /&gt;
ary.mini.Nimi 1.0,http://www.robocoderepository.com/BotFiles/3397/ary.mini.Nimi_1.0.jar&lt;br /&gt;
ary.nano.AceSurf 1.2,http://www.robocoderepository.com/BotFiles/3352/ary.nano.AceSurf_1.2.jar&lt;br /&gt;
ary.nano.ColorNanoP 1.1,http://www.robocoderepository.com/BotFiles/3629/ary.nano.ColorNanoP_1.1.jar&lt;br /&gt;
ary.Crisis 1.0,http://www.robocoderepository.com/BotFiles/3495/ary.Crisis_1.0.jar&lt;br /&gt;
ary.Help 1.0,http://darkcanuck.net/rumble/robots/ary.Help_1.0.jar&lt;br /&gt;
ary.FourWD 1.3d,http://darkcanuck.net/rumble/robots/ary.FourWD_1.3d.jar&lt;br /&gt;
ary.SMG 1.01,http://ary-robocode.110mb.com/ary.SMG_1.01.jar&lt;br /&gt;
as.xbots 1.0,http://darkcanuck.net/rumble/robots/as.xbots_1.0.jar&lt;br /&gt;
asd.Cthulhu 1.2,http://robocode.ilbello.com/asd.Cthulhu_1.2.jar&lt;br /&gt;
asm.Statistas 0.1,http://www.robocoderepository.com/BotFiles/1989/asm.Statistas_0.1.jar&lt;br /&gt;
awesomeness.Elite 1.0,http://robocoderepository.com/BotFiles/3597/awesomeness.Elite.jar&lt;br /&gt;
awl.Locutus 1.0,3844&lt;br /&gt;
axeBots.HataMoto 3.09,http://www.robocoderepository.com/BotFiles/1655/axeBots.HataMoto_3.09.jar&lt;br /&gt;
axeBots.Musashi 2.18,http://www.robocoderepository.com/BotFiles/1759/axeBots.Musashi_2.18.jar&lt;br /&gt;
axeBots.Okami 1.04,http://www.robocoderepository.com/BotFiles/2016/axeBots.Okami_1.04.jar&lt;br /&gt;
axeBots.SilverSurfer 2.53.33fix,http://homepages.ucalgary.ca/~agschult/robocode/axeBots.SilverSurfer_2.53.33fix.jar&lt;br /&gt;
baal.nano.N 1.42,http://webpages.charter.net/eleeleth/Robots/baal.nano.N_1.42.jar&lt;br /&gt;
banshee.mini.Nexus6 0.2.0,http://www.robocoderepository.com/BotFiles/3467/banshee.mini.Nexus6_0.2.0.jar&lt;br /&gt;
banshee.micro.Nexus6 0.3.0,http://www.robocoderepository.com/BotFiles/3473/banshee.micro.Nexus6_0.3.0.jar&lt;br /&gt;
bayen.nano.Squirrel 0.2,http://www.freewebs.com/bayen/files/bayen.nano.Squirrel_0.2.jar&lt;br /&gt;
bayen.nut.Squirrel 1.621,http://darkcanuck.net/rumble/robots/bayen.nut.Squirrel_1.621.jar&lt;br /&gt;
bayen.UbaMicro 1.4,http://www.robocoderepository.com/BotFiles/2830/bayen.UbaMicro_1.4.jar&lt;br /&gt;
bayen.UbaRamLT 1.0,http://www.robocoderepository.com/BotFiles/2868/bayen.UbaRamLT_1.0.jar&lt;br /&gt;
bbo.RamboT 0.3,http://www.robocoderepository.com/BotFiles/2210/bbo.RamboT_0.3.jar&lt;br /&gt;
bbo.TheRoof 1.4.3,http://www.robocoderepository.com/BotFiles/2179/bbo.TheRoof_1.4.3.jar&lt;br /&gt;
Bemo.Sweet30 1.6.1,http://www.stg-volleyball.de/images/Bemo.Sweet30_1.6.1.jar&lt;br /&gt;
benhorner.PureAggression 0.2.6,http://www.robocoderepository.com/BotFiles/3421/benhorner.PureAggression_0.2.6.jar&lt;br /&gt;
bh.PencilRain 0.01,http://www.robocoderepository.com/BotFiles/3670/bh.PencilRain-0.01.jar&lt;br /&gt;
bigpete.Stewie 1.0,http://www.robocoderepository.com/BotFiles/2927/bigpete.Stewie_1.0.jar&lt;br /&gt;
bing2.Melody 1.3.1,http://www.ccs.neu.edu/home/bing/robocode/bing2.Melody_1.3.1.jar&lt;br /&gt;
bjl.LoneDragon 0.5,http://www.robocoderepository.com/BotFiles/1929/bjl.LoneDragon_0.5.jar&lt;br /&gt;
bndl.LostLion 1.2,http://www.robocoderepository.com/BotFiles/1033/bndl.LostLion_1.2.jar&lt;br /&gt;
bons.NanoStalker 1.2,http://www.robocoderepository.com/BotFiles/1179/bons.NanoStalker_1.2.jar&lt;br /&gt;
bp.Kuma 1.0,http://www.robocoderepository.com/BotFiles/3238/bp.Kuma_1.0.jar&lt;br /&gt;
braaropolis.Abot 1.0,http://darkcanuck.net/rumble/robots/braaropolis.Abot_1.0.jar&lt;br /&gt;
brainfade.Fallen 0.63,http://www.robocoderepository.com/BotFiles/2250/brainfade.Fallen_0.63.jar&lt;br /&gt;
brainfade.melee.Dusk 0.44,http://www.robocoderepository.com/BotFiles/2518/brainfade.melee.Dusk_0.44.jar&lt;br /&gt;
buba.Archivist 0.1,http://www.robocoderepository.com/BotFiles/3899/buba.Archivist_0.1.jar&lt;br /&gt;
buba.Buba 0.3,http://www.robocoderepository.com/BotFiles/3896/buba.Buba_0.3.jar&lt;br /&gt;
bvh.fnr.Fenrir 0.36l,http://www.robocoderepository.com/BotFiles/1428/bvh.fnr.Fenrir_0.36l.jar&lt;br /&gt;
bvh.frg.Friga 0.112dev,http://darkcanuck.net/rumble/robots/bvh.frg.Friga_0.112dev.jar&lt;br /&gt;
bvh.fry.Freya 0.82,http://darkcanuck.net/rumble/robots/bvh.fry.Freya_0.82.jar&lt;br /&gt;
bvh.hdr.Hodur 0.4,http://www.robocoderepository.com/BotFiles/1954/bvh.hdr.Hodur_0.4.jar&lt;br /&gt;
bvh.loki.Loki 0.5,http://www.robocoderepository.com/BotFiles/885/bvh.loki.Loki_0.5.jar&lt;br /&gt;
bvh.micro.Freya 0.3,http://www.robocoderepository.com/BotFiles/2815/bvh.micro.Freya_0.3.jar&lt;br /&gt;
bvh.micro.Svadilfari 0.2,http://www.robocoderepository.com/BotFiles/1086/bvh.micro.Svadilfari_0.2.jar&lt;br /&gt;
bvh.mini.Fenrir 0.39,http://www.robocoderepository.com/BotFiles/1429/bvh.mini.Fenrir_0.39.jar&lt;br /&gt;
bvh.mini.Freya 0.55,http://darkcanuck.net/rumble/robots/bvh.mini.Freya_0.55.jar&lt;br /&gt;
bvh.mini.Mjolnir 0.3,http://www.robocoderepository.com/BotFiles/2220/bvh.mini.Mjolnir_0.3.jar&lt;br /&gt;
bvh.mini.Wodan 0.50,http://www.robocoderepository.com/BotFiles/2064/bvh.mini.Wodan_0.50.jar&lt;br /&gt;
bvh.tyr.Tyr 1.74,http://www.robocoderepository.com/BotFiles/886/bvh.tyr.Tyr_1.74.jar&lt;br /&gt;
bzdp.BoxCar 2.0,http://www.robocoderepository.com/BotFiles/3703/bzdp.BoxCar_2.0.jar&lt;br /&gt;
bzdp.Pansy 2.1,http://www.robocoderepository.com/BotFiles/3726/bzdp.Pansy_2.1.jar&lt;br /&gt;
caimano.Furia_Ceca 0.22,http://www.robocoderepository.com/BotFiles/1843/caimano.Furia_Ceca_0.22.jar&lt;br /&gt;
cbot.agile.Nibbler 0.2,http://www.robocoderepository.com/BotFiles/1537/cbot.agile.Nibbler_0.2.jar&lt;br /&gt;
cbot.cbot.CBot 0.8,http://www.robocoderepository.com/BotFiles/1375/cbot.cbot.CBot_0.8.jar&lt;br /&gt;
cf.mini.Chiva 1.0,http://www.robocoderepository.com/BotFiles/2331/cf.mini.Chiva_1.0.jar&lt;br /&gt;
cf.OldMan.OldManXP 0.1,http://www.robocoderepository.com/BotFiles/1968/cf.OldMan.OldManXP_0.1.jar&lt;br /&gt;
cf.proto.Shiva 2.2,http://www.robocoderepository.com/BotFiles/2409/cf.proto.Shiva_2.2.jar&lt;br /&gt;
cf.star.Star2 1.23,http://www.robocoderepository.com/BotFiles/2255/cf.star.Star2_1.23.jar&lt;br /&gt;
ch.rhj.rbc.RHJ1 1.0,http://www.robocoderepository.com/BotFiles/1879/ch.rhj.rbc.RHJ1_1.0.jar&lt;br /&gt;
CharlieN.Omega.Omega 1.03,http://www.robocoderepository.com/BotFiles/3503/CharlieN.Omega.Omega_1.03.jar&lt;br /&gt;
chase.c.Wristwatch 1.0,http://www.csdgn.org/files/bots/chase.c.Wristwatch_1.0.jar&lt;br /&gt;
chase.pm.Pytko 1.0,http://www.csdgn.org/files/bots/chase.pm.Pytko_1.0.jar&lt;br /&gt;
chase.s2.Genesis 1.1,http://www.csdgn.org/files/bots/chase.s2.Genesis_1.1.jar&lt;br /&gt;
chase.s2.Seraphim 2.0.6,http://www.csdgn.org/files/bots/chase.s2.Seraphim_2.0.6.jar&lt;br /&gt;
chickenfuego.UrChicken2 1.0,http://www.robocoderepository.com/BotFiles/3422/chickenfuego.UrChicken2_1.0.jar&lt;br /&gt;
cjk.Merkava 0.1.1,http://www.robocoderepository.com/BotFiles/2637/cjk.Merkava_0.1.1.jar&lt;br /&gt;
cjk.Merkava 0.2.0,http://www.robocoderepository.com/BotFiles/2640/cjk.Merkava_0.2.0.jar&lt;br /&gt;
cjk.Merkava 0.3.0,http://darkcanuck.net/rumble/robots/cjk.Merkava_0.3.0.jar&lt;br /&gt;
cjm.chalk.Chalk 2.6.Be,http://scatterbright.com/robots/cjm.chalk.Chalk_2.6.Be.jar&lt;br /&gt;
cjm.Charo 1.1,http://scatterbright.com/robots/cjm.Charo_1.1.jar&lt;br /&gt;
cjm.Che 1.2,http://www.robocoderepository.com/BotFiles/2703/cjm.Che_1.2.jar&lt;br /&gt;
cjm.Chomsky 1.5,http://scatterbright.com/robots/cjm.Chomsky_1.5.jar&lt;br /&gt;
codemojo.nano.Woot 1.0,http://darkcanuck.net/rumble/robots/codemojo.nano.Woot_1.0.jar&lt;br /&gt;
cs.ExclusionNano 1.1,http://www.csdgn.org/files/bots/cs.ExclusionNano_1.1.jar&lt;br /&gt;
csm.NthGeneration 0.04,http://www.robocoderepository.com/BotFiles/1214/csm.NthGeneration_0.04.jar&lt;br /&gt;
csp.Eagle 3.30,http://www.robocoderepository.com/BotFiles/2436/csp.Eagle_3.30.jar&lt;br /&gt;
css.Delitioner 0.11,http://darkcanuck.net/rumble/robots/css.Delitioner_0.11.jar&lt;br /&gt;
cx.BlestPain 1.41,http://www.robocoderepository.com/BotFiles/1671/cx.BlestPain_1.41.jar&lt;br /&gt;
cx.CigaretBH 1.03,http://www.robocoderepository.com/BotFiles/1414/cx.CigaretBH_1.03.jar&lt;br /&gt;
cx.Lacrimas 1.36,http://www.robocoderepository.com/BotFiles/1820/cx.Lacrimas_1.36.jar&lt;br /&gt;
cx.micro.Blur 0.2,http://www.robocoderepository.com/BotFiles/2447/cx.micro.Blur_0.2.jar&lt;br /&gt;
cx.micro.Smoke 0.96,http://www.robocoderepository.com/BotFiles/1037/cx.micro.Smoke_0.96.jar&lt;br /&gt;
cx.micro.Spark 0.6,http://www.robocoderepository.com/BotFiles/1320/cx.micro.Spark_0.6.jar&lt;br /&gt;
cx.mini.BlackSwans 0.60,http://www.robocoderepository.com/BotFiles/1158/cx.mini.BlackSwans_0.60.jar&lt;br /&gt;
cx.mini.Cigaret 1.31,http://www.robocoderepository.com/BotFiles/1152/cx.mini.Cigaret_1.31.jar&lt;br /&gt;
cx.mini.Nimrod 0.55,http://www.robocoderepository.com/BotFiles/1236/cx.mini.Nimrod_0.55.jar&lt;br /&gt;
cx.nano.Smog 2.6,http://www.robocoderepository.com/BotFiles/1036/cx.nano.Smog_2.6.jar&lt;br /&gt;
cx.Princess 1.0,http://www.robocoderepository.com/BotFiles/1343/cx.Princess_1.0.jar&lt;br /&gt;
da.NewBGank 1.4,http://www.robocoderepository.com/BotFiles/3312/da.NewBGank_1.4.jar&lt;br /&gt;
dam.MogBot 2.9,http://www.robocoderepository.com/BotFiles/555/dam.MogBot_2.9.jar&lt;br /&gt;
dans.Cinnamon 1.2,http://www.robocoderepository.com/BotFiles/1976/dans.Cinnamon_1.2.jar&lt;br /&gt;
darkcanuck.Gaff 1.50,http://darkcanuck.net/rumble/robots/darkcanuck.Gaff_1.50.jar&lt;br /&gt;
darkcanuck.Holden 1.13a,http://darkcanuck.net/rumble/robots/darkcanuck.Holden_1.13a.jar&lt;br /&gt;
darkcanuck.Pris 0.88,http://darkcanuck.net/rumble/robots/darkcanuck.Pris_0.88.jar&lt;br /&gt;
davidalves.Firebird 0.25,http://davidalves.net/robocode/robots/davidalves.Firebird_0.25.jar&lt;br /&gt;
davidalves.Phoenix 1.02,http://davidalves.net/robocode/robots/davidalves.Phoenix_1.02.jar&lt;br /&gt;
davidalves.PhoenixOS 1.1,http://davidalves.net/robocode/robots/davidalves.PhoenixOS_1.1.jar&lt;br /&gt;
davidalves.net.Duelist 0.1.6src,http://www.robocoderepository.com/BotFiles/1000/davidalves.net.Duelist_0.1.6src.jar&lt;br /&gt;
davidalves.net.DuelistMicro 1.22,http://www.robocoderepository.com/BotFiles/1144/davidalves.net.DuelistMicro_1.22.jar&lt;br /&gt;
davidalves.net.DuelistMicroMkII 1.1,http://www.robocoderepository.com/BotFiles/1281/davidalves.net.DuelistMicroMkII_1.1.jar&lt;br /&gt;
davidalves.net.DuelistMini 1.1,http://www.robocoderepository.com/BotFiles/1181/davidalves.net.DuelistMini_1.1.jar&lt;br /&gt;
davidalves.net.DuelistNano 1.0,http://www.robocoderepository.com/BotFiles/1272/davidalves.net.DuelistNano_1.0.jar&lt;br /&gt;
dcs.Eater_of_Worlds 1.1.3-A,http://www.robocoderepository.com/BotFiles/2578/dcs.Eater_of_Worlds_1.1.3-A.jar&lt;br /&gt;
dcs.Eater_of_Worlds_Mini 1.0,http://www.robocoderepository.com/BotFiles/2850/dcs.Eater_of_Worlds_Mini_1.0.jar&lt;br /&gt;
dcs.PM.Eater_of_Worlds_PM 1.2,http://www.robocoderepository.com/BotFiles/2856/dcs.PM.Eater_of_Worlds_PM_1.2.jar&lt;br /&gt;
de.erdega.robocode.Polyphemos 0.4,http://darkcanuck.net/rumble/robots/de.erdega.robocode.Polyphemos_0.4.jar&lt;br /&gt;
deewiant.Anomaly 0.2,http://www.iki.fi/~deewiant/files/deewiant.Anomaly_0.2.jar&lt;br /&gt;
deith.Czolgzilla 0.11,http://www.robocoderepository.com/BotFiles/3256/deith.Czolgzilla_0.11.jar&lt;br /&gt;
demetrix.ForceMajeure 0.75,http://ever-rage.narod.ru/robowiki/demetrix.ForceMajeure_0.75.jar&lt;br /&gt;
demetrix.nano.Neutrino 0.27,http://ever-rage.narod.ru/robowiki/demetrix.nano.Neutrino_0.27.jar&lt;br /&gt;
demetrix.nano.SledgeHammer 0.22,http://ever-rage.narod.ru/robowiki/demetrix.nano.SledgeHammer_0.22.jar&lt;br /&gt;
deo.CloudBot 1.3,http://robocoderepository.com/BotFiles/3644/deo.CloudBot_1.3.jar&lt;br /&gt;
deo.FlowerBot 1.0,http://robocoderepository.com/BotFiles/3683/deo.FlowerBot_1.0.jar&lt;br /&gt;
deo.virtual.RainbowBot 1.0,http://robocoderepository.com/BotFiles/3694/deo.virtual.RainbowBot_1.0.jar&lt;br /&gt;
dft.Calliope 5.6,http://www.robocoderepository.com/BotFiles/237/dft.Calliope_5.6.jar&lt;br /&gt;
dft.Cyanide 1.90,http://darkcanuck.net/rumble/robots/dft.Cyanide_1.90.jar&lt;br /&gt;
dft.Cyprus 3.0,http://www.robocoderepository.com/BotFiles/377/dft.Cyprus_3.0.jar&lt;br /&gt;
dft.Freddie 1.32,http://darkcanuck.net/rumble/robots/dft.Freddie_1.32.jar&lt;br /&gt;
dft.Guppy 1.0,http://darkcanuck.net/rumble/robots/dft.Guppy_1.0.jar&lt;br /&gt;
dft.Immortal 1.40,http://darkcanuck.net/rumble/robots/dft.Immortal_1.40.jar&lt;br /&gt;
dft.Krazy 1.5,http://www.robocoderepository.com/BotFiles/2099/dft.Krazy_1.5.jar&lt;br /&gt;
dft.Virgin 1.25,http://www.robocoderepository.com/BotFiles/1447/dft.Virgin_1.25.jar&lt;br /&gt;
dggp.haiku.gpBot_0 1.1,http://www.robocoderepository.com/BotFiles/3154/dggp.haiku.gpBot_0_1.1.jar&lt;br /&gt;
dittman.BlindSquirl Retired,http://home.comcast.net/~kokyunage/robocode/ugluk/dittman.BlindSquirl_Retired.jar&lt;br /&gt;
djc.Aardvark 0.3.6,http://www.robocoderepository.com/BotFiles/652/djc.Aardvark_0.3.6.jar&lt;br /&gt;
djdjdj.NanoSkunk10 1.0,http://davidjoerg.com/robocode/djdjdj.NanoSkunk10_1.0.jar&lt;br /&gt;
dk.stable.Gorgatron 1.1,http://www.robocoderepository.com/BotFiles/2112/dk.stable.Gorgatron_1.1.jar&lt;br /&gt;
dks.MicroDanMK2 1.0,http://darkcanuck.net/rumble/robots/dks.MicroDanMK2_1.0.jar&lt;br /&gt;
DM.Capriite 3.7.2,http://www.robocoderepository.com/BotFiles/2989/DM.Capriite_3.7.2.jar&lt;br /&gt;
DM.Chicken 4.0,http://www.robocoderepository.com/BotFiles/3020/DM.Chicken_4.0.jar&lt;br /&gt;
DM.Mijit .3,http://www.robocoderepository.com/BotFiles/3043/DM.Mijit_.3.jar&lt;br /&gt;
dmp.micro.Aurora 1.41,http://www.robocoderepository.com/BotFiles/853/dmp.micro.Aurora_1.41.jar&lt;br /&gt;
dmp.nano.Eve 3.41,http://www.robocoderepository.com/BotFiles/842/dmp.nano.Eve_3.41.jar&lt;br /&gt;
donjezza.Jezza 1.0,http://www.robocoderepository.com/BotFiles/3385/donjezza.Jezza_1.0.jar&lt;br /&gt;
donjezza.Muncho 1.0,http://www.robocoderepository.com/BotFiles/3384/donjezza.Muncho_1.0.jar&lt;br /&gt;
drd.Dreadknoght 0.9,http://www.robocoderepository.com/BotFiles/3835/drd.Dreadknoght_0.9.jar&lt;br /&gt;
drm.CobraBora 1.12,http://www.robocoderepository.com/BotFiles/1146/drm.CobraBora_1.12.jar&lt;br /&gt;
drm.Magazine 0.39,http://www.robocoderepository.com/BotFiles/989/drm.Magazine_0.39.jar&lt;br /&gt;
ds.OoV4 0.3b,http://www.robocoderepository.com/BotFiles/2851/ds.OoV4_0.3b.jar&lt;br /&gt;
dsw.StaticD 1.0,http://darkcanuck.net/rumble/robots/dsw.StaticD_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3a 1.0,http://darkcanuck.net/rumble/robots/dsx724.VSAB_EP3a_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3_ATR 1.1,http://www.robocoderepository.com/BotFiles/3432/dsx724.VSAB_EP3_ATR_1.1.jar&lt;br /&gt;
dukie.Ambassador 1.0,http://www.robocoderepository.com/BotFiles/2845/dukie.Ambassador_1.0.jar&lt;br /&gt;
dummy.micro.HummingBird 2.14,http://www.robocoderepository.com/BotFiles/369/dummy.micro.HummingBird_2.14.jar&lt;br /&gt;
dummy.micro.Sparrow 2.5,http://www.robocoderepository.com/BotFiles/484/dummy.micro.Sparrow_2.5.jar&lt;br /&gt;
dummy.mini.Parakeet 2.40,http://www.robocoderepository.com/BotFiles/400/dummy.mini.Parakeet_2.40.jar&lt;br /&gt;
dvogon.GangBang 1.0,http://www.robocoderepository.com/BotFiles/3193/dvogon.GangBang_1.0.jar&lt;br /&gt;
dy.LevelOne 2.0,http://www.robocoderepository.com/BotFiles/3452/dy.LevelOne_2.0.jar&lt;br /&gt;
dz.Caedo 1.4,http://www.robocoderepository.com/BotFiles/1044/dz.Caedo_1.4.jar&lt;br /&gt;
dz.GalbaMicro 0.11,http://www.robocoderepository.com/BotFiles/2482/dz.GalbaMicro_0.11.jar&lt;br /&gt;
dz.GalbaMini 0.121,http://darkcanuck.net/rumble/robots/dz.GalbaMini_0.121.jar&lt;br /&gt;
dz.MostlyHarmlessNano 2.1,http://www.robocoderepository.com/BotFiles/2166/dz.MostlyHarmlessNano_2.1.jar&lt;br /&gt;
dz.OthoMicro 0.12,http://www.robocoderepository.com/BotFiles/2198/dz.OthoMicro_0.12.jar&lt;br /&gt;
dz.OthoMini 0.15,http://www.robocoderepository.com/BotFiles/2221/dz.OthoMini_0.15.jar&lt;br /&gt;
eat.HumblePieLite 1.0,http://www.robocoderepository.com/BotFiles/1088/eat.HumblePieLite_1.0.jar&lt;br /&gt;
ebo.Sparse 0.02,http://www.4geeks.de/files/ebo.Sparse_0.02.jar&lt;br /&gt;
ebo.Tahoe 1.1.79,http://www.4geeks.de/files/ebo.Tahoe_1.1.79.jar&lt;br /&gt;
el.Attackr 0.1,http://darkcanuck.net/rumble/robots/el.Attackr_0.1.jar&lt;br /&gt;
el.JumpShoot 0.2,http://www.robocoderepository.com/BotFiles/3360/el.JumpShoot_0.2.jar&lt;br /&gt;
el33t.EL33tGangstarr2 2.0,http://www.robocoderepository.com/BotFiles/2069/el33t.EL33tGangstarr2_2.0.jar&lt;br /&gt;
eld.Hmm 1.0,http://darkcanuck.net/rumble/robots/eld.Hmm_1.0.jar&lt;br /&gt;
element.Earth 1.1,http://www.robocoderepository.com/BotFiles/3587/element.Earth_1.1.jar&lt;br /&gt;
elloco.Flower 0.1r1,http://www.robocoderepository.com/BotFiles/3242/elloco.Flower_0.1r1.jar&lt;br /&gt;
elloco.Kabuto 0.2r,http://www.robocoderepository.com/BotFiles/3229/elloco.Kabuto_0.2r.jar&lt;br /&gt;
elvbot.ElverionBot 0.3,http://www.robocoderepository.com/BotFiles/3541/elvbot.ElverionBot_0.3.jar&lt;br /&gt;
emp.Yngwie 1.11,http://www.robocoderepository.com/BotFiles/1928/emp.Yngwie_1.11.jar&lt;br /&gt;
erdnis.Rover 0.3,http://www.free-games-fun.com/erdnis.Rover_0.3.jar&lt;br /&gt;
eskimo.micro.Echo 0.1,http://robocoderepository.com/BotFiles/3969/eskimo.micro.Echo_0.1.jar&lt;br /&gt;
et.Predator 1.8,http://www.robocoderepository.com/BotFiles/668/et.Predator_1.8.jar&lt;br /&gt;
ethdsy.Malacka 2.4,http://www.robocoderepository.com/BotFiles/1159/ethdsy.Malacka_2.4.jar&lt;br /&gt;
evd.X1 0.01,http://www.robocoderepository.com/BotFiles/3503/evd.X1_0.01.jar&lt;br /&gt;
exauge.GateKeeper 1.1.121g,http://www.robocoderepository.com/BotFiles/3928/exauge.GateKeeper_1.1.121g.jar&lt;br /&gt;
exauge.LemonDrop 1.6.130,http://www.robocoderepository.com/BotFiles/3911/exauge.LemonDrop_1.6.130.jar&lt;br /&gt;
exauge.Leopard 1.1.019,http://www.robocoderepository.com/BotFiles/3917/exauge.Leopard_1.1.019.jar&lt;br /&gt;
fala.robocode.FalaRobot 1.0,http://www.robocoderepository.com/BotFiles/3474/fala.robocode.FalaRobot_1.0.jar&lt;br /&gt;
fcr.First 1.0,http://www.robocoderepository.com/BotFiles/3362/fcr.First_1.0.jar&lt;br /&gt;
Fenix.FenixTrack 1.0,http://www.robocoderepository.com/BotFiles/1627/Fenix.FenixTrack_1.0.jar&lt;br /&gt;
florent.FloatingTadpole 1.2.6,http://www.robocoderepository.com/BotFiles/2675/florent.FloatingTadpole_1.2.6.jar&lt;br /&gt;
florent.small.LittleAngel 1.8,http://www.robocoderepository.com/BotFiles/2917/florent.small.LittleAngel_1.8.jar&lt;br /&gt;
florent.test.Toad 0.14t,http://wesley3.free.fr/florent.test.Toad_0.14t.jar&lt;br /&gt;
florent.XSeries.X2 0.17,http://wesley3.free.fr/florent.XSeries.X2_0.17.jar&lt;br /&gt;
fm.claire 1.7,http://www.robocoderepository.com/BotFiles/2251/fm.claire_1.7.jar&lt;br /&gt;
fm.mammillarias 1.3,http://www.robocoderepository.com/BotFiles/2238/fm.mammillarias_1.3.jar&lt;br /&gt;
fnc.bandit.Bandit 5.2.0,http://www.robocoderepository.com/BotFiles/2155/fnc.bandit.Bandit_5.2.0.jar&lt;br /&gt;
fnc.bandit2002.Bandit2002 4.0.2,http://www.robocoderepository.com/BotFiles/2202/fnc.bandit2002.Bandit2002_4.0.2.jar&lt;br /&gt;
frag.FragBot 1.0,http://darkcanuck.net/rumble/robots/frag.FragBot_1.0.jar&lt;br /&gt;
franzor.Lizt 1.3.1,http://pages.prodigy.net/franz1/house/franzor.Lizt_1.3.1.jar&lt;br /&gt;
fromHell.general.guinness.Guinness 0.1.2,http://www.robocoderepository.com/BotFiles/3804/FromHell.Guinness_0.1.2.jar&lt;br /&gt;
fullsail.LaxativeTeaTwo 1.0,http://www.robocoderepository.com/BotFiles/3403/fullsail.LaxativeTeaTwo_1.0.jar&lt;br /&gt;
fullsail.TimbotNoPrediction 1.0,http://darkcanuck.net/rumble/robots/fullsail.TimbotNoPrediction_1.0.jar&lt;br /&gt;
fullsail.SweetTea 1.1,http://darkcanuck.net/rumble/robots/fullsail.SweetTea_1.1.jar&lt;br /&gt;
fushi.PvP1.PvP1 2004-02-16,http://www.robocoderepository.com/BotFiles/2023/fushi.PvP1.PvP1_2004-02-16.jar&lt;br /&gt;
fw.Number1 1.0b,http://www.dijitari.com/void/robocode/fw.Number1_1.0b.jar&lt;br /&gt;
gadsky.Gadsky 1.01,http://www.robocoderepository.com/BotFiles/3595/gadsky.Gadsky_1.01.jar&lt;br /&gt;
geep.mini.GPBotA 1.0,http://www.robocoderepository.com/BotFiles/2361/geep.mini.GPBotA_1.0.jar&lt;br /&gt;
geep.mini.GPBotB 1.1,http://www.robocoderepository.com/BotFiles/2363/geep.mini.GPBotB_1.1.jar&lt;br /&gt;
germ.TheMind .2,http://www.robocoderepository.com/BotFiles/2525/germ.TheMind_.2.jar&lt;br /&gt;
gg.Squaraus 0.6,http://www.robocoderepository.com/BotFiles/1788/gg.Squaraus_0.6.jar&lt;br /&gt;
gg.Wolverine 2.0,http://darkcanuck.net/rumble/robots/gg.Wolverine_2.0.jar&lt;br /&gt;
gh.GresSuffurd 0.2.22,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GresSuffurd_0.2.22.jar&lt;br /&gt;
gh.GrubbmGrb 1.2.4,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GrubbmGrb_1.2.4.jar&lt;br /&gt;
gh.GrypRepetyf 0.13,http://www.robocoderepository.com/BotFiles/2650/gh.GrypRepetyf_0.13.jar&lt;br /&gt;
gh.micro.Grinnik 0.7,http://www.robocoderepository.com/BotFiles/3208/gh.micro.Grinnik_0.7.jar&lt;br /&gt;
gh.micro.GrubbmThree 0.9,http://www.robocoderepository.com/BotFiles/2444/gh.micro.GrubbmThree_0.9.jar&lt;br /&gt;
gh.mini.Gruwel 0.9,http://www.robocoderepository.com/BotFiles/2511/gh.mini.Gruwel_0.9.jar&lt;br /&gt;
gh.nano.Grofvuil 0.2,http://www.robocoderepository.com/BotFiles/2553/gh.nano.Grofvuil_0.2.jar&lt;br /&gt;
gimp.GimpBot 0.1,http://www.robocoderepository.com/BotFiles/2434/gimp.GimpBot_0.1.jar&lt;br /&gt;
gio.RealGioBot 1.0,http://www.robocoderepository.com/BotFiles/2521/gio.RealGioBot_1.0.jar&lt;br /&gt;
gjr.Cephalosporin 0.2,http://www.robocoderepository.com/BotFiles/2240/gjr.Cephalosporin_0.2.jar&lt;br /&gt;
gm.GaetanoA 2.15,http://www.robocoderepository.com/BotFiles/2188/gm.GaetanoA_2.15.jar&lt;br /&gt;
goblin.Bender 2.4,http://www.robocoderepository.com/BotFiles/1871/goblin.Bender_2.4.jar&lt;br /&gt;
grybgoofy.GoofyBot 0.10,http://www.robocoderepository.com/BotFiles/2196/grybgoofy.GoofyBot_0.10.jar&lt;br /&gt;
gu.MicroScoob 1.3,http://www.robocoderepository.com/BotFiles/2086/gu.MicroScoob_1.3.jar&lt;br /&gt;
hamilton.Hamilton 1.0,http://www.robocoderepository.com/BotFiles/1408/hamilton.Hamilton_1.0.jar&lt;br /&gt;
hirataatsushi.Neo 1.6,http://www.robocoderepository.com/BotFiles/1081/hirataatsushi.Neo_1.6.jar&lt;br /&gt;
hirataatsushi.Trinity 0.003,http://www.robocoderepository.com/BotFiles/1145/hirataatsushi.Trinity_0.003.jar&lt;br /&gt;
Homer.Barney 1.0,http://www.robocoderepository.com/BotFiles/1932/Homer.Barney_1.0.jar&lt;br /&gt;
homerbots.h1 1.0,http://www.robocoderepository.com/BotFiles/2999/homerbots.h1_1.0.jar&lt;br /&gt;
hp.Athena 0.1,http://www.robocoderepository.com/BotFiles/3415/hp.Athena_0.1.jar&lt;br /&gt;
hvilela.HVilela 0.9,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.jar&lt;br /&gt;
ins.MobyNano 0.8,http://www.robocoderepository.com/BotFiles/939/ins.MobyNano_0.8.jar&lt;br /&gt;
intruder.PrairieWolf 2.61,http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar&lt;br /&gt;
ivor.prophet.Prophet 0.01,http://www.ivan.php5.sk/ivor.prophet.Prophet_0.01.jar&lt;br /&gt;
jaara.LambdaBot 1.1,http://www.robocoderepository.com/BotFiles/3514/jaara.LambdaBot_1.1.jar&lt;br /&gt;
jab.avk.ManuelGallegus 0.6,http://www.freewebs.com/robocode/bots/Tests/jab.avk.ManuelGallegus_0.6.jar&lt;br /&gt;
jab.DiamondStealer 5,http://www.freewebs.com/robocode/bots/DiamondStealers/jab.DiamondStealers_5.jar&lt;br /&gt;
jab.micro.Sanguijuela 0.8,http://www.freewebs.com/robocode/bots/Sanguijuela/jab.micro.Sanguijuela_0.8.jar&lt;br /&gt;
janm.Jammy 1.0,http://www.robocoderepository.com/BotFiles/3543/janm.Jammy_1.0.jar&lt;br /&gt;
jam.micro.RaikoMicro 1.44,http://www.robocoderepository.com/BotFiles/1983/jam.micro.RaikoMicro_1.44.jar&lt;br /&gt;
jam.mini.Raiko 0.43,http://www.robocoderepository.com/BotFiles/1922/jam.mini.Raiko_0.43.jar&lt;br /&gt;
jam.RaikoMX 0.32,http://www.robocoderepository.com/BotFiles/1961/jam.RaikoMX_0.32.jar&lt;br /&gt;
japs.Serenity 1.0,http://www.robocoderepository.com/BotFiles/2217/japs.Serenity_1.0.jar&lt;br /&gt;
japs.Sjonniebot 0.9.1,http://www.robocoderepository.com/BotFiles/2203/japs.Sjonniebot_0.9.1.jar&lt;br /&gt;
jasolo.Sonda 0.55,http://www.robocoderepository.com/BotFiles/1534/jasolo.Sonda_0.55.jar&lt;br /&gt;
jaw.Mouse 0.11,http://www.robocoderepository.com/BotFiles/2472/jaw.Mouse_0.11.jar&lt;br /&gt;
jaw.KarenCain 0.11,http://www.robocoderepository.com/BotFiles/2474/jaw.KarenCain_0.11.jar&lt;br /&gt;
jaybot.adv.bots.JayBot 2.0,http://darkcanuck.net/rumble/robots/jaybot.adv.bots.JayBot_2.0.jar&lt;br /&gt;
jaybot.bots.Oddball 4.0,http://darkcanuck.net/rumble/robots/jaybot.bots.Oddball_4.0.jar&lt;br /&gt;
jbot.Rabbit2 1.1,http://darkcanuck.net/rumble/robots/jbot.Rabbit2_1.1.jar&lt;br /&gt;
jcs.AutoBot 4.2.1,http://www.robocoderepository.com/BotFiles/2616/jcs.AutoBot_4.2.1.jar&lt;br /&gt;
jcs.Decepticon 2.5.3,http://www.robocoderepository.com/BotFiles/2620/jcs.Decepticon_2.5.3.jar&lt;br /&gt;
jcs.Megatron 1.2,http://www.robocoderepository.com/BotFiles/2632/jcs.Megatron_1.2.jar&lt;br /&gt;
jcs.Seth 1.8,http://darkcanuck.net/rumble/robots/jcs.Seth_1.8.jar&lt;br /&gt;
jcw.ArcherOne 1.0,http://darkcanuck.net/rumble/robots/jcw.ArcherOne_1.0.jar&lt;br /&gt;
jekl.DarkHallow .90.9,http://www.robocoderepository.com/BotFiles/2296/jekl.DarkHallow_.90.9.jar&lt;br /&gt;
jekl.Jekyl .70,http://www.robocoderepository.com/BotFiles/1837/jekl.Jekyl_.70.jar&lt;br /&gt;
jekl.mini.BlackPearl .91,http://www.robocoderepository.com/BotFiles/1875/jekl.mini.BlackPearl_.91.jar&lt;br /&gt;
jep.nano.Hawkwing 0.4.1,http://www.robocoderepository.com/BotFiles/1561/jep.nano.Hawkwing_0.4.1.jar&lt;br /&gt;
jep.nano.Hotspur 0.1,http://www.robocoderepository.com/BotFiles/1877/jep.nano.Hotspur_0.1.jar&lt;br /&gt;
jep.Terrible 0.4.1,http://www.robocoderepository.com/BotFiles/1536/jep.Terrible_0.4.1.jar&lt;br /&gt;
jgap.JGAP12584 1.0,http://www.robocoderepository.com/BotFiles/3383/jgap.JGAP12584_1.0.jar&lt;br /&gt;
jgap.JGAP130166 1.0,http://www.robocoderepository.com/BotFiles/3371/jgap.JGAP130166_1.0.jar&lt;br /&gt;
jgap.JGAP23423 1.0,http://www.robocoderepository.com/BotFiles/3378/jgap.JGAP23423_1.0.jar&lt;br /&gt;
jgap.JGAP6139 1.0,http://www.robocoderepository.com/BotFiles/3372/jgap.JGAP6139_1.0.jar&lt;br /&gt;
jgap.JGAP7247_2 1.0,http://www.robocoderepository.com/BotFiles/3382/jgap.JGAP7247_2_1.0.jar&lt;br /&gt;
jgap.JGAP7958 1.0,http://www.robocoderepository.com/BotFiles/3373/jgap.JGAP7958_1.0.jar&lt;br /&gt;
jje.BagPuss 1.2,http://darkcanuck.net/rumble/robots/jje.BagPuss_1.2.jar&lt;br /&gt;
jk.mega.DrussGT 1.8.16,http://www.minifly.rchomepage.com/robocode/jk.mega.DrussGT_1.8.16.jar&lt;br /&gt;
jk.micro.Toorkild 0.2.4b,http://www.minifly.rchomepage.com/robocode/jk.micro.Toorkild_0.2.4b.jar&lt;br /&gt;
jk.mini.CunobelinDC 0.4CT,http://www.minifly.rchomepage.com/robocode/jk.mini.CunobelinDC_0.4CT.jar&lt;br /&gt;
jk.precise.Wintermute 0.7,http://www.minifly.rchomepage.com/robocode/jk.precise.Wintermute_0.7.jar&lt;br /&gt;
jmcd.BeoWulf 2.8,http://www.robocoderepository.com/BotFiles/1377/jmcd.BeoWulf_2.8.jar&lt;br /&gt;
joe.ADinosaur 1.0,http://www.robocoderepository.com/BotFiles/2822/joe.ADinosaur_1.0.jar&lt;br /&gt;
jp.Perpy 16.0,http://www.robocoderepository.com/BotFiles/3001/jp.Perpy_16.0.jar&lt;br /&gt;
jp.SineWall 1.0,http://www.robocoderepository.com/BotFiles/2968/jp.SineWall_1.0.jar&lt;br /&gt;
jrm.Test0 1.0,http://www.robocoderepository.com/BotFiles/3636/jrm.Test0_1.0.jar&lt;br /&gt;
js.PinBall 1.6,http://www.robocoderepository.com/BotFiles/684/js.PinBall_1.6.jar&lt;br /&gt;
jsal.Jsalbot 1.0,http://jeremybubs.googlepages.com/jsal.Jsalbot_1.0.jar&lt;br /&gt;
jt.SpearmintCT Alpha,http://www.robocoderepository.com/BotFiles/2164/jt.SpearmintCT_Alpha.jar&lt;br /&gt;
justin.DemonicRage 3.20,http://sites.google.com/site/justinsitehere/file-cabinet/justin.DemonicRage_3.20.jar&lt;br /&gt;
jw.Booring 1.11,http://www.robocoderepository.com/BotFiles/1250/jw.Booring_1.11.jar&lt;br /&gt;
jwst.DAD.DarkAndDarker 1.1,http://darkcanuck.net/rumble/robots/jwst.DAD.DarkAndDarker_1.1.jar&lt;br /&gt;
kanishk.Fr0z3n 1.1,http://darkcanuck.net/rumble/robots/kanishk.Fr0z3n_1.1.jar&lt;br /&gt;
kano.gamma.KanoGamma 1.8,http://www.robocoderepository.com/BotFiles/1098/kano.gamma.KanoGamma_1.8.jar&lt;br /&gt;
kawam.kmBot9 1.0,http://www.robocoderepository.com/BotFiles/967/kawam.kmBot9_1.0.jar&lt;br /&gt;
kawigi.f.FhqwhgadsMicro 1.0,http://www.robocoderepository.com/BotFiles/1673/kawigi.f.FhqwhgadsMicro_1.0.jar&lt;br /&gt;
kawigi.micro.Shiz 1.1,http://www.robocoderepository.com/BotFiles/2007/kawigi.micro.Shiz_1.1.jar&lt;br /&gt;
kawigi.mini.Coriantumr 1.1,http://www.robocoderepository.com/BotFiles/1988/kawigi.mini.Coriantumr_1.1.jar&lt;br /&gt;
kawigi.mini.Fhqwhgads 1.1,http://www.robocoderepository.com/BotFiles/1604/kawigi.mini.Fhqwhgads_1.1.jar&lt;br /&gt;
kawigi.nano.FunkyChicken 1.1,http://www.robocoderepository.com/BotFiles/1512/kawigi.nano.FunkyChicken_1.1.jar&lt;br /&gt;
kawigi.nano.ThnikkaBot 0.9,http://www.robocoderepository.com/BotFiles/2059/kawigi.nano.ThnikkaBot_0.9.jar&lt;br /&gt;
kawigi.robot.Girl 1.2,http://www.robocoderepository.com/BotFiles/2124/kawigi.robot.Girl_1.2.jar&lt;br /&gt;
kawigi.sbf.Barracuda 1.0,http://www.robocoderepository.com/BotFiles/1535/kawigi.sbf.Barracuda_1.0.jar&lt;br /&gt;
kawigi.sbf.FloodHT 0.9.2,http://www.robocoderepository.com/BotFiles/1552/kawigi.sbf.FloodHT_0.9.2.jar&lt;br /&gt;
kawigi.sbf.FloodMicro 1.5,http://www.robocoderepository.com/BotFiles/1381/kawigi.sbf.FloodMicro_1.5.jar&lt;br /&gt;
kawigi.sbf.FloodMini 1.4,http://www.robocoderepository.com/BotFiles/1462/kawigi.sbf.FloodMini_1.4.jar&lt;br /&gt;
kawigi.sbf.FloodNano 1.2,http://www.robocoderepository.com/BotFiles/1421/kawigi.sbf.FloodNano_1.2.jar&lt;br /&gt;
kawigi.sbf.FloodSonnet 0.9,http://www.robocoderepository.com/BotFiles/1779/kawigi.sbf.FloodSonnet_0.9.jar&lt;br /&gt;
kawigi.sbf.Teancum 1.3,http://www.robocoderepository.com/BotFiles/1470/kawigi.sbf.Teancum_1.3.jar&lt;br /&gt;
kawigi.spare.SpareParts 0.7.6nosnd,http://www.robocoderepository.com/BotFiles/1335/kawigi.spare.SpareParts_0.7.6nosnd.jar&lt;br /&gt;
kc.micro.Needle 0.101,http://www.robocoderepository.com/BotFiles/3379/kc.micro.Needle_0.101.jar&lt;br /&gt;
kc.micro.Thorn 1.252,http://sites.google.com/site/kevcsite/robocode/kc.micro.Thorn_1.252.jar&lt;br /&gt;
kc.micro.WaveShark 0.31,http://www.robocoderepository.com/BotFiles/3822/kc.micro.WaveShark_0.31.jar&lt;br /&gt;
kc.mini.Vyper 0.311,http://darkcanuck.net/rumble/robots/kc.mini.Vyper_0.311.jar&lt;br /&gt;
kc.nano.Splinter 1.2,http://darkcanuck.net/rumble/robots/kc.nano.Splinter_1.2.jar&lt;br /&gt;
kc.serpent.Hydra 0.21,http://darkcanuck.net/rumble/robots/kc.serpent.Hydra_0.21.jar&lt;br /&gt;
kc.serpent.WaveSerpent 2.11,http://sites.google.com/site/kevcsite/robocode/kc.serpent.WaveSerpent_2.11.jar&lt;br /&gt;
kcn.percept.PerceptBot 2.3,http://www.robocoderepository.com/BotFiles/1075/kcn.percept.PerceptBot_2.3.jar&lt;br /&gt;
kcn.unnamed.Unnamed 1.21,http://www.robocoderepository.com/BotFiles/1969/kcn.unnamed.Unnamed_1.21.jar&lt;br /&gt;
kenran.mega.Pantheist 1.1,http://sites.google.com/site/kenranbots/robocode/kenran.mega.Pantheist_1.1.jar&lt;br /&gt;
kid.Gladiator .7.2,http://www.citlink.net/~normanp/robocode/gladiator/kid.Gladiator_.7.2.jar&lt;br /&gt;
kid.Toa .0.5,http://www.citlink.net/~normanp/robocode/toa/kid.Toa_.0.5.jar&lt;br /&gt;
KiraNL.Chupacabra 0.5,http://sandbox-project.nl/robocode/KiraNL.Chupacabra_0.5.jar&lt;br /&gt;
KiraNL.ChupaLite 0.2,http://sandbox-project.nl/robocode/KiraNL.ChupaLite_0.2.jar&lt;br /&gt;
KiraNL.SpaceKees 0.1,http://sandbox-project.nl/robocode/KiraNL.SpaceKees_0.1.jar&lt;br /&gt;
kinsen.melee.Angsaichmophobia 1.8c,http://sites.google.com/site/dcvqksyb/robocode/kinsen.melee.Angsaichmophobia_1.8c.jar&lt;br /&gt;
kinsen.nano.Hoplomachy 1.6,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Hoplomachy_1.6.jar&lt;br /&gt;
kinsen.nano.Quarrelet 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Quarrelet_1.0.jar&lt;br /&gt;
kinsen.nano.Senticous 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Senticous_1.0.jar&lt;br /&gt;
kjc.etc.Dharok 1.0,http://www.robocoderepository.com/BotFiles/3293/kjc.etc.Dharok_1.0.jar&lt;br /&gt;
kjc.MailManX 2.0,http://www.robocoderepository.com/BotFiles/3288/kjc.MailManX_2.0.jar&lt;br /&gt;
kjc.Karaykan 1.0,http://www.robocoderepository.com/BotFiles/3289/kjc.Karaykan_1.0.jar&lt;br /&gt;
klein.GottesKrieger 1.1,http://www.robocoderepository.com/BotFiles/3258/klein.GottesKrieger_1.1.jar&lt;br /&gt;
Krabb.fe4r.Fe4r 0.4,http://www.robocoderepository.com/BotFiles/2766/Krabb.fe4r.Fe4r_0.4.jar&lt;br /&gt;
Krabb.sliNk.Garm 0.9u,http://designnj.de/roboking/Krabb.sliNk.Garm_0.9u.jar&lt;br /&gt;
Krabb.krabby.Krabby 1.18b,http://darkcanuck.net/rumble/robots/Krabb.krabby.Krabby_1.18b.jar&lt;br /&gt;
Krabb.krabby2.Krabby2 1.9o,http://darkcanuck.net/rumble/robots/Krabb.krabby2.Krabby2_1.9o.jar&lt;br /&gt;
krillr.mini.JointStrike 2.0.0,http://darkcanuck.net/rumble/robots/krillr.mini.JointStrike_2.0.0.jar&lt;br /&gt;
krillr.mega.Psyche 0.0.3,http://darkcanuck.net/rumble/robots/krillr.mega.Psyche_0.0.3.jar&lt;br /&gt;
krzysiek.robbo2.Robbo 1.0.0,http://darkcanuck.net/rumble/robots/krzysiek.robbo2.Robbo_1.0.0.jar&lt;br /&gt;
kurios.DOSexe .9a,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9a.jar&lt;br /&gt;
kurios.DOSexe .9b,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9b.jar&lt;br /&gt;
kvk.HebusLeTroll 0.41,http://www.robocoderepository.com/BotFiles/2125/kvk.HebusLeTroll_0.41.jar&lt;br /&gt;
labg.Cataclysm 2.05,http://www.robocoderepository.com/BotFiles/2399/labg.Cataclysm_2.05.jar&lt;br /&gt;
lazarecki.mega.PinkerStinker 0.7,http://www.robocoderepository.com/BotFiles/3838/lazarecki.mega.PinkerStinker_0.7.jar&lt;br /&gt;
leb.ShootAnArrow 0.1,http://www.robocoderepository.com/BotFiles/2648/leb.ShootAnArrow_0.1.jar&lt;br /&gt;
lechu.Ala 0.0.4,http://www.robocoderepository.com/BotFiles/3497/lechu.Ala_0.0.4.jar&lt;br /&gt;
lechu.Lechu 1.1,http://www.robocoderepository.com/BotFiles/3480/lechu.Lechu_1.1.jar&lt;br /&gt;
lion.Kresnanano 1.0,http://www.robocoderepository.com/BotFiles/2295/lion.Kresnanano_1.0.jar&lt;br /&gt;
lk.nano.Avesnar 1.1,http://www.robocoderepository.com/BotFiles/1597/lk.nano.Avesnar_1.1.jar&lt;br /&gt;
lorneswork.Predator 1.0,http://www.robocoderepository.com/BotFiles/2609/lorneswork.Predator_1.0.jar&lt;br /&gt;
lrem.Spectre 0.4.4,http://www.robocoderepository.com/BotFiles/2253/lrem.Spectre_0.4.4.jar&lt;br /&gt;
lrem.magic.TormentedAngel Antiquitie,http://maxnet.org.pl/~lrem/lrem.magic.TormentedAngel_Antiquitie.jar&lt;br /&gt;
lrem.micro.MoggFanatic 0.2,http://www.robocoderepository.com/BotFiles/2639/lrem.micro.MoggFanatic_0.2.jar&lt;br /&gt;
lrem.micro.FalseProphet Alpha,http://www.robocoderepository.com/BotFiles/2415/lrem.micro.FalseProphet_Alpha.jar&lt;br /&gt;
lrem.quickhack.QuickHack 1.0,http://www.robocoderepository.com/BotFiles/2555/lrem.quickhack.QuickHack_1.0.jar&lt;br /&gt;
lunchie.Lunchbox 0.93,http://darkcanuck.net/rumble/robots/lunchie.Lunchbox_0.93.jar&lt;br /&gt;
lw.LuthersTest 0.1,http://www.citlink.net/~normanp/robocode/luther/lw.LuthersTest_0.1.jar&lt;br /&gt;
m3thos.Eva00 1.1,http://darkcanuck.net/rumble/robots/m3thos.Eva00_1.1.jar&lt;br /&gt;
m3thos.Eva02 0.7.1,http://darkcanuck.net/rumble/robots/m3thos.Eva02_0.7.1.jar&lt;br /&gt;
m3thos.mini.Eva01 0.5.5,http://darkcanuck.net/rumble/robots/m3thos.mini.Eva01_0.5.5.jar&lt;br /&gt;
madmath.Cow 0.1.1,http://www.robocoderepository.com/BotFiles/3476/madmath.Cow_0.1.1.jar&lt;br /&gt;
marcinek.TopGun 1.3,http://www.robocoderepository.com/BotFiles/3458/marcinek.TopGun_1.3.jar&lt;br /&gt;
marksteam.Phoenix 1.0,http://www.robocoderepository.com/BotFiles/2749/marksteam.Phoenix_1.0.jar&lt;br /&gt;
matt.advanced.Katana 1.0,http://www.robocoderepository.com/BotFiles/2498/matt.advanced.Katana_1.0.jar&lt;br /&gt;
matt.BlueMind 0.8.00,http://www.robocoderepository.com/BotFiles/2685/matt.BlueMind_0.8.00.jar&lt;br /&gt;
matt.UnderDark3 2.4.34,http://www.robocoderepository.com/BotFiles/2485/matt.UnderDark3_2.4.34.jar&lt;br /&gt;
matt.UnderDark4 0.4.00,http://www.robocoderepository.com/BotFiles/2644/matt.UnderDark4_0.4.00.jar&lt;br /&gt;
mbh.Mbh 0.1,http://www.robocoderepository.com/BotFiles/3365/mbh.Mbh_0.1.jar&lt;br /&gt;
mbro.BelajarBot 0.0.3,http://www.robocoderepository.com/BotFiles/2471/mbro.BelajarBot_0.0.3.jar&lt;br /&gt;
mbro.Detektor3 0.1.1,http://www.robocoderepository.com/BotFiles/2478/mbro.Detektor3_0.1.1.jar&lt;br /&gt;
mc.Messapia 0.1.8,http://www.robocoderepository.com/BotFiles/2223/mc.Messapia_0.1.8.jar&lt;br /&gt;
mcb.Audace 1.3,http://www.robocoderepository.com/BotFiles/3424/mcb.Audace_1.3.jar&lt;br /&gt;
md.November 1.0,http://www.robocoderepository.com/BotFiles/1004/md.November_1.0.jar&lt;br /&gt;
md.Pasta 1.1,http://www.robocoderepository.com/BotFiles/1014/md.Pasta_1.1.jar&lt;br /&gt;
md.VelociRaptor 1.3,http://www.robocoderepository.com/BotFiles/232/md.VelociRaptor_1.3.jar&lt;br /&gt;
mdouet.BotKicker 2.0,http://www.robocoderepository.com/BotFiles/1478/mdouet.BotKicker_2.0.jar&lt;br /&gt;
metal.small.MCool 1.21,http://www.robocoderepository.com/BotFiles/1698/metal.small.MCool_1.21.jar&lt;br /&gt;
metal.small.dna2.MCoolDNA 1.5,http://www.robocoderepository.com/BotFiles/2354/metal.small.dna2.MCoolDNA_1.5.jar&lt;br /&gt;
mk.Alpha 0.2.1,http://darkcanuck.net/rumble/robots/mk.Alpha_0.2.1.jar&lt;br /&gt;
mladjo.AIR 0.7,http://www.robocoderepository.com/BotFiles/3187/mladjo.AIR_0.7.jar&lt;br /&gt;
mladjo.GnuKlub 0.1,http://darkcanuck.net/rumble/robots/mladjo.GnuKlub_0.1.jar&lt;br /&gt;
mladjo.Grrrrr 0.9,http://www.robocoderepository.com/BotFiles/3189/mladjo.Grrrrr_0.9.jar&lt;br /&gt;
mladjo.iRobot 0.3,http://www.robocoderepository.com/BotFiles/3149/mladjo.iRobot_0.3.jar&lt;br /&gt;
mladjo.Startko 1.0,http://www.robocoderepository.com/BotFiles/3186/mladjo.Startko_1.0.jar&lt;br /&gt;
mld.DustBunny 3.8,http://www.robocoderepository.com/BotFiles/3650/mld.DustBunny_3.8.jar&lt;br /&gt;
mld.Infinity 2.2,http://www.robocoderepository.com/BotFiles/3591/mld.Infinity_2.2.jar&lt;br /&gt;
mld.LittleBlackBook 1.69c,http://www.robocoderepository.com/BotFiles/3873/mld.LittleBlackBook_1.69c.jar&lt;br /&gt;
mld.Moebius 2.9.3,http://www.robocoderepository.com/BotFiles/3634/mld.Moebius_2.9.3.jar&lt;br /&gt;
mld.Wisdom 1.0,http://www.robocoderepository.com/BotFiles/3640/mld.Wisdom_1.0.jar&lt;br /&gt;
mmb.Roskilde 0.5,http://www.robocoderepository.com/BotFiles/3965/mmb.Roskilde_0.5.jar&lt;br /&gt;
mme.NikeEnhanced 2.0,http://www.robocoderepository.com/BotFiles/2828/mme.NikeEnhanced_2.0.jar&lt;br /&gt;
mn.Combat 1.0,http://www.robocoderepository.com/BotFiles/2351/mn.Combat_1.0.jar&lt;br /&gt;
mn.WarMachine 1.1,http://www.robocoderepository.com/BotFiles/2574/mn.WarMachine_1.1.jar&lt;br /&gt;
mnt.AHEB 0.6a,http://www.robocoderepository.com/BotFiles/2417/mnt.AHEB_0.6a.jar&lt;br /&gt;
mnt.SurferBot 0.2.5,http://www.robocoderepository.com/BotFiles/2433/mnt.SurferBot_0.2.5.jar&lt;br /&gt;
morbid.MorbidPriest 1.0,http://www.robocoderepository.com/BotFiles/1758/morbid.MorbidPriest_1.0.jar&lt;br /&gt;
mrm.MightyMoose .2,http://darkcanuck.net/rumble/robots/mrm.MightyMoose_.2.jar&lt;br /&gt;
ms.Ares 0.19,http://www.robocoderepository.com/BotFiles/730/ms.Ares_0.19.jar&lt;br /&gt;
mue.Ascendant 1.2.27,http://mue.sonar-echo.de/robocode/mue.Ascendant_1.2.27.jar&lt;br /&gt;
mue.Hyperion 0.8,http://www.robocoderepository.com/BotFiles/2224/mue.Hyperion_0.8.jar&lt;br /&gt;
muf.CrazyKitten 0.9,http://www.robocoderepository.com/BotFiles/1946/muf.CrazyKitten_0.9.jar&lt;br /&gt;
mwj.A1176183 1.0,http://robocode.rleach.id.au/mwj.A1176183_1.0.jar&lt;br /&gt;
myl.micro.Avipes 1.00,http://www.robocoderepository.com/BotFiles/1347/myl.micro.Avipes_1.00.jar&lt;br /&gt;
myl.micro.NekoNinja 1.30,http://www.robocoderepository.com/BotFiles/944/myl.micro.NekoNinja_1.30.jar&lt;br /&gt;
myl.micro.Predator 1.50,http://www.robocoderepository.com/BotFiles/1097/myl.micro.Predator_1.50.jar&lt;br /&gt;
myl.micro.Troodon 1.10,http://www.robocoderepository.com/BotFiles/1226/myl.micro.Troodon_1.10.jar&lt;br /&gt;
myl.nano.Graviton 1.10,http://www.robocoderepository.com/BotFiles/770/myl.nano.Graviton_1.10.jar&lt;br /&gt;
myl.nano.Kakuru 1.20,http://www.robocoderepository.com/BotFiles/1330/myl.nano.Kakuru_1.20.jar&lt;br /&gt;
myl.nano.KomoriNinja 1.1,http://www.robocoderepository.com/BotFiles/978/myl.nano.KomoriNinja_1.1.jar&lt;br /&gt;
mym.EdgeStalker 1.0,http://www.robocoderepository.com/BotFiles/3956/mym.EdgeStalker_1.0.jar&lt;br /&gt;
mz.Adept 2.65,http://www.robocoderepository.com/BotFiles/2090/mz.Adept_2.65.jar&lt;br /&gt;
mz.AdeptBSB 1.03,http://www.robocoderepository.com/BotFiles/2113/mz.AdeptBSB_1.03.jar&lt;br /&gt;
mz.Movement 1.8,http://www.robocoderepository.com/BotFiles/2145/mz.Movement_1.8.jar&lt;br /&gt;
mz.NanoDeath 2.56,http://www.robocoderepository.com/BotFiles/2010/mz.NanoDeath_2.56.jar&lt;br /&gt;
mz.NanoGod 2.02,http://www.robocoderepository.com/BotFiles/1996/mz.NanoGod_2.02.jar&lt;br /&gt;
nammyung.ModelT 0.23,http://www.robocoderepository.com/BotFiles/969/nammyung.ModelT_0.23.jar&lt;br /&gt;
nanoskank.NanoSkank 1.0,http://darkcanuck.net/rumble/robots/nanoskank.NanoSkank_1.0.jar&lt;br /&gt;
nat.BlackHole 2.0gamma,http://nat.robothai.net/robots/nat.BlackHole_2.0gamma.jar&lt;br /&gt;
nat.micro.NP 1.34,http://nat.robothai.net/robots/nat.micro.NP_1.34.jar&lt;br /&gt;
nat.micro.Reepicheep 0.1a,http://nat.robothai.net/robots/nat.micro.Reepicheep_0.1a.jar&lt;br /&gt;
nat.nano.Ocnirp 1.73,http://nat.robothai.net/robots/nat.nano.Ocnirp_1.73.jar&lt;br /&gt;
nat.nano.OcnirpPM 1.0,http://nat.robothai.net/robots/nat.nano.OcnirpPM_1.0.jar&lt;br /&gt;
nat.nano.OcnirpSNG 1.0b,http://nat.robothai.net/robots/nat.nano.OcnirpSNG_1.0b.jar&lt;br /&gt;
nat.Samekh 0.4,http://nat.robothai.net/robots/nat.Samekh_0.4.jar&lt;br /&gt;
ndn.DyslexicMonkey 1.1,http://www.robocoderepository.com/BotFiles/1141/ndn.DyslexicMonkey_1.1.jar&lt;br /&gt;
NDH.GuessFactor 1.0, http://www.robocoderepository.com/BotFiles/3949/NDH.GuessFactor_1.0.jar&lt;br /&gt;
ne.Chimera 1.2,http://www.robocoderepository.com/BotFiles/3276/ne.Chimera_1.2.jar&lt;br /&gt;
nexus.One 1.0,http://darkcanuck.net/rumble/robots/nexus.One_1.0.jar&lt;br /&gt;
nexus.Prototype 1.0,http://darkcanuck.net/rumble/robots/nexus.Prototype_1.0.jar&lt;br /&gt;
nic.Nicator 2.4,http://www.robocoderepository.com/BotFiles/193/nic.Nicator_2.4.jar&lt;br /&gt;
nic.SnippetBot 1.0,http://www.robocoderepository.com/BotFiles/286/nic.SnippetBot_1.0.jar&lt;br /&gt;
nkn.mini.Jskr0 0.1,http://www.robocoderepository.com/BotFiles/3852/nkn.mini.Jskr0_0.1.jar&lt;br /&gt;
NG.LegatusLegionis 1.0,http://www.robocoderepository.com/BotFiles/3888/NG.LegatusLegionis_1.0.jar&lt;br /&gt;
NG.LegatusLegionis 1.1,http://www.robocoderepository.com/BotFiles/3889/NG.LegatusLegionis_1.1.jar&lt;br /&gt;
non.mega.NaN 0.1,http://www.robocoderepository.com/BotFiles/1960/non.mega.NaN_0.1.jar&lt;br /&gt;
non.mega.NoName 0.0,http://www.robocoderepository.com/BotFiles/1957/non.mega.NoName_0.0.jar&lt;br /&gt;
Noran.BitchingElk 0.054,http://www.robocoderepository.com/BotFiles/1855/Noran.BitchingElk_0.054.jar&lt;br /&gt;
Noran.RandomTargeting 0.02,http://www.robocoderepository.com/BotFiles/1849/Noran.RandomTargeting_0.02.jar&lt;br /&gt;
nova.Snow 1.0,http://www.robocoderepository.com/BotFiles/3623/nova.Snow_1.0.jar&lt;br /&gt;
ntc.Cannon 1.12test,http://www.robocoderepository.com/BotFiles/3815/ntc.Cannon_1.12test.jar&lt;br /&gt;
ntc.Evader 1.2,http://www.robocoderepository.com/BotFiles/3355/ntc.Evader_1.2.jar&lt;br /&gt;
ntc.Knowledge 1.1,http://www.robocoderepository.com/BotFiles/3354/ntc.Knowledge_1.1.jar&lt;br /&gt;
ntc.Lasers.Lasers 0.9,http://www.robocoderepository.com/BotFiles/3359/ntc.Lasers.Lasers_0.9.jar&lt;br /&gt;
ntc.Plains 0.9,http://www.robocoderepository.com/BotFiles/3381/ntc.Plains_0.9.jar&lt;br /&gt;
ntc.Swim 0.9,http://www.robocoderepository.com/BotFiles/3820/ntc.Swim_0.9.jar&lt;br /&gt;
ntw.Sighup 1.5,http://darkcanuck.net/rumble/robots/ntw.Sighup_1.5.jar&lt;br /&gt;
ntw.Sigsys 1.6,http://darkcanuck.net/rumble/robots/ntw.Sigsys_1.6.jar&lt;br /&gt;
nz.jdc.micro.HedgehogGF 1.3,http://www.robocoderepository.com/BotFiles/3626/nz.jdc.micro.HedgehogGF_1.3.jar&lt;br /&gt;
nz.jdc.micro.HedgehogP 1.2,http://www.robocoderepository.com/BotFiles/3622/nz.jdc.micro.HedgehogP_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophytePattern 1.0,http://www.robocoderepository.com/BotFiles/3578/nz.jdc.nano.NeophytePattern_1.0.jar&lt;br /&gt;
nz.jdc.nano.NeophytePRAL 1.2,http://www.robocoderepository.com/BotFiles/3568/nz.jdc.nano.NeophytePRAL_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophyteSRAL 1.2,http://www.robocoderepository.com/BotFiles/3567/nz.jdc.nano.NeophyteSRAL_1.2.jar&lt;br /&gt;
oa.weak.BotherBot 0.1,http://www.robocoderepository.com/BotFiles/2956/oa.weak.BotherBot_0.1.jar&lt;br /&gt;
oa.weak.FlyMk1 0.1,http://www.robocoderepository.com/BotFiles/2958/oa.weak.FlyMk1_0.1.jar&lt;br /&gt;
ola.Puffin 1.0,http://www.robocoderepository.com/BotFiles/3380/ola.Puffin_1.0.jar&lt;br /&gt;
oog.Caligula 1.0,http://www.robocoderepository.com/BotFiles/3957/oog.Caligula_1.0.jar&lt;br /&gt;
oog.melee.Capulet 0.1,http://www.robocoderepository.com/BotFiles/3765/oog.melee.Capulet_0.1.jar&lt;br /&gt;
oog.melee.CapuletDroid 1.0,http://www.robocoderepository.com/BotFiles/3829/oog.melee.CapuletDroid_1.0.jar&lt;br /&gt;
oog.melee.Mercutio 1.0,http://www.robocoderepository.com/BotFiles/3848/oog.melee.Mercutio_1.0.jar&lt;br /&gt;
oog.micro.MagicD3 0.41,http://www.robocoderepository.com/BotFiles/3801/oog.micro.MagicD3_0.41.jar&lt;br /&gt;
oog.micro.Maui 1.1,http://www.robocoderepository.com/BotFiles/3779/oog.micro.Maui_1.1.jar&lt;br /&gt;
oog.micro.SavantMicro 1.0,http://www.robocoderepository.com/BotFiles/3958/oog.micro.SavantMicro_1.0.jar&lt;br /&gt;
oog.nano.Fuatisha 1.0,http://www.robocoderepository.com/BotFiles/3720/oog.nano.Fuatisha_1.0.jar&lt;br /&gt;
oog.nano.MagicD2 2.4,http://www.robocoderepository.com/BotFiles/3749/oog.nano.MagicD2_2.4.jar&lt;br /&gt;
oog.nano.SavantVS 1.1,http://www.robocoderepository.com/BotFiles/3714/oog.nano.SavantVS_1.1.jar&lt;br /&gt;
oog.nano.SavantWS 0.1,http://www.robocoderepository.com/BotFiles/3709/oog.nano.SavantWS_0.1.jar&lt;br /&gt;
pa.Improved 1.1,http://darkcanuck.net/rumble/robots/pa.Improved_1.1.jar&lt;br /&gt;
pak.JakeTheTestingRobot .1b,http://www.robocoderepository.com/BotFiles/3373/pak.JakeTheTestingRobot_.1b.jar&lt;br /&gt;
pak.Dargon 1.0b,http://www.robocoderepository.com/BotFiles/3388/pak.Dargon_1.0b.jar&lt;br /&gt;
pak.Dargon .2c,http://www.robocoderepository.com/BotFiles/3389/pak.Dargon_.2c.jar&lt;br /&gt;
paolord.TheHulk 1.0,http://www.robocoderepository.com/BotFiles/3595/paolord.TheHulk_1.0.jar&lt;br /&gt;
patson.PatsonTestBot 1.0,http://www.robocoderepository.com/BotFiles/3324/patson.PatsonTestBot_1.0.jar&lt;br /&gt;
paulk.PaulV3 1.7,http://www.robocoderepository.com/BotFiles/3502/paulk.PaulV3_1.7.jar&lt;br /&gt;
paulk.PaulV3 1.6,http://www.robocoderepository.com/BotFiles/3497/paulk.PaulV3_1.6.jar&lt;br /&gt;
paulk.PaulV3 1.5,http://www.robocoderepository.com/BotFiles/3496/paulk.PaulV3_1.5.jar&lt;br /&gt;
paulk.PaulV3 1.3,http://www.robocoderepository.com/BotFiles/3495/paulk.PaulV3_1.3.jar&lt;br /&gt;
pb.Oscillator 1.0,http://www.robocoderepository.com/BotFiles/2070/pb.Oscillator_1.0.jar&lt;br /&gt;
pe.mini.SandboxMini 1.2,http://www.robocoderepository.com/BotFiles/917/pe.mini.SandboxMini_1.2.jar&lt;br /&gt;
pe.minimelee.SandboxMiniMelee 1.1,http://www.robocoderepository.com/BotFiles/934/pe.minimelee.SandboxMiniMelee_1.1.jar&lt;br /&gt;
pe.SandboxDT 3.02,http://www.robocoderepository.com/BotFiles/793/pe.SandboxDT_3.02.jar&lt;br /&gt;
pe.SandboxLump 1.52,http://www.robocoderepository.com/BotFiles/731/pe.SandboxLump_1.52.jar&lt;br /&gt;
pedersen.Hubris 2.4,http://home.comcast.net/~kokyunage/robocode/hubris/pedersen.Hubris_2.4.jar&lt;br /&gt;
pedersen.Ugluk 1.0,http://home.comcast.net/~kokyunage/robocode/ugluk/pedersen.Ugluk_1.0.jar&lt;br /&gt;
pez.clean.Swiffer 0.2.9,http://www.robocoderepository.com/BotFiles/1883/pez.clean.Swiffer_0.2.9.jar&lt;br /&gt;
pez.frankie.Frankie 0.9.6.1,http://www.robocoderepository.com/BotFiles/1565/pez.frankie.Frankie_0.9.6.1.jar&lt;br /&gt;
pez.gloom.GloomyDark 0.9.2,http://www.robocoderepository.com/BotFiles/1741/pez.gloom.GloomyDark_0.9.2.jar&lt;br /&gt;
pez.mako.Mako 1.5,http://www.robocoderepository.com/BotFiles/1317/pez.mako.Mako_1.5.jar&lt;br /&gt;
pez.micro.Aristocles 0.3.7,http://www.robocoderepository.com/BotFiles/1923/pez.micro.Aristocles_0.3.7.jar&lt;br /&gt;
pez.mini.ChironexFleckeri 0.5,http://www.robocoderepository.com/BotFiles/2513/pez.mini.ChironexFleckeri_0.5.jar&lt;br /&gt;
pez.mini.Gouldingi 1.5,http://www.robocoderepository.com/BotFiles/1351/pez.mini.Gouldingi_1.5.jar&lt;br /&gt;
pez.mini.Pugilist 2.4.18,http://darkcanuck.net/rumble/robots/pez.mini.Pugilist_2.4.18.jar&lt;br /&gt;
pez.mini.Tityus 0.9.1,http://www.robocoderepository.com/BotFiles/1657/pez.mini.Tityus_0.9.1.jar&lt;br /&gt;
pez.mini.VertiLeach 0.4.0,http://www.robocoderepository.com/BotFiles/1744/pez.mini.VertiLeach_0.4.0.jar&lt;br /&gt;
pez.nano.Icarus 0.3,http://www.robocoderepository.com/BotFiles/2353/pez.nano.Icarus_0.3.jar&lt;br /&gt;
pez.nano.LittleEvilBrother 0.1,http://www.robocoderepository.com/BotFiles/2056/pez.nano.LittleEvilBrother_0.1.jar&lt;br /&gt;
pez.rumble.Ali 0.4.9,http://www.robocoderepository.com/BotFiles/2416/pez.rumble.Ali_0.4.9.jar&lt;br /&gt;
pez.rumble.CassiusClay 2rho.01b,http://www.dijitari.com/void/robocode/pez.rumble.CassiusClay_2rho.01b.jar&lt;br /&gt;
pfvicm.Sobieski 7.2.3b,http://www.robocoderepository.com/BotFiles/2911/pfvicm.Sobieski_7.2.3b.jar&lt;br /&gt;
ph.micro.Pikeman 0.4.5,http://www.robocoderepository.com/BotFiles/2364/ph.micro.Pikeman_0.4.5.jar&lt;br /&gt;
ph.mini.Archer 0.6.6,http://www.robocoderepository.com/BotFiles/2326/ph.mini.Archer_0.6.6.jar&lt;br /&gt;
ph.musketeer.Musketeer 0.6,http://www.robocoderepository.com/BotFiles/2281/ph.musketeer.Musketeer_0.6.jar&lt;br /&gt;
ph.Thinker 0.2.5,http://www.robocoderepository.com/BotFiles/2336/ph.Thinker_0.2.5.jar&lt;br /&gt;
pi.Dark 10,http://darkcanuck.net/rumble/robots/pi.Dark_10.jar&lt;br /&gt;
pl.Drum 0.1,http://darkcanuck.net/rumble/robots/pl.Drum_0.1.jar&lt;br /&gt;
pl.Patton.GeneralPatton 1.54,http://darkcanuck.net/rumble/robots/pl.Patton.GeneralPatton_1.54.jar&lt;br /&gt;
pla.Memnoch 0.5,http://www.robocoderepository.com/BotFiles/2211/pla.Memnoch_0.5.jar&lt;br /&gt;
PK.Twardy 0.4.2,http://www.robocoderepository.com/BotFiles/3272/PK.Twardy_0.4.2.jar&lt;br /&gt;
pkdeken.Paladin 1.0,http://www.robocoderepository.com/BotFiles/3556/pkdeken.Paladin_1.0.jar&lt;br /&gt;
PkKillers.PkAssassin 1.0,http://www.robocoderepository.com/BotFiles/3485/PkKillers.PkAssassin_1.0.jar&lt;br /&gt;
pmc.SniperBot 1.0,http://darkcanuck.net/rumble/robots/pmc.SniperBot_1.0.jar&lt;br /&gt;
positive.Portia 1.26e,http://sites.google.com/site/robopositive/portia/positive.Portia_1.26e.jar&lt;br /&gt;
povik.nano.Smilee 0.2.1,http://www.robocoderepository.com/BotFiles/3950/povik.nano.Smilee_0.2.1.jar&lt;br /&gt;
projectx.ProjectNano 2.0,http://darkcanuck.net/rumble/robots/projectx.ProjectNano_2.0.jar&lt;br /&gt;
projectx.TestNano 1.0,http://www.robocoderepository.com/BotFiles/3444/projectx.TestNano_1.0.jar&lt;br /&gt;
pulsar.PulsarMax 0.8.9,http://www.robocoderepository.com/BotFiles/2227/pulsar.PulsarMax_0.8.9.jar&lt;br /&gt;
pulsar.PulsarNano 0.2.4,http://www.robocoderepository.com/BotFiles/2335/pulsar.PulsarNano_0.2.4.jar&lt;br /&gt;
pulsar.Nanis 0.3,http://www.robocoderepository.com/BotFiles/2560/pulsar.Nanis_0.3.jar&lt;br /&gt;
qohnil.blot.BlotBot 3.61,http://www.robocoderepository.com/BotFiles/546/qohnil.blot.BlotBot_3.61.jar&lt;br /&gt;
Queens_teamrobot.UltraRazor 1.0,http://www.robocoderepository.com/BotFiles/2108/Queens_teamrobot.UltraRazor_1.0.jar&lt;br /&gt;
quietus.Invader 0.1,http://robocode.rleach.id.au/quietus.Invader_0.1.jar&lt;br /&gt;
quietus.NarrowRadar 0.1,http://robocode.rleach.id.au/quietus.NarrowRadar_0.1.jar&lt;br /&gt;
radnor.DoctorBob 1.42,http://www.robocoderepository.com/BotFiles/2133/radnor.DoctorBob_1.42.jar&lt;br /&gt;
radnor.RamRod 1.0,http://www.robocoderepository.com/BotFiles/2085/radnor.RamRod_1.0.jar&lt;br /&gt;
rampancy.Durandal 2.2d,http://stanford.edu/~mchunlum/robocode/rampancy.Durandal_2.2d.jar&lt;br /&gt;
rampancy.micro.Epiphron 1.0,http://stanford.edu/~mchunlum/robocode/rampancy.micro.Epiphron_1.0.jar&lt;br /&gt;
rapture.Rapture 2.13,http://www.robocoderepository.com/BotFiles/15/rapture.Rapture_2.13.jar&lt;br /&gt;
ratosh.nano.Debo 1.36,http://www.robocoderepository.com/BotFiles/1702/ratosh.nano.Debo_1.36.jar&lt;br /&gt;
ratosh.Nobo 0.21,http://www.robocoderepository.com/BotFiles/1612/ratosh.Nobo_0.21.jar&lt;br /&gt;
ratosh.Wesco 1.4,http://www.robocoderepository.com/BotFiles/1914/ratosh.Wesco_1.4.jar&lt;br /&gt;
rcb.Vanessa03 0,http://www.robocoderepository.com/BotFiles/1364/rcb.Vanessa03_0.jar&lt;br /&gt;
rcp.Kuramatron 1.0,http://www.robocoderepository.com/BotFiles/3307/rcp.Kuramatron_1.0.jar&lt;br /&gt;
rdt199.Warlord 0.73,http://www.robocoderepository.com/BotFiles/1130/rdt199.Warlord_0.73.jar&lt;br /&gt;
reaper.Reaper 1.1,http://www.robocoderepository.com/BotFiles/3412/reaper.Reaper_1.1.jar&lt;br /&gt;
repositorio.NanoStep 1.0,http://darkcanuck.net/rumble/robots/repositorio.NanoStep_1.0.jar&lt;br /&gt;
rfj.Sunburn 1.1,http://www.robocoderepository.com/BotFiles/1060/rfj.Sunburn_1.1.jar&lt;br /&gt;
rijteam.SmartDodge 1.1,http://www.robocoderepository.com/BotFiles/2959/rijteam.SmartDodge_1.1.jar&lt;br /&gt;
robar.haiku.Spike 1.0,http://invitel.hu/artrog/robar.haiku.Spike_1.0.jar&lt;br /&gt;
robar.micro.Gladius 1.15,http://invitel.hu/artrog/robar.micro.Gladius_1.15.jar&lt;br /&gt;
robar.micro.Kirbyi 1.0,http://hunrobar.freeblog.hu/files/myrobots/robar.micro.Kirbyi_1.0.jar&lt;br /&gt;
robar.micro.Topaz 0.25,http://invitel.hu/artrog/robar.micro.Topaz_0.25.jar&lt;br /&gt;
robar.nano.Assertive 0.3,http://invitel.hu/artrog/robar.nano.Assertive_0.3.jar&lt;br /&gt;
robar.nano.BlackWidow 1.3,http://www.robocoderepository.com/BotFiles/3574/robar.nano.BlackWidow_1.3.jar&lt;br /&gt;
robar.nano.Breeze 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Breeze_0.3.jar&lt;br /&gt;
robar.nano.Mosquito 1.1,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Mosquito_1.1.jar&lt;br /&gt;
robar.nano.MosquitoPM 1.0,http://www.robocoderepository.com/BotFiles/3559/robar.nano.MosquitoPM_1.0.jar&lt;br /&gt;
robar.nano.Prestige 1.0,http://www.robocoderepository.com/BotFiles/3507/robar.nano.Prestige_1.0.jar&lt;br /&gt;
robar.nano.Pugio 1.49,http://www.robocoderepository.com/BotFiles/3710/robar.nano.Pugio_1.49.jar&lt;br /&gt;
robar.nano.Scytodes 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Scytodes_0.3.jar&lt;br /&gt;
robar.nano.Vespa 0.95,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Vespa_0.95.jar&lt;br /&gt;
robo.PartsBot 1.1,http://darkcanuck.net/rumble/robots/robo.PartsBot_1.1.jar&lt;br /&gt;
RobotMarco.MarcoV 0.1,http://www.robocoderepository.com/BotFiles/3941/RobotMarco.MarcoV_0.1.jar&lt;br /&gt;
rsim.micro.uCatcher 0.1,http://sites.google.com/site/rsimander/robocode/rsim.micro.uCatcher_0.1.jar&lt;br /&gt;
rsim.mini.BulletCatcher 0.4,http://www.robocoderepository.com/BotFiles/3737/rsim.mini.BulletCatcher_0.4.jar&lt;br /&gt;
rsk1.RSK1 4.0,http://www.robocoderepository.com/BotFiles/3284/rsk1.RSK1_4.0.jar&lt;br /&gt;
ruc.nano.Zealot 0.2,http://www.robocoderepository.com/BotFiles/1229/ruc.nano.Zealot_0.2.jar&lt;br /&gt;
ry.LightningBug 1.0,http://www.robocoderepository.com/BotFiles/3472/ry.LightningBug_1.0.jar&lt;br /&gt;
ry.VirtualGunExperiment 1.2.0,http://www.robocoderepository.com/BotFiles/3662/ry.VirtualGunExperiment_1.2.0.jar&lt;br /&gt;
ry.Worst 1.0,http://www.robocoderepository.com/BotFiles/3645/ry.Worst_1.0.jar&lt;br /&gt;
rz.Aleph 0.34,http://www.robocoderepository.com/BotFiles/1993/rz.Aleph_0.34.jar&lt;br /&gt;
rz.Apollon 0.23,http://www.robocoderepository.com/BotFiles/2098/rz.Apollon_0.23.jar&lt;br /&gt;
rz.Artist 0.2,http://www.robocoderepository.com/BotFiles/2156/rz.Artist_0.2.jar&lt;br /&gt;
rz.GlowBlow 2.31,http://www.robocoderepository.com/BotFiles/1354/rz.GlowBlow_2.31.jar&lt;br /&gt;
rz.GlowBlowAPM 1.0,http://www.robocoderepository.com/BotFiles/1382/rz.GlowBlowAPM_1.0.jar&lt;br /&gt;
rz.GlowBlowMelee 1.4,http://www.robocoderepository.com/BotFiles/1436/rz.GlowBlowMelee_1.4.jar&lt;br /&gt;
rz.HawkOnFire 0.1,http://www.robocoderepository.com/BotFiles/1575/rz.HawkOnFire_0.1.jar&lt;br /&gt;
rz.SmallDevil 1.502,http://www.robocoderepository.com/BotFiles/1322/rz.SmallDevil_1.502.jar&lt;br /&gt;
sam.ChipmunkDuelist 1.0,http://www.robocoderepository.com/BotFiles/3094/sam.ChipmunkDuelist_1.0.jar&lt;br /&gt;
sam.Samspin 1.0,http://www.robocoderepository.com/BotFiles/2823/sam.Samspin_1.0.jar&lt;br /&gt;
sanyi.mikrobi.Roberto 1.0,http://www.robocoderepository.com/BotFiles/3929/sanyi.mikrobi.Roberto_1.0.jar&lt;br /&gt;
sch.Simone 0.3d,http://www.robocoderepository.com/BotFiles/374/sch.Simone_0.3d.jar&lt;br /&gt;
serenity.moonlightBat 1.17,http://www.robocoderepository.com/BotFiles/2877/serenity.moonlightBat_1.17.jar&lt;br /&gt;
serenity.nonSense 1.39,http://www.robocoderepository.com/BotFiles/3586/serenity.nonSense_1.39.jar&lt;br /&gt;
serenity.serenityFire 1.29,http://www.robocoderepository.com/BotFiles/3071/serenity.serenityFire_1.29.jar&lt;br /&gt;
sgp.JollyNinja 3.53,http://www.robocoderepository.com/BotFiles/183/sgp.JollyNinja_3.53.jar&lt;br /&gt;
sgp.MadHatter 4.13,http://www.robocoderepository.com/BotFiles/156/sgp.MadHatter_4.13.jar&lt;br /&gt;
sgp.nano.FurryLeech 1.0,http://www.robocoderepository.com/BotFiles/802/sgp.nano.FurryLeech_1.0.jar&lt;br /&gt;
sgp.ShiningBeetle 1.1,http://www.robocoderepository.com/BotFiles/498/sgp.ShiningBeetle_1.1.jar&lt;br /&gt;
sgp.SleepingGoat 1.1,http://www.robocoderepository.com/BotFiles/500/sgp.SleepingGoat_1.1.jar&lt;br /&gt;
SHAM.WOW 1.4,http://darkcanuck.net/rumble/robots/SHAM.WOW_1.4.jar&lt;br /&gt;
shinh.Entangled 0.3,http://www.robocoderepository.com/BotFiles/1070/shinh.Entangled_0.3.jar&lt;br /&gt;
shrub.Silver v048,http://www.robocoderepository.com/BotFiles/449/shrub.Silver_v048.jar&lt;br /&gt;
shrub.Vapour v159,http://www.robocoderepository.com/BotFiles/2654/shrub.Vapour_v159.jar&lt;br /&gt;
shu.nitro.LENIN .T34,http://www.robocoderepository.com/BotFiles/1956/shu.nitro.LENIN_.T34.jar&lt;br /&gt;
sigterm.Sigterm 1.0,http://darkcanuck.net/rumble/robots/sigterm.Sigterm_1.0.jar&lt;br /&gt;
simonton.beta.LifelongObsession 0.5.1,http://www.robocoderepository.com/BotFiles/3195/simonton.beta.LifelongObsession_0.5.1.jar&lt;br /&gt;
simonton.GFNano_D 3.1b,http://www.robocoderepository.com/BotFiles/3114/simonton.GFNano_D_3.1b.jar&lt;br /&gt;
simonton.nano.WeekendObsession_S 1.7,http://www.robocoderepository.com/BotFiles/3117/simonton.nano.WeekendObsession_S_1.7.jar&lt;br /&gt;
simonton.micro.GFMicro 1.0,http://upload.frozenonline.com/view/simonton/simonton.micro.GFMicro_1.0.jar&lt;br /&gt;
simonton.micro.WeeklongObsession 3.4.1,http://upload.frozenonline.com/view/simonton/simonton.micro.WeeklongObsession_3.4.1.jar&lt;br /&gt;
simonton.mini.WeeksOnEnd 1.10.4,http://upload.frozenonline.com/view/simonton/simonton.mini.WeeksOnEnd_1.10.4.jar&lt;br /&gt;
skm.butterfly 1.0,http://www.robocoderepository.com/BotFiles/3868/sean1.jar&lt;br /&gt;
skm.Ryubot 1.0,http://www.robocoderepository.com/BotFiles/3594/skm.Ryubot_1.0.jar&lt;br /&gt;
skm.PateranBotlock2 1.0,http://www.robocoderepository.com/BotFiles/3591/skm.PateranBotlock2_1.0.jar&lt;br /&gt;
sL300.Mozart life,http://www.robocoderepository.com/BotFiles/1992/sL300.Mozart_life.jar&lt;br /&gt;
sm.Devil 7.3,http://www.robocoderepository.com/BotFiles/1481/sm.Devil_7.3.jar&lt;br /&gt;
sng.arco.Arco 0.0,http://www.robocoderepository.com/BotFiles/3279/sng.arco.Arco_0.0.jar&lt;br /&gt;
sos.SOS 1.0,http://www.robocoderepository.com/BotFiles/3489/sos.SOS_1.0.jar&lt;br /&gt;
spinnercat.CopyKat 1.2.3,http://www.robocoderepository.com/BotFiles/3818/spinnercat.CopyKat_1.2.3.jar&lt;br /&gt;
spinnercat.Limit .01,http://www.robocoderepository.com/BotFiles/3659/spinnercat.Limit_.01.jar&lt;br /&gt;
spinnercat.Kitten 1.6,http://www.robocoderepository.com/BotFiles/3819/spinnercat.Kitten_1.6.jar&lt;br /&gt;
spinnercat.haiku.Refrigerator 1.1,http://www.robocoderepository.com/BotFiles/3688/spinnercat.haiku.Refrigerator_1.1.jar&lt;br /&gt;
spinnercat.mega.Tardis 1.2,http://www.robocoderepository.com/BotFiles/3692/spinnercat.mega.Tardis_1.2.jar&lt;br /&gt;
spinnercat.Robovirus 2.718,http://www.robocoderepository.com/BotFiles/3657/spinnercat.Robovirus_2.718.jar&lt;br /&gt;
sqTank.waveSurfing.LionWWSVMvoid 0.01,http://www.robocoderepository.com/BotFiles/3436/sqTank.waveSurfing.LionWWSVMvoid_0.01.jar&lt;br /&gt;
starpkg.StarViewerZ 1.26,http://www.robocoderepository.com/BotFiles/1931/starpkg.StarViewerZ_1.26.jar&lt;br /&gt;
staticline.Whiskey 0.5.2,http://www.robocoderepository.com/BotFiles/3939/staticline.Whiskey_0.5.2.jar&lt;br /&gt;
stefw.Tigger 0.0.23,http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar&lt;br /&gt;
stelo.Chord 1.0,http://darkcanuck.net/rumble/robots/stelo.Chord_1.0.jar&lt;br /&gt;
stelo.FretNano 1.1,http://darkcanuck.net/rumble/robots/stelo.FretNano_1.1.jar&lt;br /&gt;
stelo.Lifestealer 1.0,http://darkcanuck.net/rumble/robots/stelo.Lifestealer_1.0.jar&lt;br /&gt;
stelo.MatchupMini 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupMini_1.1.jar&lt;br /&gt;
stelo.MatchupMicro 1.2,http://darkcanuck.net/rumble/robots/stelo.MatchupMicro_1.2.jar&lt;br /&gt;
stelo.MatchupAGF 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupAGF_1.1.jar&lt;br /&gt;
stelo.MatchupWS 1.2c,http://darkcanuck.net/rumble/robots/stelo.MatchupWS_1.2c.jar&lt;br /&gt;
stelo.Mirror 1.1,http://www.robocoderepository.com/BotFiles/3034/stelo.Mirror_1.1.jar&lt;br /&gt;
stelo.MirrorMicro 1.1,http://darkcanuck.net/rumble/robots/stelo.MirrorMicro_1.1.jar&lt;br /&gt;
stelo.MirrorNano 1.4,http://darkcanuck.net/rumble/robots/stelo.MirrorNano_1.4.jar&lt;br /&gt;
stelo.MoojukNano 1.2,http://darkcanuck.net/rumble/robots/stelo.MoojukNano_1.2.jar&lt;br /&gt;
stelo.PastFuture 2.1.9,http://www.robocoderepository.com/BotFiles/3910/stelo.PastFuture_2.1.9.jar&lt;br /&gt;
stelo.PatternRobot 1.0,http://www.robocoderepository.com/BotFiles/2995/stelo.PatternRobot_1.0.jar&lt;br /&gt;
stelo.PianistNano 1.3,http://darkcanuck.net/rumble/robots/stelo.PianistNano_1.3.jar&lt;br /&gt;
stelo.RamTrackSurfer 1.2,http://darkcanuck.net/rumble/robots/stelo.RamTrackSurfer_1.2.jar&lt;br /&gt;
stelo.Randomness 1.1,http://www.robocoderepository.com/BotFiles/3021/stelo.Randomness_1.1.jar&lt;br /&gt;
stelo.Spread 0.2,http://www.robocoderepository.com/BotFiles/3922/stelo.Spread_0.2.jar&lt;br /&gt;
stelo.SteloTestNano 1.0,http://darkcanuck.net/rumble/robots/stelo.SteloTestNano_1.0.jar&lt;br /&gt;
stelo.UnfoolableNano 1.0,http://darkcanuck.net/rumble/robots/stelo.UnfoolableNano_1.0.jar&lt;br /&gt;
stelo.UntouchableNano 1.4,http://darkcanuck.net/rumble/robots/stelo.UntouchableNano_1.4.jar&lt;br /&gt;
step.nanoPri 1.0,http://www.robocoderepository.com/BotFiles/2996/step.nanoPri_1.0.jar&lt;br /&gt;
step.NanoBidu 1.0,http://www.robocoderepository.com/BotFiles/3014/step.NanoBidu_1.0.jar&lt;br /&gt;
stf.PanzerGeneral 0.1,http://www.robocoderepository.com/BotFiles/2233/stf.PanzerGeneral_0.1.jar&lt;br /&gt;
stordy.StordyBot 1.0,http://sites.google.com/site/stordyrobo/Home/stordy.StordyBot_1.0.jar&lt;br /&gt;
strider.Festis 1.2.1,http://www.robocoderepository.com/BotFiles/2355/strider.Festis_1.2.1.jar&lt;br /&gt;
strider.Mer 1.1.0,http://www.robocoderepository.com/BotFiles/2360/strider.Mer_1.1.0.jar&lt;br /&gt;
stuff.Vlad 0.1,http://www.robocoderepository.com/BotFiles/3701/stuff.Vlad_0.1.jar&lt;br /&gt;
sul.NanoR2 1.32,http://www.robocoderepository.com/BotFiles/3348/sul.NanoR2_1.32.jar&lt;br /&gt;
sul.Pinkbot 1.1,http://www.robocoderepository.com/BotFiles/3346/sul.Pinkbot_1.1.jar&lt;br /&gt;
sul.Bicephal 1.2,http://www.robocoderepository.com/BotFiles/3343/sul.Bicephal_1.2.jar&lt;br /&gt;
sul.BlueBot 1.0,http://www.robocoderepository.com/BotFiles/3347/sul.BlueBot_1.0.jar&lt;br /&gt;
SuperSample.SuperCrazy 1.0,http://www.csdgn.org/files/bots/SuperSample.SuperCrazy_1.0.jar&lt;br /&gt;
syl.Centipede 0.5,http://www.robocoderepository.com/BotFiles/1254/syl.Centipede_0.5.jar&lt;br /&gt;
synapse.Geomancy 15,http://sites.google.com/site/synapsebots/home/synapse.Geomancy_15.jar?attredirects=0&lt;br /&gt;
synapse.rsim.GeomancyBS 0.11,http://robocoderepository.com/BotFiles/3758/synapse.rsim.GeomancyBS_0.11.jar&lt;br /&gt;
synnalagma.NeuralPremier 0.51,http://www.robocoderepository.com/BotFiles/1557/synnalagma.NeuralPremier_0.51.jar&lt;br /&gt;
synnalagma.test.MiniNeural 1.1,http://www.robocoderepository.com/BotFiles/1754/synnalagma.test.MiniNeural_1.1.jar&lt;br /&gt;
tad.Dalek98 0.98,http://darkcanuck.net/rumble/robots/tad.Dalek98_0.98.jar&lt;br /&gt;
takeBot.SpinSpiral 1.2,http://www.robocoderepository.com/BotFiles/312/takeBot.SpinSpiral_1.2.jar&lt;br /&gt;
takeBot.SpiralCrash 1.0,http://www.robocoderepository.com/BotFiles/1013/takeBot.SpiralCrash_1.0.jar&lt;br /&gt;
takeBot.WeavingWiggle 1.1,http://www.robocoderepository.com/BotFiles/1012/takeBot.WeavingWiggle_1.1.jar&lt;br /&gt;
tango.Recrimpo 2.51,http://www.robocoderepository.com/BotFiles/2015/tango.Recrimpo_2.51.jar&lt;br /&gt;
taqho.taqbot 1.0,http://www.robocoderepository.com/BotFiles/1316/taqho.taqbot_1.0.jar&lt;br /&gt;
tcf.Drifter 29,http://www.7sun.com/robocode/robots/tcf.Drifter_29.jar&lt;br /&gt;
tcf.Repat3 2,http://www.robocoderepository.com/BotFiles/3328/tcf.Repat3_2.jar&lt;br /&gt;
techdude.kombat.FlamingKombat 1.5,http://www.robocoderepository.com/BotFiles/2810/techdude.kombat.FlamingKombat_1.5.jar&lt;br /&gt;
techdude.Class2C.Class2C 0.1,http://www.robocoderepository.com/BotFiles/3078/techdude.Class2C.Class2C_0.1.jar&lt;br /&gt;
test.Podgy 4.0,http://www.robocoderepository.com/BotFiles/3214/test.Podgy_4.0.jar&lt;br /&gt;
test.Fuzzer 1.0.1,http://www.robocoderepository.com/BotFiles/3345/test.Fuzzer_1.0.1.jar&lt;br /&gt;
testantiswapgun.AntiSwap 1.0,http://www.robocode.ilbello.com/asd.AntiSwap_1.0.jar&lt;br /&gt;
throxbot.ThroxBot 0.1,http://www.robocoderepository.com/BotFiles/2548/throxbot.ThroxBot_0.1.jar&lt;br /&gt;
tide.pear.Pear 0.62.1,http://www.robocoderepository.com/BotFiles/2393/tide.pear.Pear_0.62.1.jar&lt;br /&gt;
timmit.micro.TimXJ 0.22,http://www.robocoderepository.com/BotFiles/1683/timmit.micro.TimXJ_0.22.jar&lt;br /&gt;
timmit.mini.TimVA 0.43,http://www.robocoderepository.com/BotFiles/1681/timmit.mini.TimVA_0.43.jar&lt;br /&gt;
timmit.nano.TimCat 0.13,http://www.robocoderepository.com/BotFiles/1600/timmit.nano.TimCat_0.13.jar&lt;br /&gt;
timmit.nano.TimDog 0.33,http://www.robocoderepository.com/BotFiles/1602/timmit.nano.TimDog_0.33.jar&lt;br /&gt;
timmit.TimmiT 0.22,http://www.robocoderepository.com/BotFiles/1468/timmit.TimmiT_0.22.jar&lt;br /&gt;
tjk.Newton 0.7,http://keenehs.homeip.net:90/rumble/robots/tjk.Newton_0.7.jar&lt;br /&gt;
tlp.ThreeLeggedPig 1,http://pages.prodigy.net/franz1/house/tlp.ThreeLeggedPig_1.jar&lt;br /&gt;
tm.Yuugao 1.0,http://www.robocoderepository.com/BotFiles/1056/tm.Yuugao_1.0.jar&lt;br /&gt;
tobe.calypso.Calypso 4.1,http://www.robocoderepository.com/BotFiles/784/tobe.calypso.Calypso_4.1.jar&lt;br /&gt;
tobe.Fusion 1.0,http://www.robocoderepository.com/BotFiles/649/tobe.Fusion_1.0.jar&lt;br /&gt;
tobe.mini.Charon 0.9,http://www.robocoderepository.com/BotFiles/836/tobe.mini.Charon_0.9.jar&lt;br /&gt;
tobe.Relativity 3.9,http://www.robocoderepository.com/BotFiles/360/tobe.Relativity_3.9.jar&lt;br /&gt;
tobe.Saturn lambda,http://www.robocoderepository.com/BotFiles/685/tobe.Saturn_lambda.jar&lt;br /&gt;
tornyil.bottomup.BottomUp 1.05,http://www.alpha-consulting.hu/robo/tornyil.bottomup.BottomUp_1.05.jar&lt;br /&gt;
tornyil.Lajcsi2.Lajcsi2sm 1.0,http://www.alpha-consulting.hu/robo/tornyil.Lajcsi2.Lajcsi2sm_1.0.jar&lt;br /&gt;
toz.Gnome 1.1,http://darkcanuck.net/rumble/robots/toz.Gnome_1.1.jar&lt;br /&gt;
trab.Crusader 0.1.7,http://www.stud.ntnu.no/~grashei/bots/trab.Crusader_0.1.7.jar&lt;br /&gt;
trab.nano.AinippeNano 1.3,http://www.stud.ntnu.no/~grashei/bots/trab.nano.AinippeNano_1.3.jar&lt;br /&gt;
tw.Exterminator 1.0,http://www.robocoderepository.com/BotFiles/3607/tw.Exterminator_1.0.jar&lt;br /&gt;
tzu.TheArtOfWar 1.2,http://darkcanuck.net/rumble/robots/tzu.TheArtOfWar_1.2.jar&lt;br /&gt;
uccc.Dorito 1.12,http://www.devfluid.com/csc_w/images/e/e9/Uccc.Dorito_1.12.jar&lt;br /&gt;
uccc.MilkyWay 1.01,http://www.devfluid.com/csc_w/images/a/a6/Uccc.MilkyWay_1.01.jar&lt;br /&gt;
uccc.RingDing 1.12,http://www.devfluid.com/csc_w/images/5/5f/Uccc.RingDing_1.12.jar&lt;br /&gt;
uccc.Scrapple 1.0,http://www.devfluid.com/csc_w/images/7/7a/Uccc.Scrapple_1.0.jar&lt;br /&gt;
urdos.URDOS 1.3,http://darkcanuck.net/rumble/robots/urdos.URDOS_1.3.jar&lt;br /&gt;
usa.nano.Nemo 2.0,http://www.robocoderepository.com/BotFiles/2045/usa.nano.Nemo_2.0.jar&lt;br /&gt;
vic.Locke 0.7.5.5,http://www.robocoderepository.com/BotFiles/2115/vic.Locke_0.7.5.5.jar&lt;br /&gt;
vft.Valkyrie 1.0,http://www.robocoderepository.com/BotFiles/3009/vft.Valkyrie_1.0.jar&lt;br /&gt;
vft.Hrist 1.0,http://darkcanuck.net/rumble/robots/vft.Hrist_1.0.jar&lt;br /&gt;
vjik.UnViolation 1.1,http://www.robocoderepository.com/BotFiles/3886/vjik.UnViolation_1.1.jar&lt;br /&gt;
voidious.Diamond 1.5.22,http://www.dijitari.com/void/robocode/voidious.Diamond_1.5.22.jar&lt;br /&gt;
voidious.Dookious 1.573c,http://www.dijitari.com/void/robocode/voidious.Dookious_1.573c.jar&lt;br /&gt;
voidious.micro.Jen 1.11,http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar&lt;br /&gt;
voidious.mini.Komarious 1.88,http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar&lt;br /&gt;
vuen.Fractal 0.55,http://www.robocoderepository.com/BotFiles/1579/vuen.Fractal_0.55.jar&lt;br /&gt;
wcsv.Engineer.Engineer 0.5.4,http://darkcanuck.net/rumble/robots/wcsv.Engineer.Engineer_0.5.4.jar&lt;br /&gt;
wcsv.PowerHouse.PowerHouse 1.7e3,http://darkcanuck.net/rumble/robots/wcsv.PowerHouse.PowerHouse_1.7e3.jar&lt;br /&gt;
wcsv.mega.PowerHouse2 0.2,http://darkcanuck.net/rumble/robots/wcsv.mega.PowerHouse2_0.2.jar&lt;br /&gt;
wcsv.Stampede 1.3.3,http://www.robocoderepository.com/BotFiles/2527/wcsv.Stampede_1.3.3.jar&lt;br /&gt;
wcsv.Stampede2.Stampede2 1.1.0,http://www.robocoderepository.com/BotFiles/2714/wcsv.Stampede2.Stampede2_1.1.0.jar&lt;br /&gt;
whind.Constitution 0.7.1,http://www.robocoderepository.com/BotFiles/2812/whind.Constitution_0.7.1.jar&lt;br /&gt;
whind.Strength 0.6.4,http://whindgames.50webs.com/otherstuff/whind.Strength_0.6.4.jar&lt;br /&gt;
whind.StrengthBee 0.6.4,http://whindgames.50webs.com/otherstuff/whind.StrengthBee_0.6.4.jar&lt;br /&gt;
whind.Wisdom 0.5.1,http://www.robocoderepository.com/BotFiles/2742/whind.Wisdom_0.5.1.jar&lt;br /&gt;
wiki.BasicGFSurfer 1.02,http://www.dijitari.com/void/robocode/wiki.BasicGFSurfer_1.02.jar&lt;br /&gt;
wiki.mako.MakoHT 1.2.2.1,http://www.robocoderepository.com/BotFiles/1374/wiki.mako.MakoHT_1.2.2.1.jar&lt;br /&gt;
wiki.mini.BlackDestroyer 0.9.0,http://www.robocoderepository.com/BotFiles/1927/wiki.mini.BlackDestroyer_0.9.0.jar&lt;br /&gt;
wiki.mini.GouldingiHT 1.0,http://www.robocoderepository.com/BotFiles/1383/wiki.mini.GouldingiHT_1.0.jar&lt;br /&gt;
wiki.mini.Griffon 0.1,http://www.robocoderepository.com/BotFiles/1774/wiki.mini.Griffon_0.1.jar&lt;br /&gt;
wiki.mini.Sedan 1.0,http://www.robocoderepository.com/BotFiles/1676/wiki.mini.Sedan_1.0.jar&lt;br /&gt;
wiki.nano.DevilFISH 1.0,http://www.robocoderepository.com/BotFiles/2235/wiki.nano.DevilFISH_1.0.jar&lt;br /&gt;
wiki.nano.RaikoNano 1.1,http://www.robocoderepository.com/BotFiles/2163/wiki.nano.RaikoNano_1.1.jar&lt;br /&gt;
wiki.WaveRammer 1.0,http://www.robocoderepository.com/BotFiles/3505/wiki.WaveRammer_1.0.jar&lt;br /&gt;
wiki.Wolverine 2.1,http://darkcanuck.net/rumble/robots/wiki.Wolverine_2.1.jar&lt;br /&gt;
wilson.Chameleon 0.91,http://www.robocoderepository.com/BotFiles/1608/wilson.Chameleon_0.91.jar&lt;br /&gt;
winamp32.micro.MicroMacro 1.0,http://www.robocoderepository.com/BotFiles/2891/winamp32.micro.MicroMacro_1.0.jar&lt;br /&gt;
wit.Chuliath 1.0,http://www.robocoderepository.com/BotFiles/2306/wit.Chuliath_1.0.jar&lt;br /&gt;
wit.Deep7 2.0,http://www.robocoderepository.com/BotFiles/2313/wit.Deep7_2.0.jar&lt;br /&gt;
xiongan.Xiongan 1.1,http://www.robocoderepository.com/BotFiles/3565/xiongan.Xiongan_1.1.jar&lt;br /&gt;
yarghard.Y101 1.0,http://sliwa.ws/RoboCode/yarghard.Y101_1.0.jar&lt;br /&gt;
yk.JahMicro 1.0,http://www.robocoderepository.com/BotFiles/3033/yk.JahMicro_1.0.jar&lt;br /&gt;
yk.JahRoslav 1.1,http://www.robocoderepository.com/BotFiles/3032/yk.JahRoslav_1.1.jar&lt;br /&gt;
zen.Lindada 0.2,http://www.robocoderepository.com/BotFiles/1679/zen.Lindada_0.2.jar&lt;br /&gt;
zeze2.OperatorZeze 1.05,http://www.robocoderepository.com/BotFiles/3330/zeze2.OperatorZeze_1.05.jar&lt;br /&gt;
zch.David 0.21,http://www.robocoderepository.com/BotFiles/3575/zch.David_0.21.jar&lt;br /&gt;
zch.Hirkan 0.11,http://www.robocoderepository.com/BotFiles/1288/zch.Hirkan_0.11.jar&lt;br /&gt;
zh.UnderDog 0.0.2,http://www.robocoderepository.com/BotFiles/3053/zh.UnderDog_0.0.2.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 3.0,http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_3.0.jar&lt;br /&gt;
zyx.micro.Ant 1.1,http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar&lt;br /&gt;
zyx.nano.Ant 1.1,http://www.robocoderepository.com/BotFiles/3493/zyx.nano.Ant_1.1.jar&lt;br /&gt;
zyx.nano.EscherichiaColi 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.EscherichiaColi_1.0.jar&lt;br /&gt;
zyx.nano.RedBull 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.RedBull_1.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''''No chatting on this page. Use the /ParticipantsChat page for that.'''''&lt;br /&gt;
&lt;br /&gt;
'''''Removed because the jarcontent/filename is not correct'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''cberendt.Bot1 0.160''&amp;lt;br&amp;gt;&lt;br /&gt;
''dmsr.MiniR101 0.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''henriquevilela.TieFighter 0.1,3224''&amp;lt;br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_7980_gen7 1.0,3552''br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_13029_gen7 1.0,3553''&amp;lt;br&amp;gt;&lt;br /&gt;
''techdude.Carruthers 1.2.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''uccc.Orbiter 1.0''&amp;lt;br&amp;gt;&lt;br /&gt;
''WhoAmI.WhoAmI 1.00''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Removed until file corruption is resolved:'''''&lt;br /&gt;
&lt;br /&gt;
''cas.CelsoKiller 1.0,3465''&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to almost always giving '0' scores:'''''&lt;br /&gt;
&lt;br /&gt;
''com.syncleus.robocode.Dreadnaught 0.1,3426''&amp;lt;br&amp;gt;&lt;br /&gt;
''lazarecki.PinkerStinker 0.1,http://www.robocoderepository.com/BotFiles/3824/lazarecki.PinkerStinker_0.1.jar''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to WontFix issues in Robocode 1.7+:'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Hviela: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2953268&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2953268]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': hvilela.HVilela 0.9.3,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.3.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Yoda: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2952543&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2952543]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': rc.yoda.Yoda 1.0.6c,http://www.robocoderepository.com/BotFiles/3260/rc.yoda.Yoda_1.0.6c.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* SniperFrog: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2928691&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2928691]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': simonton.mega.SniperFrog 1.0,http://upload.frozenonline.com/view/simonton/simonton.mega.SniperFrog_1.0.jar''&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=17599</id>
		<title>RoboRumble/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=17599"/>
		<updated>2010-10-15T06:52:21Z</updated>

		<summary type="html">&lt;p&gt;Zyx: fixed wrong version number&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:RoboRumble/Navigation}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just add your bot name ('''as appears in the Robocode selector after packaging''', so including versionnumber) and the RobocodeRepository id number separated by &amp;quot;,&amp;quot; (there must be no space after the comma).&amp;lt;br&amp;gt; &lt;br /&gt;
Please, make sure your bot is not in the list before adding it, and delete the old version if you are adding a new one.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The list is in '''alphabetical''' order. Add your bot in the right slot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ab.DengerousRoBatra 1.3,http://www.robocoderepository.com/BotFiles/3664/ab.DengerousRoBatra_1.3.jar&lt;br /&gt;
abc.Shadow 3.83c,http://robocode.aclsi.pt/abc.Shadow_3.83c.jar&lt;br /&gt;
abc.tron3.Tron 3.11,http://www.robocoderepository.com/BotFiles/2205/abc.tron3.Tron_3.11.jar&lt;br /&gt;
abc.Tron 2.02,http://www.robocoderepository.com/BotFiles/241/abc.Tron_2.02.jar&lt;br /&gt;
abud.ThirdRobo 1.0,http://www.robocoderepository.com/BotFiles/2479/abud.ThirdRobo_1.0.jar&lt;br /&gt;
ad.last.Bottom 1.0,http://www.robocoderepository.com/BotFiles/1876/ad.last.Bottom_1.0.jar&lt;br /&gt;
ad.Quest 0.10,http://www.robocoderepository.com/BotFiles/1846/ad.Quest_0.10.jar&lt;br /&gt;
adt.Ar1 2.1,http://www.robocoderepository.com/BotFiles/2254/adt.Ar1_2.1.jar&lt;br /&gt;
adt.Ar2 1.0,http://www.robocoderepository.com/BotFiles/2303/adt.Ar2_1.0.jar&lt;br /&gt;
ag.Gir 0.99,http://www.robocoderepository.com/BotFiles/3065/ag.Gir_0.99.jar&lt;br /&gt;
agd.Mooserwirt2 2.7,http://www.glyndavies.org/robocode/agd.Mooserwirt2.jar&lt;br /&gt;
ags.Glacier 0.2.7,http://homepages.ucalgary.ca/~agschult/robocode/ags.Glacier_0.2.7.jar&lt;br /&gt;
ags.micro.Carpet 1.1,http://homepages.ucalgary.ca/~agschult/robocode/ags.micro.Carpet_1.1.jar&lt;br /&gt;
ags.Midboss 1s,http://homepages.ucalgary.ca/~agschult/robocode/ags.Midboss_1s.jar&lt;br /&gt;
ags.polished.PolishedRuby 1,http://homepages.ucalgary.ca/~agschult/robocode/ags.polished.PolishedRuby_1.jar&lt;br /&gt;
ags.rougedc.RougeDC willow,http://homepages.ucalgary.ca/~agschult/robocode/ags.rougedc.RougeDC_willow.jar&lt;br /&gt;
ahf.Acero 1.0,http://www.robocoderepository.com/BotFiles/2151/ahf.Acero_1.0.jar&lt;br /&gt;
ahf.NanoAndrew .4,http://www.robocoderepository.com/BotFiles/2002/ahf.NanoAndrew_.4.jar&lt;br /&gt;
ahf.r2d2.R2d2 0.86,http://www.robocoderepository.com/BotFiles/2035/ahf.r2d2.R2d2_0.86.jar&lt;br /&gt;
ahr.ice.Ice 1.0,http://robocoderepository.com/BotFiles/3966/ahr.ice.Ice_1.0.jar&lt;br /&gt;
AIR.iRobot 1.0,http://www.robocoderepository.com/BotFiles/3205/AIR.iRobot_1.0.jar&lt;br /&gt;
ak.Fermat 2.0,http://www.robocoderepository.com/BotFiles/799/ak.Fermat_2.0.jar&lt;br /&gt;
alex.Diabolo5 1.1,http://darkcanuck.net/rumble/robots/alex.Diabolo5_1.1.jar&lt;br /&gt;
alk.lap.LoudAndProud 2.23,http://www.robocoderepository.com/BotFiles/3601/alk.lap.LoudAndProud_2.23.jar&lt;br /&gt;
altglass.Exterminans2oo8 alpha0328,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_alpha0328.jar&lt;br /&gt;
altglass.Exterminans2oo8 Build0411,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_Build0411.jar&lt;br /&gt;
am.Miedzix 2.0,http://www.robocoderepository.com/BotFiles/3383/am.Miedzix_2.0.jar&lt;br /&gt;
am.Miedzix 3.0,http://darkcanuck.net/rumble/robots/am.Miedzix_3.0.jar&lt;br /&gt;
amarok.Rookie 1.1,http://www.robocoderepository.com/BotFiles/422/amarok.Rookie_1.1.jar&lt;br /&gt;
amk.ChumbaMini 0.2,http://www.robocoderepository.com/BotFiles/2655/amk.ChumbaMini_0.2.jar&lt;br /&gt;
amk.ChumbaWumba 0.3,http://www.robocoderepository.com/BotFiles/2646/amk.ChumbaWumba_0.3.jar&lt;br /&gt;
amk.jointstrike.JointStrike 0.2,http://www.robocoderepository.com/BotFiles/2597/amk.jointstrike.JointStrike_0.2.jar&lt;br /&gt;
amk.ShizzleStiX.ShizzleStiX 0.6,http://www.robocoderepository.com/BotFiles/2603/amk.ShizzleStiX.ShizzleStiX_0.6.jar&lt;br /&gt;
amk.superstrike.SuperStrike 0.3,http://www.robocoderepository.com/BotFiles/2600/amk.superstrike.SuperStrike_0.3.jar&lt;br /&gt;
amk.Punbot.Punbot 0.01,http://www.robocoderepository.com/BotFiles/2604/amk.Punbot.Punbot_0.01.jar&lt;br /&gt;
ao.T100 0.9,http://www.robocoderepository.com/BotFiles/3385/ao.T100_0.9.jar&lt;br /&gt;
ap.Frederick 1.1,http://darkcanuck.net/rumble/robots/ap.Frederick_1.1.jar&lt;br /&gt;
apollokidd.ApolloKidd 0.9,http://www.robocoderepository.com/BotFiles/321/apollokidd.ApolloKidd_0.9.jar&lt;br /&gt;
apv.Aspid 1.7,http://www.robocoderepository.com/BotFiles/1412/apv.Aspid_1.7.jar&lt;br /&gt;
apv.AspidReloaded 0.6,http://www.robocoderepository.com/BotFiles/1985/apv.AspidReloaded_0.6.jar&lt;br /&gt;
apv.LauLectrik 1.2,http://www.robocoderepository.com/BotFiles/1300/apv.LauLectrik_1.2.jar&lt;br /&gt;
apv.MicroAspid 1.8,http://www.robocoderepository.com/BotFiles/2519/apv.MicroAspid_1.8.jar&lt;br /&gt;
apv.NanoLauLectrik 1.0,http://www.robocoderepository.com/BotFiles/1399/apv.NanoLauLectrik_1.0.jar&lt;br /&gt;
apv.NanoLauLectrikTheCannibal 1.1,http://www.robocoderepository.com/BotFiles/2147/apv.NanoLauLectrikTheCannibal_1.1.jar&lt;br /&gt;
apv.ScruchiPu 1.0,http://www.robocoderepository.com/BotFiles/1367/apv.ScruchiPu_1.0.jar&lt;br /&gt;
apv.test.Virus 0.6.1,http://www.robocoderepository.com/BotFiles/2645/apv.test.Virus_0.6.1.jar&lt;br /&gt;
apv.TheBrainPi 0.5fix,http://darkcanuck.net/rumble/robots/apv.TheBrainPi_0.5fix.jar&lt;br /&gt;
ar.horizon.Horizon 1.2.2,http://www.robocoderepository.com/BotFiles/3286/ar.horizon.Horizon_1.2.2.jar&lt;br /&gt;
ar.QuantumChromodynamics 1.2.1,http://www.robocoderepository.com/BotFiles/3220/ar.QuantumChromodynamics_1.2.1.jar&lt;br /&gt;
ar.TheoryOfEverything 1.2.1,http://www.robocoderepository.com/BotFiles/3221/ar.TheoryOfEverything_1.2.1.jar&lt;br /&gt;
ara.Shera 0.88,http://www.robocoderepository.com/BotFiles/1050/ara.Shera_0.88.jar&lt;br /&gt;
areb.Union 1.06,http://www.robocoderepository.com/BotFiles/2893/areb.Union_1.06.jar&lt;br /&gt;
arthord.micro.Apoptygma 0.4,http://www.robocoderepository.com/BotFiles/1688/arthord.micro.Apoptygma_0.4.jar&lt;br /&gt;
arthord.micro.Muffin 0.6.1,http://www.robocoderepository.com/BotFiles/1963/arthord.micro.Muffin_0.6.1.jar&lt;br /&gt;
arthord.KostyaTszyu Beta2,http://www.robocoderepository.com/BotFiles/2322/arthord.KostyaTszyu_Beta2.jar&lt;br /&gt;
arthord.MannyPacquiao Delta2,http://scoutery.awardspace.com/arthord.MannyPacquiao_Delta2.jar&lt;br /&gt;
arthord.NanoSatan Mu,http://www.robocoderepository.com/BotFiles/2157/arthord.NanoSatan_Mu.jar&lt;br /&gt;
arthord.NanoSatanMelee Beta,http://www.robocoderepository.com/BotFiles/2088/arthord.NanoSatanMelee_Beta.jar&lt;br /&gt;
ary.micro.Weak 1.2,http://www.robocoderepository.com/BotFiles/3433/ary.micro.Weak_1.2.jar&lt;br /&gt;
ary.mini.Nimi 1.0,http://www.robocoderepository.com/BotFiles/3397/ary.mini.Nimi_1.0.jar&lt;br /&gt;
ary.nano.AceSurf 1.2,http://www.robocoderepository.com/BotFiles/3352/ary.nano.AceSurf_1.2.jar&lt;br /&gt;
ary.nano.ColorNanoP 1.1,http://www.robocoderepository.com/BotFiles/3629/ary.nano.ColorNanoP_1.1.jar&lt;br /&gt;
ary.Crisis 1.0,http://www.robocoderepository.com/BotFiles/3495/ary.Crisis_1.0.jar&lt;br /&gt;
ary.Help 1.0,http://darkcanuck.net/rumble/robots/ary.Help_1.0.jar&lt;br /&gt;
ary.FourWD 1.3d,http://darkcanuck.net/rumble/robots/ary.FourWD_1.3d.jar&lt;br /&gt;
ary.SMG 1.01,http://ary-robocode.110mb.com/ary.SMG_1.01.jar&lt;br /&gt;
as.xbots 1.0,http://darkcanuck.net/rumble/robots/as.xbots_1.0.jar&lt;br /&gt;
asd.Cthulhu 1.2,http://robocode.ilbello.com/asd.Cthulhu_1.2.jar&lt;br /&gt;
asm.Statistas 0.1,http://www.robocoderepository.com/BotFiles/1989/asm.Statistas_0.1.jar&lt;br /&gt;
awesomeness.Elite 1.0,http://robocoderepository.com/BotFiles/3597/awesomeness.Elite.jar&lt;br /&gt;
awl.Locutus 1.0,3844&lt;br /&gt;
axeBots.HataMoto 3.09,http://www.robocoderepository.com/BotFiles/1655/axeBots.HataMoto_3.09.jar&lt;br /&gt;
axeBots.Musashi 2.18,http://www.robocoderepository.com/BotFiles/1759/axeBots.Musashi_2.18.jar&lt;br /&gt;
axeBots.Okami 1.04,http://www.robocoderepository.com/BotFiles/2016/axeBots.Okami_1.04.jar&lt;br /&gt;
axeBots.SilverSurfer 2.53.33fix,http://homepages.ucalgary.ca/~agschult/robocode/axeBots.SilverSurfer_2.53.33fix.jar&lt;br /&gt;
baal.nano.N 1.42,http://webpages.charter.net/eleeleth/Robots/baal.nano.N_1.42.jar&lt;br /&gt;
banshee.mini.Nexus6 0.2.0,http://www.robocoderepository.com/BotFiles/3467/banshee.mini.Nexus6_0.2.0.jar&lt;br /&gt;
banshee.micro.Nexus6 0.3.0,http://www.robocoderepository.com/BotFiles/3473/banshee.micro.Nexus6_0.3.0.jar&lt;br /&gt;
bayen.nano.Squirrel 0.2,http://www.freewebs.com/bayen/files/bayen.nano.Squirrel_0.2.jar&lt;br /&gt;
bayen.nut.Squirrel 1.621,http://darkcanuck.net/rumble/robots/bayen.nut.Squirrel_1.621.jar&lt;br /&gt;
bayen.UbaMicro 1.4,http://www.robocoderepository.com/BotFiles/2830/bayen.UbaMicro_1.4.jar&lt;br /&gt;
bayen.UbaRamLT 1.0,http://www.robocoderepository.com/BotFiles/2868/bayen.UbaRamLT_1.0.jar&lt;br /&gt;
bbo.RamboT 0.3,http://www.robocoderepository.com/BotFiles/2210/bbo.RamboT_0.3.jar&lt;br /&gt;
bbo.TheRoof 1.4.3,http://www.robocoderepository.com/BotFiles/2179/bbo.TheRoof_1.4.3.jar&lt;br /&gt;
Bemo.Sweet30 1.6.1,http://www.stg-volleyball.de/images/Bemo.Sweet30_1.6.1.jar&lt;br /&gt;
benhorner.PureAggression 0.2.6,http://www.robocoderepository.com/BotFiles/3421/benhorner.PureAggression_0.2.6.jar&lt;br /&gt;
bh.PencilRain 0.01,http://www.robocoderepository.com/BotFiles/3670/bh.PencilRain-0.01.jar&lt;br /&gt;
bigpete.Stewie 1.0,http://www.robocoderepository.com/BotFiles/2927/bigpete.Stewie_1.0.jar&lt;br /&gt;
bing2.Melody 1.3.1,http://www.ccs.neu.edu/home/bing/robocode/bing2.Melody_1.3.1.jar&lt;br /&gt;
bjl.LoneDragon 0.5,http://www.robocoderepository.com/BotFiles/1929/bjl.LoneDragon_0.5.jar&lt;br /&gt;
bndl.LostLion 1.2,http://www.robocoderepository.com/BotFiles/1033/bndl.LostLion_1.2.jar&lt;br /&gt;
bons.NanoStalker 1.2,http://www.robocoderepository.com/BotFiles/1179/bons.NanoStalker_1.2.jar&lt;br /&gt;
bp.Kuma 1.0,http://www.robocoderepository.com/BotFiles/3238/bp.Kuma_1.0.jar&lt;br /&gt;
braaropolis.Abot 1.0,http://darkcanuck.net/rumble/robots/braaropolis.Abot_1.0.jar&lt;br /&gt;
brainfade.Fallen 0.63,http://www.robocoderepository.com/BotFiles/2250/brainfade.Fallen_0.63.jar&lt;br /&gt;
brainfade.melee.Dusk 0.44,http://www.robocoderepository.com/BotFiles/2518/brainfade.melee.Dusk_0.44.jar&lt;br /&gt;
buba.Archivist 0.1,http://www.robocoderepository.com/BotFiles/3899/buba.Archivist_0.1.jar&lt;br /&gt;
buba.Buba 0.3,http://www.robocoderepository.com/BotFiles/3896/buba.Buba_0.3.jar&lt;br /&gt;
bvh.fnr.Fenrir 0.36l,http://www.robocoderepository.com/BotFiles/1428/bvh.fnr.Fenrir_0.36l.jar&lt;br /&gt;
bvh.frg.Friga 0.112dev,http://darkcanuck.net/rumble/robots/bvh.frg.Friga_0.112dev.jar&lt;br /&gt;
bvh.fry.Freya 0.82,http://darkcanuck.net/rumble/robots/bvh.fry.Freya_0.82.jar&lt;br /&gt;
bvh.hdr.Hodur 0.4,http://www.robocoderepository.com/BotFiles/1954/bvh.hdr.Hodur_0.4.jar&lt;br /&gt;
bvh.loki.Loki 0.5,http://www.robocoderepository.com/BotFiles/885/bvh.loki.Loki_0.5.jar&lt;br /&gt;
bvh.micro.Freya 0.3,http://www.robocoderepository.com/BotFiles/2815/bvh.micro.Freya_0.3.jar&lt;br /&gt;
bvh.micro.Svadilfari 0.2,http://www.robocoderepository.com/BotFiles/1086/bvh.micro.Svadilfari_0.2.jar&lt;br /&gt;
bvh.mini.Fenrir 0.39,http://www.robocoderepository.com/BotFiles/1429/bvh.mini.Fenrir_0.39.jar&lt;br /&gt;
bvh.mini.Freya 0.55,http://darkcanuck.net/rumble/robots/bvh.mini.Freya_0.55.jar&lt;br /&gt;
bvh.mini.Mjolnir 0.3,http://www.robocoderepository.com/BotFiles/2220/bvh.mini.Mjolnir_0.3.jar&lt;br /&gt;
bvh.mini.Wodan 0.50,http://www.robocoderepository.com/BotFiles/2064/bvh.mini.Wodan_0.50.jar&lt;br /&gt;
bvh.tyr.Tyr 1.74,http://www.robocoderepository.com/BotFiles/886/bvh.tyr.Tyr_1.74.jar&lt;br /&gt;
bzdp.BoxCar 2.0,http://www.robocoderepository.com/BotFiles/3703/bzdp.BoxCar_2.0.jar&lt;br /&gt;
bzdp.Pansy 2.1,http://www.robocoderepository.com/BotFiles/3726/bzdp.Pansy_2.1.jar&lt;br /&gt;
caimano.Furia_Ceca 0.22,http://www.robocoderepository.com/BotFiles/1843/caimano.Furia_Ceca_0.22.jar&lt;br /&gt;
cbot.agile.Nibbler 0.2,http://www.robocoderepository.com/BotFiles/1537/cbot.agile.Nibbler_0.2.jar&lt;br /&gt;
cbot.cbot.CBot 0.8,http://www.robocoderepository.com/BotFiles/1375/cbot.cbot.CBot_0.8.jar&lt;br /&gt;
cf.mini.Chiva 1.0,http://www.robocoderepository.com/BotFiles/2331/cf.mini.Chiva_1.0.jar&lt;br /&gt;
cf.OldMan.OldManXP 0.1,http://www.robocoderepository.com/BotFiles/1968/cf.OldMan.OldManXP_0.1.jar&lt;br /&gt;
cf.proto.Shiva 2.2,http://www.robocoderepository.com/BotFiles/2409/cf.proto.Shiva_2.2.jar&lt;br /&gt;
cf.star.Star2 1.23,http://www.robocoderepository.com/BotFiles/2255/cf.star.Star2_1.23.jar&lt;br /&gt;
ch.rhj.rbc.RHJ1 1.0,http://www.robocoderepository.com/BotFiles/1879/ch.rhj.rbc.RHJ1_1.0.jar&lt;br /&gt;
CharlieN.Omega.Omega 1.03,http://www.robocoderepository.com/BotFiles/3503/CharlieN.Omega.Omega_1.03.jar&lt;br /&gt;
chase.c.Wristwatch 1.0,http://www.csdgn.org/files/bots/chase.c.Wristwatch_1.0.jar&lt;br /&gt;
chase.pm.Pytko 1.0,http://www.csdgn.org/files/bots/chase.pm.Pytko_1.0.jar&lt;br /&gt;
chase.s2.Genesis 1.1,http://www.csdgn.org/files/bots/chase.s2.Genesis_1.1.jar&lt;br /&gt;
chase.s2.Seraphim 2.0.6,http://www.csdgn.org/files/bots/chase.s2.Seraphim_2.0.6.jar&lt;br /&gt;
chickenfuego.UrChicken2 1.0,http://www.robocoderepository.com/BotFiles/3422/chickenfuego.UrChicken2_1.0.jar&lt;br /&gt;
cjk.Merkava 0.1.1,http://www.robocoderepository.com/BotFiles/2637/cjk.Merkava_0.1.1.jar&lt;br /&gt;
cjk.Merkava 0.2.0,http://www.robocoderepository.com/BotFiles/2640/cjk.Merkava_0.2.0.jar&lt;br /&gt;
cjk.Merkava 0.3.0,http://darkcanuck.net/rumble/robots/cjk.Merkava_0.3.0.jar&lt;br /&gt;
cjm.chalk.Chalk 2.6.Be,http://scatterbright.com/robots/cjm.chalk.Chalk_2.6.Be.jar&lt;br /&gt;
cjm.Charo 1.1,http://scatterbright.com/robots/cjm.Charo_1.1.jar&lt;br /&gt;
cjm.Che 1.2,http://www.robocoderepository.com/BotFiles/2703/cjm.Che_1.2.jar&lt;br /&gt;
cjm.Chomsky 1.5,http://scatterbright.com/robots/cjm.Chomsky_1.5.jar&lt;br /&gt;
codemojo.nano.Woot 1.0,http://darkcanuck.net/rumble/robots/codemojo.nano.Woot_1.0.jar&lt;br /&gt;
cs.ExclusionNano 1.1,http://www.csdgn.org/files/bots/cs.ExclusionNano_1.1.jar&lt;br /&gt;
csm.NthGeneration 0.04,http://www.robocoderepository.com/BotFiles/1214/csm.NthGeneration_0.04.jar&lt;br /&gt;
csp.Eagle 3.30,http://www.robocoderepository.com/BotFiles/2436/csp.Eagle_3.30.jar&lt;br /&gt;
css.Delitioner 0.11,http://darkcanuck.net/rumble/robots/css.Delitioner_0.11.jar&lt;br /&gt;
cx.BlestPain 1.41,http://www.robocoderepository.com/BotFiles/1671/cx.BlestPain_1.41.jar&lt;br /&gt;
cx.CigaretBH 1.03,http://www.robocoderepository.com/BotFiles/1414/cx.CigaretBH_1.03.jar&lt;br /&gt;
cx.Lacrimas 1.36,http://www.robocoderepository.com/BotFiles/1820/cx.Lacrimas_1.36.jar&lt;br /&gt;
cx.micro.Blur 0.2,http://www.robocoderepository.com/BotFiles/2447/cx.micro.Blur_0.2.jar&lt;br /&gt;
cx.micro.Smoke 0.96,http://www.robocoderepository.com/BotFiles/1037/cx.micro.Smoke_0.96.jar&lt;br /&gt;
cx.micro.Spark 0.6,http://www.robocoderepository.com/BotFiles/1320/cx.micro.Spark_0.6.jar&lt;br /&gt;
cx.mini.BlackSwans 0.60,http://www.robocoderepository.com/BotFiles/1158/cx.mini.BlackSwans_0.60.jar&lt;br /&gt;
cx.mini.Cigaret 1.31,http://www.robocoderepository.com/BotFiles/1152/cx.mini.Cigaret_1.31.jar&lt;br /&gt;
cx.mini.Nimrod 0.55,http://www.robocoderepository.com/BotFiles/1236/cx.mini.Nimrod_0.55.jar&lt;br /&gt;
cx.nano.Smog 2.6,http://www.robocoderepository.com/BotFiles/1036/cx.nano.Smog_2.6.jar&lt;br /&gt;
cx.Princess 1.0,http://www.robocoderepository.com/BotFiles/1343/cx.Princess_1.0.jar&lt;br /&gt;
da.NewBGank 1.4,http://www.robocoderepository.com/BotFiles/3312/da.NewBGank_1.4.jar&lt;br /&gt;
dam.MogBot 2.9,http://www.robocoderepository.com/BotFiles/555/dam.MogBot_2.9.jar&lt;br /&gt;
dans.Cinnamon 1.2,http://www.robocoderepository.com/BotFiles/1976/dans.Cinnamon_1.2.jar&lt;br /&gt;
darkcanuck.Gaff 1.50,http://darkcanuck.net/rumble/robots/darkcanuck.Gaff_1.50.jar&lt;br /&gt;
darkcanuck.Holden 1.13a,http://darkcanuck.net/rumble/robots/darkcanuck.Holden_1.13a.jar&lt;br /&gt;
darkcanuck.Pris 0.88,http://darkcanuck.net/rumble/robots/darkcanuck.Pris_0.88.jar&lt;br /&gt;
davidalves.Firebird 0.25,http://davidalves.net/robocode/robots/davidalves.Firebird_0.25.jar&lt;br /&gt;
davidalves.Phoenix 1.02,http://davidalves.net/robocode/robots/davidalves.Phoenix_1.02.jar&lt;br /&gt;
davidalves.PhoenixOS 1.1,http://davidalves.net/robocode/robots/davidalves.PhoenixOS_1.1.jar&lt;br /&gt;
davidalves.net.Duelist 0.1.6src,http://www.robocoderepository.com/BotFiles/1000/davidalves.net.Duelist_0.1.6src.jar&lt;br /&gt;
davidalves.net.DuelistMicro 1.22,http://www.robocoderepository.com/BotFiles/1144/davidalves.net.DuelistMicro_1.22.jar&lt;br /&gt;
davidalves.net.DuelistMicroMkII 1.1,http://www.robocoderepository.com/BotFiles/1281/davidalves.net.DuelistMicroMkII_1.1.jar&lt;br /&gt;
davidalves.net.DuelistMini 1.1,http://www.robocoderepository.com/BotFiles/1181/davidalves.net.DuelistMini_1.1.jar&lt;br /&gt;
davidalves.net.DuelistNano 1.0,http://www.robocoderepository.com/BotFiles/1272/davidalves.net.DuelistNano_1.0.jar&lt;br /&gt;
dcs.Eater_of_Worlds 1.1.3-A,http://www.robocoderepository.com/BotFiles/2578/dcs.Eater_of_Worlds_1.1.3-A.jar&lt;br /&gt;
dcs.Eater_of_Worlds_Mini 1.0,http://www.robocoderepository.com/BotFiles/2850/dcs.Eater_of_Worlds_Mini_1.0.jar&lt;br /&gt;
dcs.PM.Eater_of_Worlds_PM 1.2,http://www.robocoderepository.com/BotFiles/2856/dcs.PM.Eater_of_Worlds_PM_1.2.jar&lt;br /&gt;
de.erdega.robocode.Polyphemos 0.4,http://darkcanuck.net/rumble/robots/de.erdega.robocode.Polyphemos_0.4.jar&lt;br /&gt;
deewiant.Anomaly 0.2,http://www.iki.fi/~deewiant/files/deewiant.Anomaly_0.2.jar&lt;br /&gt;
deith.Czolgzilla 0.11,http://www.robocoderepository.com/BotFiles/3256/deith.Czolgzilla_0.11.jar&lt;br /&gt;
demetrix.ForceMajeure 0.75,http://ever-rage.narod.ru/robowiki/demetrix.ForceMajeure_0.75.jar&lt;br /&gt;
demetrix.nano.Neutrino 0.27,http://ever-rage.narod.ru/robowiki/demetrix.nano.Neutrino_0.27.jar&lt;br /&gt;
demetrix.nano.SledgeHammer 0.22,http://ever-rage.narod.ru/robowiki/demetrix.nano.SledgeHammer_0.22.jar&lt;br /&gt;
deo.CloudBot 1.3,http://robocoderepository.com/BotFiles/3644/deo.CloudBot_1.3.jar&lt;br /&gt;
deo.FlowerBot 1.0,http://robocoderepository.com/BotFiles/3683/deo.FlowerBot_1.0.jar&lt;br /&gt;
deo.virtual.RainbowBot 1.0,http://robocoderepository.com/BotFiles/3694/deo.virtual.RainbowBot_1.0.jar&lt;br /&gt;
dft.Calliope 5.6,http://www.robocoderepository.com/BotFiles/237/dft.Calliope_5.6.jar&lt;br /&gt;
dft.Cyanide 1.90,http://darkcanuck.net/rumble/robots/dft.Cyanide_1.90.jar&lt;br /&gt;
dft.Cyprus 3.0,http://www.robocoderepository.com/BotFiles/377/dft.Cyprus_3.0.jar&lt;br /&gt;
dft.Freddie 1.32,http://darkcanuck.net/rumble/robots/dft.Freddie_1.32.jar&lt;br /&gt;
dft.Guppy 1.0,http://darkcanuck.net/rumble/robots/dft.Guppy_1.0.jar&lt;br /&gt;
dft.Immortal 1.40,http://darkcanuck.net/rumble/robots/dft.Immortal_1.40.jar&lt;br /&gt;
dft.Krazy 1.5,http://www.robocoderepository.com/BotFiles/2099/dft.Krazy_1.5.jar&lt;br /&gt;
dft.Virgin 1.25,http://www.robocoderepository.com/BotFiles/1447/dft.Virgin_1.25.jar&lt;br /&gt;
dggp.haiku.gpBot_0 1.1,http://www.robocoderepository.com/BotFiles/3154/dggp.haiku.gpBot_0_1.1.jar&lt;br /&gt;
dittman.BlindSquirl Retired,http://home.comcast.net/~kokyunage/robocode/ugluk/dittman.BlindSquirl_Retired.jar&lt;br /&gt;
djc.Aardvark 0.3.6,http://www.robocoderepository.com/BotFiles/652/djc.Aardvark_0.3.6.jar&lt;br /&gt;
djdjdj.NanoSkunk10 1.0,http://davidjoerg.com/robocode/djdjdj.NanoSkunk10_1.0.jar&lt;br /&gt;
dk.stable.Gorgatron 1.1,http://www.robocoderepository.com/BotFiles/2112/dk.stable.Gorgatron_1.1.jar&lt;br /&gt;
dks.MicroDanMK2 1.0,http://darkcanuck.net/rumble/robots/dks.MicroDanMK2_1.0.jar&lt;br /&gt;
DM.Capriite 3.7.2,http://www.robocoderepository.com/BotFiles/2989/DM.Capriite_3.7.2.jar&lt;br /&gt;
DM.Chicken 4.0,http://www.robocoderepository.com/BotFiles/3020/DM.Chicken_4.0.jar&lt;br /&gt;
DM.Mijit .3,http://www.robocoderepository.com/BotFiles/3043/DM.Mijit_.3.jar&lt;br /&gt;
dmp.micro.Aurora 1.41,http://www.robocoderepository.com/BotFiles/853/dmp.micro.Aurora_1.41.jar&lt;br /&gt;
dmp.nano.Eve 3.41,http://www.robocoderepository.com/BotFiles/842/dmp.nano.Eve_3.41.jar&lt;br /&gt;
donjezza.Jezza 1.0,http://www.robocoderepository.com/BotFiles/3385/donjezza.Jezza_1.0.jar&lt;br /&gt;
donjezza.Muncho 1.0,http://www.robocoderepository.com/BotFiles/3384/donjezza.Muncho_1.0.jar&lt;br /&gt;
drd.Dreadknoght 0.9,http://www.robocoderepository.com/BotFiles/3835/drd.Dreadknoght_0.9.jar&lt;br /&gt;
drm.CobraBora 1.12,http://www.robocoderepository.com/BotFiles/1146/drm.CobraBora_1.12.jar&lt;br /&gt;
drm.Magazine 0.39,http://www.robocoderepository.com/BotFiles/989/drm.Magazine_0.39.jar&lt;br /&gt;
ds.OoV4 0.3b,http://www.robocoderepository.com/BotFiles/2851/ds.OoV4_0.3b.jar&lt;br /&gt;
dsw.StaticD 1.0,http://darkcanuck.net/rumble/robots/dsw.StaticD_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3a 1.0,http://darkcanuck.net/rumble/robots/dsx724.VSAB_EP3a_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3_ATR 1.1,http://www.robocoderepository.com/BotFiles/3432/dsx724.VSAB_EP3_ATR_1.1.jar&lt;br /&gt;
dukie.Ambassador 1.0,http://www.robocoderepository.com/BotFiles/2845/dukie.Ambassador_1.0.jar&lt;br /&gt;
dummy.micro.HummingBird 2.14,http://www.robocoderepository.com/BotFiles/369/dummy.micro.HummingBird_2.14.jar&lt;br /&gt;
dummy.micro.Sparrow 2.5,http://www.robocoderepository.com/BotFiles/484/dummy.micro.Sparrow_2.5.jar&lt;br /&gt;
dummy.mini.Parakeet 2.40,http://www.robocoderepository.com/BotFiles/400/dummy.mini.Parakeet_2.40.jar&lt;br /&gt;
dvogon.GangBang 1.0,http://www.robocoderepository.com/BotFiles/3193/dvogon.GangBang_1.0.jar&lt;br /&gt;
dy.LevelOne 2.0,http://www.robocoderepository.com/BotFiles/3452/dy.LevelOne_2.0.jar&lt;br /&gt;
dz.Caedo 1.4,http://www.robocoderepository.com/BotFiles/1044/dz.Caedo_1.4.jar&lt;br /&gt;
dz.GalbaMicro 0.11,http://www.robocoderepository.com/BotFiles/2482/dz.GalbaMicro_0.11.jar&lt;br /&gt;
dz.GalbaMini 0.121,http://darkcanuck.net/rumble/robots/dz.GalbaMini_0.121.jar&lt;br /&gt;
dz.MostlyHarmlessNano 2.1,http://www.robocoderepository.com/BotFiles/2166/dz.MostlyHarmlessNano_2.1.jar&lt;br /&gt;
dz.OthoMicro 0.12,http://www.robocoderepository.com/BotFiles/2198/dz.OthoMicro_0.12.jar&lt;br /&gt;
dz.OthoMini 0.15,http://www.robocoderepository.com/BotFiles/2221/dz.OthoMini_0.15.jar&lt;br /&gt;
eat.HumblePieLite 1.0,http://www.robocoderepository.com/BotFiles/1088/eat.HumblePieLite_1.0.jar&lt;br /&gt;
ebo.Sparse 0.02,http://www.4geeks.de/files/ebo.Sparse_0.02.jar&lt;br /&gt;
ebo.Tahoe 1.1.79,http://www.4geeks.de/files/ebo.Tahoe_1.1.79.jar&lt;br /&gt;
el.Attackr 0.1,http://darkcanuck.net/rumble/robots/el.Attackr_0.1.jar&lt;br /&gt;
el.JumpShoot 0.2,http://www.robocoderepository.com/BotFiles/3360/el.JumpShoot_0.2.jar&lt;br /&gt;
el33t.EL33tGangstarr2 2.0,http://www.robocoderepository.com/BotFiles/2069/el33t.EL33tGangstarr2_2.0.jar&lt;br /&gt;
eld.Hmm 1.0,http://darkcanuck.net/rumble/robots/eld.Hmm_1.0.jar&lt;br /&gt;
element.Earth 1.1,http://www.robocoderepository.com/BotFiles/3587/element.Earth_1.1.jar&lt;br /&gt;
elloco.Flower 0.1r1,http://www.robocoderepository.com/BotFiles/3242/elloco.Flower_0.1r1.jar&lt;br /&gt;
elloco.Kabuto 0.2r,http://www.robocoderepository.com/BotFiles/3229/elloco.Kabuto_0.2r.jar&lt;br /&gt;
elvbot.ElverionBot 0.3,http://www.robocoderepository.com/BotFiles/3541/elvbot.ElverionBot_0.3.jar&lt;br /&gt;
emp.Yngwie 1.11,http://www.robocoderepository.com/BotFiles/1928/emp.Yngwie_1.11.jar&lt;br /&gt;
erdnis.Rover 0.3,http://www.free-games-fun.com/erdnis.Rover_0.3.jar&lt;br /&gt;
eskimo.micro.Echo 0.1,http://robocoderepository.com/BotFiles/3969/eskimo.micro.Echo_0.1.jar&lt;br /&gt;
et.Predator 1.8,http://www.robocoderepository.com/BotFiles/668/et.Predator_1.8.jar&lt;br /&gt;
ethdsy.Malacka 2.4,http://www.robocoderepository.com/BotFiles/1159/ethdsy.Malacka_2.4.jar&lt;br /&gt;
evd.X1 0.01,http://www.robocoderepository.com/BotFiles/3503/evd.X1_0.01.jar&lt;br /&gt;
exauge.GateKeeper 1.1.121g,http://www.robocoderepository.com/BotFiles/3928/exauge.GateKeeper_1.1.121g.jar&lt;br /&gt;
exauge.LemonDrop 1.6.130,http://www.robocoderepository.com/BotFiles/3911/exauge.LemonDrop_1.6.130.jar&lt;br /&gt;
exauge.Leopard 1.1.019,http://www.robocoderepository.com/BotFiles/3917/exauge.Leopard_1.1.019.jar&lt;br /&gt;
fala.robocode.FalaRobot 1.0,http://www.robocoderepository.com/BotFiles/3474/fala.robocode.FalaRobot_1.0.jar&lt;br /&gt;
fcr.First 1.0,http://www.robocoderepository.com/BotFiles/3362/fcr.First_1.0.jar&lt;br /&gt;
Fenix.FenixTrack 1.0,http://www.robocoderepository.com/BotFiles/1627/Fenix.FenixTrack_1.0.jar&lt;br /&gt;
florent.FloatingTadpole 1.2.6,http://www.robocoderepository.com/BotFiles/2675/florent.FloatingTadpole_1.2.6.jar&lt;br /&gt;
florent.small.LittleAngel 1.8,http://www.robocoderepository.com/BotFiles/2917/florent.small.LittleAngel_1.8.jar&lt;br /&gt;
florent.test.Toad 0.14t,http://wesley3.free.fr/florent.test.Toad_0.14t.jar&lt;br /&gt;
florent.XSeries.X2 0.17,http://wesley3.free.fr/florent.XSeries.X2_0.17.jar&lt;br /&gt;
fm.claire 1.7,http://www.robocoderepository.com/BotFiles/2251/fm.claire_1.7.jar&lt;br /&gt;
fm.mammillarias 1.3,http://www.robocoderepository.com/BotFiles/2238/fm.mammillarias_1.3.jar&lt;br /&gt;
fnc.bandit.Bandit 5.2.0,http://www.robocoderepository.com/BotFiles/2155/fnc.bandit.Bandit_5.2.0.jar&lt;br /&gt;
fnc.bandit2002.Bandit2002 4.0.2,http://www.robocoderepository.com/BotFiles/2202/fnc.bandit2002.Bandit2002_4.0.2.jar&lt;br /&gt;
frag.FragBot 1.0,http://darkcanuck.net/rumble/robots/frag.FragBot_1.0.jar&lt;br /&gt;
franzor.Lizt 1.3.1,http://pages.prodigy.net/franz1/house/franzor.Lizt_1.3.1.jar&lt;br /&gt;
fromHell.general.guinness.Guinness 0.1.2,http://www.robocoderepository.com/BotFiles/3804/FromHell.Guinness_0.1.2.jar&lt;br /&gt;
fullsail.LaxativeTeaTwo 1.0,http://www.robocoderepository.com/BotFiles/3403/fullsail.LaxativeTeaTwo_1.0.jar&lt;br /&gt;
fullsail.TimbotNoPrediction 1.0,http://darkcanuck.net/rumble/robots/fullsail.TimbotNoPrediction_1.0.jar&lt;br /&gt;
fullsail.SweetTea 1.1,http://darkcanuck.net/rumble/robots/fullsail.SweetTea_1.1.jar&lt;br /&gt;
fushi.PvP1.PvP1 2004-02-16,http://www.robocoderepository.com/BotFiles/2023/fushi.PvP1.PvP1_2004-02-16.jar&lt;br /&gt;
fw.Number1 1.0b,http://www.dijitari.com/void/robocode/fw.Number1_1.0b.jar&lt;br /&gt;
gadsky.Gadsky 1.01,http://www.robocoderepository.com/BotFiles/3595/gadsky.Gadsky_1.01.jar&lt;br /&gt;
geep.mini.GPBotA 1.0,http://www.robocoderepository.com/BotFiles/2361/geep.mini.GPBotA_1.0.jar&lt;br /&gt;
geep.mini.GPBotB 1.1,http://www.robocoderepository.com/BotFiles/2363/geep.mini.GPBotB_1.1.jar&lt;br /&gt;
germ.TheMind .2,http://www.robocoderepository.com/BotFiles/2525/germ.TheMind_.2.jar&lt;br /&gt;
gg.Squaraus 0.6,http://www.robocoderepository.com/BotFiles/1788/gg.Squaraus_0.6.jar&lt;br /&gt;
gg.Wolverine 2.0,http://darkcanuck.net/rumble/robots/gg.Wolverine_2.0.jar&lt;br /&gt;
gh.GresSuffurd 0.2.22,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GresSuffurd_0.2.22.jar&lt;br /&gt;
gh.GrubbmGrb 1.2.4,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GrubbmGrb_1.2.4.jar&lt;br /&gt;
gh.GrypRepetyf 0.13,http://www.robocoderepository.com/BotFiles/2650/gh.GrypRepetyf_0.13.jar&lt;br /&gt;
gh.micro.Grinnik 0.7,http://www.robocoderepository.com/BotFiles/3208/gh.micro.Grinnik_0.7.jar&lt;br /&gt;
gh.micro.GrubbmThree 0.9,http://www.robocoderepository.com/BotFiles/2444/gh.micro.GrubbmThree_0.9.jar&lt;br /&gt;
gh.mini.Gruwel 0.9,http://www.robocoderepository.com/BotFiles/2511/gh.mini.Gruwel_0.9.jar&lt;br /&gt;
gh.nano.Grofvuil 0.2,http://www.robocoderepository.com/BotFiles/2553/gh.nano.Grofvuil_0.2.jar&lt;br /&gt;
gimp.GimpBot 0.1,http://www.robocoderepository.com/BotFiles/2434/gimp.GimpBot_0.1.jar&lt;br /&gt;
gio.RealGioBot 1.0,http://www.robocoderepository.com/BotFiles/2521/gio.RealGioBot_1.0.jar&lt;br /&gt;
gjr.Cephalosporin 0.2,http://www.robocoderepository.com/BotFiles/2240/gjr.Cephalosporin_0.2.jar&lt;br /&gt;
gm.GaetanoA 2.15,http://www.robocoderepository.com/BotFiles/2188/gm.GaetanoA_2.15.jar&lt;br /&gt;
goblin.Bender 2.4,http://www.robocoderepository.com/BotFiles/1871/goblin.Bender_2.4.jar&lt;br /&gt;
grybgoofy.GoofyBot 0.10,http://www.robocoderepository.com/BotFiles/2196/grybgoofy.GoofyBot_0.10.jar&lt;br /&gt;
gu.MicroScoob 1.3,http://www.robocoderepository.com/BotFiles/2086/gu.MicroScoob_1.3.jar&lt;br /&gt;
hamilton.Hamilton 1.0,http://www.robocoderepository.com/BotFiles/1408/hamilton.Hamilton_1.0.jar&lt;br /&gt;
hirataatsushi.Neo 1.6,http://www.robocoderepository.com/BotFiles/1081/hirataatsushi.Neo_1.6.jar&lt;br /&gt;
hirataatsushi.Trinity 0.003,http://www.robocoderepository.com/BotFiles/1145/hirataatsushi.Trinity_0.003.jar&lt;br /&gt;
Homer.Barney 1.0,http://www.robocoderepository.com/BotFiles/1932/Homer.Barney_1.0.jar&lt;br /&gt;
homerbots.h1 1.0,http://www.robocoderepository.com/BotFiles/2999/homerbots.h1_1.0.jar&lt;br /&gt;
hp.Athena 0.1,http://www.robocoderepository.com/BotFiles/3415/hp.Athena_0.1.jar&lt;br /&gt;
hvilela.HVilela 0.9,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.jar&lt;br /&gt;
ins.MobyNano 0.8,http://www.robocoderepository.com/BotFiles/939/ins.MobyNano_0.8.jar&lt;br /&gt;
intruder.PrairieWolf 2.61,http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar&lt;br /&gt;
ivor.prophet.Prophet 0.01,http://www.ivan.php5.sk/ivor.prophet.Prophet_0.01.jar&lt;br /&gt;
jaara.LambdaBot 1.1,http://www.robocoderepository.com/BotFiles/3514/jaara.LambdaBot_1.1.jar&lt;br /&gt;
jab.avk.ManuelGallegus 0.6,http://www.freewebs.com/robocode/bots/Tests/jab.avk.ManuelGallegus_0.6.jar&lt;br /&gt;
jab.DiamondStealer 5,http://www.freewebs.com/robocode/bots/DiamondStealers/jab.DiamondStealers_5.jar&lt;br /&gt;
jab.micro.Sanguijuela 0.8,http://www.freewebs.com/robocode/bots/Sanguijuela/jab.micro.Sanguijuela_0.8.jar&lt;br /&gt;
janm.Jammy 1.0,http://www.robocoderepository.com/BotFiles/3543/janm.Jammy_1.0.jar&lt;br /&gt;
jam.micro.RaikoMicro 1.44,http://www.robocoderepository.com/BotFiles/1983/jam.micro.RaikoMicro_1.44.jar&lt;br /&gt;
jam.mini.Raiko 0.43,http://www.robocoderepository.com/BotFiles/1922/jam.mini.Raiko_0.43.jar&lt;br /&gt;
jam.RaikoMX 0.32,http://www.robocoderepository.com/BotFiles/1961/jam.RaikoMX_0.32.jar&lt;br /&gt;
japs.Serenity 1.0,http://www.robocoderepository.com/BotFiles/2217/japs.Serenity_1.0.jar&lt;br /&gt;
japs.Sjonniebot 0.9.1,http://www.robocoderepository.com/BotFiles/2203/japs.Sjonniebot_0.9.1.jar&lt;br /&gt;
jasolo.Sonda 0.55,http://www.robocoderepository.com/BotFiles/1534/jasolo.Sonda_0.55.jar&lt;br /&gt;
jaw.Mouse 0.11,http://www.robocoderepository.com/BotFiles/2472/jaw.Mouse_0.11.jar&lt;br /&gt;
jaw.KarenCain 0.11,http://www.robocoderepository.com/BotFiles/2474/jaw.KarenCain_0.11.jar&lt;br /&gt;
jaybot.adv.bots.JayBot 2.0,http://darkcanuck.net/rumble/robots/jaybot.adv.bots.JayBot_2.0.jar&lt;br /&gt;
jaybot.bots.Oddball 4.0,http://darkcanuck.net/rumble/robots/jaybot.bots.Oddball_4.0.jar&lt;br /&gt;
jbot.Rabbit2 1.1,http://darkcanuck.net/rumble/robots/jbot.Rabbit2_1.1.jar&lt;br /&gt;
jcs.AutoBot 4.2.1,http://www.robocoderepository.com/BotFiles/2616/jcs.AutoBot_4.2.1.jar&lt;br /&gt;
jcs.Decepticon 2.5.3,http://www.robocoderepository.com/BotFiles/2620/jcs.Decepticon_2.5.3.jar&lt;br /&gt;
jcs.Megatron 1.2,http://www.robocoderepository.com/BotFiles/2632/jcs.Megatron_1.2.jar&lt;br /&gt;
jcs.Seth 1.8,http://darkcanuck.net/rumble/robots/jcs.Seth_1.8.jar&lt;br /&gt;
jcw.ArcherOne 1.0,http://darkcanuck.net/rumble/robots/jcw.ArcherOne_1.0.jar&lt;br /&gt;
jekl.DarkHallow .90.9,http://www.robocoderepository.com/BotFiles/2296/jekl.DarkHallow_.90.9.jar&lt;br /&gt;
jekl.Jekyl .70,http://www.robocoderepository.com/BotFiles/1837/jekl.Jekyl_.70.jar&lt;br /&gt;
jekl.mini.BlackPearl .91,http://www.robocoderepository.com/BotFiles/1875/jekl.mini.BlackPearl_.91.jar&lt;br /&gt;
jep.nano.Hawkwing 0.4.1,http://www.robocoderepository.com/BotFiles/1561/jep.nano.Hawkwing_0.4.1.jar&lt;br /&gt;
jep.nano.Hotspur 0.1,http://www.robocoderepository.com/BotFiles/1877/jep.nano.Hotspur_0.1.jar&lt;br /&gt;
jep.Terrible 0.4.1,http://www.robocoderepository.com/BotFiles/1536/jep.Terrible_0.4.1.jar&lt;br /&gt;
jgap.JGAP12584 1.0,http://www.robocoderepository.com/BotFiles/3383/jgap.JGAP12584_1.0.jar&lt;br /&gt;
jgap.JGAP130166 1.0,http://www.robocoderepository.com/BotFiles/3371/jgap.JGAP130166_1.0.jar&lt;br /&gt;
jgap.JGAP23423 1.0,http://www.robocoderepository.com/BotFiles/3378/jgap.JGAP23423_1.0.jar&lt;br /&gt;
jgap.JGAP6139 1.0,http://www.robocoderepository.com/BotFiles/3372/jgap.JGAP6139_1.0.jar&lt;br /&gt;
jgap.JGAP7247_2 1.0,http://www.robocoderepository.com/BotFiles/3382/jgap.JGAP7247_2_1.0.jar&lt;br /&gt;
jgap.JGAP7958 1.0,http://www.robocoderepository.com/BotFiles/3373/jgap.JGAP7958_1.0.jar&lt;br /&gt;
jje.BagPuss 1.2,http://darkcanuck.net/rumble/robots/jje.BagPuss_1.2.jar&lt;br /&gt;
jk.mega.DrussGT 1.8.16,http://www.minifly.rchomepage.com/robocode/jk.mega.DrussGT_1.8.16.jar&lt;br /&gt;
jk.micro.Toorkild 0.2.4b,http://www.minifly.rchomepage.com/robocode/jk.micro.Toorkild_0.2.4b.jar&lt;br /&gt;
jk.mini.CunobelinDC 0.4CT,http://www.minifly.rchomepage.com/robocode/jk.mini.CunobelinDC_0.4CT.jar&lt;br /&gt;
jk.precise.Wintermute 0.7,http://www.minifly.rchomepage.com/robocode/jk.precise.Wintermute_0.7.jar&lt;br /&gt;
jmcd.BeoWulf 2.8,http://www.robocoderepository.com/BotFiles/1377/jmcd.BeoWulf_2.8.jar&lt;br /&gt;
joe.ADinosaur 1.0,http://www.robocoderepository.com/BotFiles/2822/joe.ADinosaur_1.0.jar&lt;br /&gt;
jp.Perpy 16.0,http://www.robocoderepository.com/BotFiles/3001/jp.Perpy_16.0.jar&lt;br /&gt;
jp.SineWall 1.0,http://www.robocoderepository.com/BotFiles/2968/jp.SineWall_1.0.jar&lt;br /&gt;
jrm.Test0 1.0,http://www.robocoderepository.com/BotFiles/3636/jrm.Test0_1.0.jar&lt;br /&gt;
js.PinBall 1.6,http://www.robocoderepository.com/BotFiles/684/js.PinBall_1.6.jar&lt;br /&gt;
jsal.Jsalbot 1.0,http://jeremybubs.googlepages.com/jsal.Jsalbot_1.0.jar&lt;br /&gt;
jt.SpearmintCT Alpha,http://www.robocoderepository.com/BotFiles/2164/jt.SpearmintCT_Alpha.jar&lt;br /&gt;
justin.DemonicRage 3.20,http://sites.google.com/site/justinsitehere/file-cabinet/justin.DemonicRage_3.20.jar&lt;br /&gt;
jw.Booring 1.11,http://www.robocoderepository.com/BotFiles/1250/jw.Booring_1.11.jar&lt;br /&gt;
jwst.DAD.DarkAndDarker 1.1,http://darkcanuck.net/rumble/robots/jwst.DAD.DarkAndDarker_1.1.jar&lt;br /&gt;
kanishk.Fr0z3n 1.1,http://darkcanuck.net/rumble/robots/kanishk.Fr0z3n_1.1.jar&lt;br /&gt;
kano.gamma.KanoGamma 1.8,http://www.robocoderepository.com/BotFiles/1098/kano.gamma.KanoGamma_1.8.jar&lt;br /&gt;
kawam.kmBot9 1.0,http://www.robocoderepository.com/BotFiles/967/kawam.kmBot9_1.0.jar&lt;br /&gt;
kawigi.f.FhqwhgadsMicro 1.0,http://www.robocoderepository.com/BotFiles/1673/kawigi.f.FhqwhgadsMicro_1.0.jar&lt;br /&gt;
kawigi.micro.Shiz 1.1,http://www.robocoderepository.com/BotFiles/2007/kawigi.micro.Shiz_1.1.jar&lt;br /&gt;
kawigi.mini.Coriantumr 1.1,http://www.robocoderepository.com/BotFiles/1988/kawigi.mini.Coriantumr_1.1.jar&lt;br /&gt;
kawigi.mini.Fhqwhgads 1.1,http://www.robocoderepository.com/BotFiles/1604/kawigi.mini.Fhqwhgads_1.1.jar&lt;br /&gt;
kawigi.nano.FunkyChicken 1.1,http://www.robocoderepository.com/BotFiles/1512/kawigi.nano.FunkyChicken_1.1.jar&lt;br /&gt;
kawigi.nano.ThnikkaBot 0.9,http://www.robocoderepository.com/BotFiles/2059/kawigi.nano.ThnikkaBot_0.9.jar&lt;br /&gt;
kawigi.robot.Girl 1.2,http://www.robocoderepository.com/BotFiles/2124/kawigi.robot.Girl_1.2.jar&lt;br /&gt;
kawigi.sbf.Barracuda 1.0,http://www.robocoderepository.com/BotFiles/1535/kawigi.sbf.Barracuda_1.0.jar&lt;br /&gt;
kawigi.sbf.FloodHT 0.9.2,http://www.robocoderepository.com/BotFiles/1552/kawigi.sbf.FloodHT_0.9.2.jar&lt;br /&gt;
kawigi.sbf.FloodMicro 1.5,http://www.robocoderepository.com/BotFiles/1381/kawigi.sbf.FloodMicro_1.5.jar&lt;br /&gt;
kawigi.sbf.FloodMini 1.4,http://www.robocoderepository.com/BotFiles/1462/kawigi.sbf.FloodMini_1.4.jar&lt;br /&gt;
kawigi.sbf.FloodNano 1.2,http://www.robocoderepository.com/BotFiles/1421/kawigi.sbf.FloodNano_1.2.jar&lt;br /&gt;
kawigi.sbf.FloodSonnet 0.9,http://www.robocoderepository.com/BotFiles/1779/kawigi.sbf.FloodSonnet_0.9.jar&lt;br /&gt;
kawigi.sbf.Teancum 1.3,http://www.robocoderepository.com/BotFiles/1470/kawigi.sbf.Teancum_1.3.jar&lt;br /&gt;
kawigi.spare.SpareParts 0.7.6nosnd,http://www.robocoderepository.com/BotFiles/1335/kawigi.spare.SpareParts_0.7.6nosnd.jar&lt;br /&gt;
kc.micro.Needle 0.101,http://www.robocoderepository.com/BotFiles/3379/kc.micro.Needle_0.101.jar&lt;br /&gt;
kc.micro.Thorn 1.252,http://sites.google.com/site/kevcsite/robocode/kc.micro.Thorn_1.252.jar&lt;br /&gt;
kc.micro.WaveShark 0.31,http://www.robocoderepository.com/BotFiles/3822/kc.micro.WaveShark_0.31.jar&lt;br /&gt;
kc.mini.Vyper 0.311,http://darkcanuck.net/rumble/robots/kc.mini.Vyper_0.311.jar&lt;br /&gt;
kc.nano.Splinter 1.2,http://darkcanuck.net/rumble/robots/kc.nano.Splinter_1.2.jar&lt;br /&gt;
kc.serpent.Hydra 0.21,http://darkcanuck.net/rumble/robots/kc.serpent.Hydra_0.21.jar&lt;br /&gt;
kc.serpent.WaveSerpent 2.11,http://sites.google.com/site/kevcsite/robocode/kc.serpent.WaveSerpent_2.11.jar&lt;br /&gt;
kcn.percept.PerceptBot 2.3,http://www.robocoderepository.com/BotFiles/1075/kcn.percept.PerceptBot_2.3.jar&lt;br /&gt;
kcn.unnamed.Unnamed 1.21,http://www.robocoderepository.com/BotFiles/1969/kcn.unnamed.Unnamed_1.21.jar&lt;br /&gt;
kenran.mega.Pantheist 1.1,http://sites.google.com/site/kenranbots/robocode/kenran.mega.Pantheist_1.1.jar&lt;br /&gt;
kid.Gladiator .7.2,http://www.citlink.net/~normanp/robocode/gladiator/kid.Gladiator_.7.2.jar&lt;br /&gt;
kid.Toa .0.5,http://www.citlink.net/~normanp/robocode/toa/kid.Toa_.0.5.jar&lt;br /&gt;
KiraNL.Chupacabra 0.5,http://sandbox-project.nl/robocode/KiraNL.Chupacabra_0.5.jar&lt;br /&gt;
KiraNL.ChupaLite 0.2,http://sandbox-project.nl/robocode/KiraNL.ChupaLite_0.2.jar&lt;br /&gt;
KiraNL.SpaceKees 0.1,http://sandbox-project.nl/robocode/KiraNL.SpaceKees_0.1.jar&lt;br /&gt;
kinsen.melee.Angsaichmophobia 1.8c,http://sites.google.com/site/dcvqksyb/robocode/kinsen.melee.Angsaichmophobia_1.8c.jar&lt;br /&gt;
kinsen.nano.Hoplomachy 1.6,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Hoplomachy_1.6.jar&lt;br /&gt;
kinsen.nano.Quarrelet 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Quarrelet_1.0.jar&lt;br /&gt;
kinsen.nano.Senticous 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Senticous_1.0.jar&lt;br /&gt;
kjc.etc.Dharok 1.0,http://www.robocoderepository.com/BotFiles/3293/kjc.etc.Dharok_1.0.jar&lt;br /&gt;
kjc.MailManX 2.0,http://www.robocoderepository.com/BotFiles/3288/kjc.MailManX_2.0.jar&lt;br /&gt;
kjc.Karaykan 1.0,http://www.robocoderepository.com/BotFiles/3289/kjc.Karaykan_1.0.jar&lt;br /&gt;
klein.GottesKrieger 1.1,http://www.robocoderepository.com/BotFiles/3258/klein.GottesKrieger_1.1.jar&lt;br /&gt;
Krabb.fe4r.Fe4r 0.4,http://www.robocoderepository.com/BotFiles/2766/Krabb.fe4r.Fe4r_0.4.jar&lt;br /&gt;
Krabb.sliNk.Garm 0.9u,http://designnj.de/roboking/Krabb.sliNk.Garm_0.9u.jar&lt;br /&gt;
Krabb.krabby.Krabby 1.18b,http://darkcanuck.net/rumble/robots/Krabb.krabby.Krabby_1.18b.jar&lt;br /&gt;
Krabb.krabby2.Krabby2 1.9o,http://darkcanuck.net/rumble/robots/Krabb.krabby2.Krabby2_1.9o.jar&lt;br /&gt;
krillr.mini.JointStrike 2.0.0,http://darkcanuck.net/rumble/robots/krillr.mini.JointStrike_2.0.0.jar&lt;br /&gt;
krillr.mega.Psyche 0.0.3,http://darkcanuck.net/rumble/robots/krillr.mega.Psyche_0.0.3.jar&lt;br /&gt;
krzysiek.robbo2.Robbo 1.0.0,http://darkcanuck.net/rumble/robots/krzysiek.robbo2.Robbo_1.0.0.jar&lt;br /&gt;
kurios.DOSexe .9a,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9a.jar&lt;br /&gt;
kurios.DOSexe .9b,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9b.jar&lt;br /&gt;
kvk.HebusLeTroll 0.41,http://www.robocoderepository.com/BotFiles/2125/kvk.HebusLeTroll_0.41.jar&lt;br /&gt;
labg.Cataclysm 2.05,http://www.robocoderepository.com/BotFiles/2399/labg.Cataclysm_2.05.jar&lt;br /&gt;
lazarecki.mega.PinkerStinker 0.7,http://www.robocoderepository.com/BotFiles/3838/lazarecki.mega.PinkerStinker_0.7.jar&lt;br /&gt;
leb.ShootAnArrow 0.1,http://www.robocoderepository.com/BotFiles/2648/leb.ShootAnArrow_0.1.jar&lt;br /&gt;
lechu.Ala 0.0.4,http://www.robocoderepository.com/BotFiles/3497/lechu.Ala_0.0.4.jar&lt;br /&gt;
lechu.Lechu 1.1,http://www.robocoderepository.com/BotFiles/3480/lechu.Lechu_1.1.jar&lt;br /&gt;
lion.Kresnanano 1.0,http://www.robocoderepository.com/BotFiles/2295/lion.Kresnanano_1.0.jar&lt;br /&gt;
lk.nano.Avesnar 1.1,http://www.robocoderepository.com/BotFiles/1597/lk.nano.Avesnar_1.1.jar&lt;br /&gt;
lorneswork.Predator 1.0,http://www.robocoderepository.com/BotFiles/2609/lorneswork.Predator_1.0.jar&lt;br /&gt;
lrem.Spectre 0.4.4,http://www.robocoderepository.com/BotFiles/2253/lrem.Spectre_0.4.4.jar&lt;br /&gt;
lrem.magic.TormentedAngel Antiquitie,http://maxnet.org.pl/~lrem/lrem.magic.TormentedAngel_Antiquitie.jar&lt;br /&gt;
lrem.micro.MoggFanatic 0.2,http://www.robocoderepository.com/BotFiles/2639/lrem.micro.MoggFanatic_0.2.jar&lt;br /&gt;
lrem.micro.FalseProphet Alpha,http://www.robocoderepository.com/BotFiles/2415/lrem.micro.FalseProphet_Alpha.jar&lt;br /&gt;
lrem.quickhack.QuickHack 1.0,http://www.robocoderepository.com/BotFiles/2555/lrem.quickhack.QuickHack_1.0.jar&lt;br /&gt;
lunchie.Lunchbox 0.93,http://darkcanuck.net/rumble/robots/lunchie.Lunchbox_0.93.jar&lt;br /&gt;
lw.LuthersTest 0.1,http://www.citlink.net/~normanp/robocode/luther/lw.LuthersTest_0.1.jar&lt;br /&gt;
m3thos.Eva00 1.1,http://darkcanuck.net/rumble/robots/m3thos.Eva00_1.1.jar&lt;br /&gt;
m3thos.Eva02 0.7.1,http://darkcanuck.net/rumble/robots/m3thos.Eva02_0.7.1.jar&lt;br /&gt;
m3thos.mini.Eva01 0.5.5,http://darkcanuck.net/rumble/robots/m3thos.mini.Eva01_0.5.5.jar&lt;br /&gt;
madmath.Cow 0.1.1,http://www.robocoderepository.com/BotFiles/3476/madmath.Cow_0.1.1.jar&lt;br /&gt;
marcinek.TopGun 1.3,http://www.robocoderepository.com/BotFiles/3458/marcinek.TopGun_1.3.jar&lt;br /&gt;
marksteam.Phoenix 1.0,http://www.robocoderepository.com/BotFiles/2749/marksteam.Phoenix_1.0.jar&lt;br /&gt;
matt.advanced.Katana 1.0,http://www.robocoderepository.com/BotFiles/2498/matt.advanced.Katana_1.0.jar&lt;br /&gt;
matt.BlueMind 0.8.00,http://www.robocoderepository.com/BotFiles/2685/matt.BlueMind_0.8.00.jar&lt;br /&gt;
matt.UnderDark3 2.4.34,http://www.robocoderepository.com/BotFiles/2485/matt.UnderDark3_2.4.34.jar&lt;br /&gt;
matt.UnderDark4 0.4.00,http://www.robocoderepository.com/BotFiles/2644/matt.UnderDark4_0.4.00.jar&lt;br /&gt;
mbh.Mbh 0.1,http://www.robocoderepository.com/BotFiles/3365/mbh.Mbh_0.1.jar&lt;br /&gt;
mbro.BelajarBot 0.0.3,http://www.robocoderepository.com/BotFiles/2471/mbro.BelajarBot_0.0.3.jar&lt;br /&gt;
mbro.Detektor3 0.1.1,http://www.robocoderepository.com/BotFiles/2478/mbro.Detektor3_0.1.1.jar&lt;br /&gt;
mc.Messapia 0.1.8,http://www.robocoderepository.com/BotFiles/2223/mc.Messapia_0.1.8.jar&lt;br /&gt;
mcb.Audace 1.3,http://www.robocoderepository.com/BotFiles/3424/mcb.Audace_1.3.jar&lt;br /&gt;
md.November 1.0,http://www.robocoderepository.com/BotFiles/1004/md.November_1.0.jar&lt;br /&gt;
md.Pasta 1.1,http://www.robocoderepository.com/BotFiles/1014/md.Pasta_1.1.jar&lt;br /&gt;
md.VelociRaptor 1.3,http://www.robocoderepository.com/BotFiles/232/md.VelociRaptor_1.3.jar&lt;br /&gt;
mdouet.BotKicker 2.0,http://www.robocoderepository.com/BotFiles/1478/mdouet.BotKicker_2.0.jar&lt;br /&gt;
metal.small.MCool 1.21,http://www.robocoderepository.com/BotFiles/1698/metal.small.MCool_1.21.jar&lt;br /&gt;
metal.small.dna2.MCoolDNA 1.5,http://www.robocoderepository.com/BotFiles/2354/metal.small.dna2.MCoolDNA_1.5.jar&lt;br /&gt;
mk.Alpha 0.2.1,http://darkcanuck.net/rumble/robots/mk.Alpha_0.2.1.jar&lt;br /&gt;
mladjo.AIR 0.7,http://www.robocoderepository.com/BotFiles/3187/mladjo.AIR_0.7.jar&lt;br /&gt;
mladjo.GnuKlub 0.1,http://darkcanuck.net/rumble/robots/mladjo.GnuKlub_0.1.jar&lt;br /&gt;
mladjo.Grrrrr 0.9,http://www.robocoderepository.com/BotFiles/3189/mladjo.Grrrrr_0.9.jar&lt;br /&gt;
mladjo.iRobot 0.3,http://www.robocoderepository.com/BotFiles/3149/mladjo.iRobot_0.3.jar&lt;br /&gt;
mladjo.Startko 1.0,http://www.robocoderepository.com/BotFiles/3186/mladjo.Startko_1.0.jar&lt;br /&gt;
mld.DustBunny 3.8,http://www.robocoderepository.com/BotFiles/3650/mld.DustBunny_3.8.jar&lt;br /&gt;
mld.Infinity 2.2,http://www.robocoderepository.com/BotFiles/3591/mld.Infinity_2.2.jar&lt;br /&gt;
mld.LittleBlackBook 1.69c,http://www.robocoderepository.com/BotFiles/3873/mld.LittleBlackBook_1.69c.jar&lt;br /&gt;
mld.Moebius 2.9.3,http://www.robocoderepository.com/BotFiles/3634/mld.Moebius_2.9.3.jar&lt;br /&gt;
mld.Wisdom 1.0,http://www.robocoderepository.com/BotFiles/3640/mld.Wisdom_1.0.jar&lt;br /&gt;
mmb.Roskilde 0.5,http://www.robocoderepository.com/BotFiles/3965/mmb.Roskilde_0.5.jar&lt;br /&gt;
mme.NikeEnhanced 2.0,http://www.robocoderepository.com/BotFiles/2828/mme.NikeEnhanced_2.0.jar&lt;br /&gt;
mn.Combat 1.0,http://www.robocoderepository.com/BotFiles/2351/mn.Combat_1.0.jar&lt;br /&gt;
mn.WarMachine 1.1,http://www.robocoderepository.com/BotFiles/2574/mn.WarMachine_1.1.jar&lt;br /&gt;
mnt.AHEB 0.6a,http://www.robocoderepository.com/BotFiles/2417/mnt.AHEB_0.6a.jar&lt;br /&gt;
mnt.SurferBot 0.2.5,http://www.robocoderepository.com/BotFiles/2433/mnt.SurferBot_0.2.5.jar&lt;br /&gt;
morbid.MorbidPriest 1.0,http://www.robocoderepository.com/BotFiles/1758/morbid.MorbidPriest_1.0.jar&lt;br /&gt;
mrm.MightyMoose .2,http://darkcanuck.net/rumble/robots/mrm.MightyMoose_.2.jar&lt;br /&gt;
ms.Ares 0.19,http://www.robocoderepository.com/BotFiles/730/ms.Ares_0.19.jar&lt;br /&gt;
mue.Ascendant 1.2.27,http://mue.sonar-echo.de/robocode/mue.Ascendant_1.2.27.jar&lt;br /&gt;
mue.Hyperion 0.8,http://www.robocoderepository.com/BotFiles/2224/mue.Hyperion_0.8.jar&lt;br /&gt;
muf.CrazyKitten 0.9,http://www.robocoderepository.com/BotFiles/1946/muf.CrazyKitten_0.9.jar&lt;br /&gt;
mwj.A1176183 1.0,http://robocode.rleach.id.au/mwj.A1176183_1.0.jar&lt;br /&gt;
myl.micro.Avipes 1.00,http://www.robocoderepository.com/BotFiles/1347/myl.micro.Avipes_1.00.jar&lt;br /&gt;
myl.micro.NekoNinja 1.30,http://www.robocoderepository.com/BotFiles/944/myl.micro.NekoNinja_1.30.jar&lt;br /&gt;
myl.micro.Predator 1.50,http://www.robocoderepository.com/BotFiles/1097/myl.micro.Predator_1.50.jar&lt;br /&gt;
myl.micro.Troodon 1.10,http://www.robocoderepository.com/BotFiles/1226/myl.micro.Troodon_1.10.jar&lt;br /&gt;
myl.nano.Graviton 1.10,http://www.robocoderepository.com/BotFiles/770/myl.nano.Graviton_1.10.jar&lt;br /&gt;
myl.nano.Kakuru 1.20,http://www.robocoderepository.com/BotFiles/1330/myl.nano.Kakuru_1.20.jar&lt;br /&gt;
myl.nano.KomoriNinja 1.1,http://www.robocoderepository.com/BotFiles/978/myl.nano.KomoriNinja_1.1.jar&lt;br /&gt;
mym.EdgeStalker 1.0,http://www.robocoderepository.com/BotFiles/3956/mym.EdgeStalker_1.0.jar&lt;br /&gt;
mz.Adept 2.65,http://www.robocoderepository.com/BotFiles/2090/mz.Adept_2.65.jar&lt;br /&gt;
mz.AdeptBSB 1.03,http://www.robocoderepository.com/BotFiles/2113/mz.AdeptBSB_1.03.jar&lt;br /&gt;
mz.Movement 1.8,http://www.robocoderepository.com/BotFiles/2145/mz.Movement_1.8.jar&lt;br /&gt;
mz.NanoDeath 2.56,http://www.robocoderepository.com/BotFiles/2010/mz.NanoDeath_2.56.jar&lt;br /&gt;
mz.NanoGod 2.02,http://www.robocoderepository.com/BotFiles/1996/mz.NanoGod_2.02.jar&lt;br /&gt;
nammyung.ModelT 0.23,http://www.robocoderepository.com/BotFiles/969/nammyung.ModelT_0.23.jar&lt;br /&gt;
nanoskank.NanoSkank 1.0,http://darkcanuck.net/rumble/robots/nanoskank.NanoSkank_1.0.jar&lt;br /&gt;
nat.BlackHole 2.0gamma,http://nat.robothai.net/robots/nat.BlackHole_2.0gamma.jar&lt;br /&gt;
nat.micro.NP 1.34,http://nat.robothai.net/robots/nat.micro.NP_1.34.jar&lt;br /&gt;
nat.micro.Reepicheep 0.1a,http://nat.robothai.net/robots/nat.micro.Reepicheep_0.1a.jar&lt;br /&gt;
nat.nano.Ocnirp 1.73,http://nat.robothai.net/robots/nat.nano.Ocnirp_1.73.jar&lt;br /&gt;
nat.nano.OcnirpPM 1.0,http://nat.robothai.net/robots/nat.nano.OcnirpPM_1.0.jar&lt;br /&gt;
nat.nano.OcnirpSNG 1.0b,http://nat.robothai.net/robots/nat.nano.OcnirpSNG_1.0b.jar&lt;br /&gt;
nat.Samekh 0.4,http://nat.robothai.net/robots/nat.Samekh_0.4.jar&lt;br /&gt;
ndn.DyslexicMonkey 1.1,http://www.robocoderepository.com/BotFiles/1141/ndn.DyslexicMonkey_1.1.jar&lt;br /&gt;
NDH.GuessFactor 1.0, http://www.robocoderepository.com/BotFiles/3949/NDH.GuessFactor_1.0.jar&lt;br /&gt;
ne.Chimera 1.2,http://www.robocoderepository.com/BotFiles/3276/ne.Chimera_1.2.jar&lt;br /&gt;
nexus.One 1.0,http://darkcanuck.net/rumble/robots/nexus.One_1.0.jar&lt;br /&gt;
nexus.Prototype 1.0,http://darkcanuck.net/rumble/robots/nexus.Prototype_1.0.jar&lt;br /&gt;
nic.Nicator 2.4,http://www.robocoderepository.com/BotFiles/193/nic.Nicator_2.4.jar&lt;br /&gt;
nic.SnippetBot 1.0,http://www.robocoderepository.com/BotFiles/286/nic.SnippetBot_1.0.jar&lt;br /&gt;
nkn.mini.Jskr0 0.1,http://www.robocoderepository.com/BotFiles/3852/nkn.mini.Jskr0_0.1.jar&lt;br /&gt;
NG.LegatusLegionis 1.0,http://www.robocoderepository.com/BotFiles/3888/NG.LegatusLegionis_1.0.jar&lt;br /&gt;
NG.LegatusLegionis 1.1,http://www.robocoderepository.com/BotFiles/3889/NG.LegatusLegionis_1.1.jar&lt;br /&gt;
non.mega.NaN 0.1,http://www.robocoderepository.com/BotFiles/1960/non.mega.NaN_0.1.jar&lt;br /&gt;
non.mega.NoName 0.0,http://www.robocoderepository.com/BotFiles/1957/non.mega.NoName_0.0.jar&lt;br /&gt;
Noran.BitchingElk 0.054,http://www.robocoderepository.com/BotFiles/1855/Noran.BitchingElk_0.054.jar&lt;br /&gt;
Noran.RandomTargeting 0.02,http://www.robocoderepository.com/BotFiles/1849/Noran.RandomTargeting_0.02.jar&lt;br /&gt;
nova.Snow 1.0,http://www.robocoderepository.com/BotFiles/3623/nova.Snow_1.0.jar&lt;br /&gt;
ntc.Cannon 1.12test,http://www.robocoderepository.com/BotFiles/3815/ntc.Cannon_1.12test.jar&lt;br /&gt;
ntc.Evader 1.2,http://www.robocoderepository.com/BotFiles/3355/ntc.Evader_1.2.jar&lt;br /&gt;
ntc.Knowledge 1.1,http://www.robocoderepository.com/BotFiles/3354/ntc.Knowledge_1.1.jar&lt;br /&gt;
ntc.Lasers.Lasers 0.9,http://www.robocoderepository.com/BotFiles/3359/ntc.Lasers.Lasers_0.9.jar&lt;br /&gt;
ntc.Plains 0.9,http://www.robocoderepository.com/BotFiles/3381/ntc.Plains_0.9.jar&lt;br /&gt;
ntc.Swim 0.9,http://www.robocoderepository.com/BotFiles/3820/ntc.Swim_0.9.jar&lt;br /&gt;
ntw.Sighup 1.5,http://darkcanuck.net/rumble/robots/ntw.Sighup_1.5.jar&lt;br /&gt;
ntw.Sigsys 1.6,http://darkcanuck.net/rumble/robots/ntw.Sigsys_1.6.jar&lt;br /&gt;
nz.jdc.micro.HedgehogGF 1.3,http://www.robocoderepository.com/BotFiles/3626/nz.jdc.micro.HedgehogGF_1.3.jar&lt;br /&gt;
nz.jdc.micro.HedgehogP 1.2,http://www.robocoderepository.com/BotFiles/3622/nz.jdc.micro.HedgehogP_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophytePattern 1.0,http://www.robocoderepository.com/BotFiles/3578/nz.jdc.nano.NeophytePattern_1.0.jar&lt;br /&gt;
nz.jdc.nano.NeophytePRAL 1.2,http://www.robocoderepository.com/BotFiles/3568/nz.jdc.nano.NeophytePRAL_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophyteSRAL 1.2,http://www.robocoderepository.com/BotFiles/3567/nz.jdc.nano.NeophyteSRAL_1.2.jar&lt;br /&gt;
oa.weak.BotherBot 0.1,http://www.robocoderepository.com/BotFiles/2956/oa.weak.BotherBot_0.1.jar&lt;br /&gt;
oa.weak.FlyMk1 0.1,http://www.robocoderepository.com/BotFiles/2958/oa.weak.FlyMk1_0.1.jar&lt;br /&gt;
ola.Puffin 1.0,http://www.robocoderepository.com/BotFiles/3380/ola.Puffin_1.0.jar&lt;br /&gt;
oog.Caligula 1.0,http://www.robocoderepository.com/BotFiles/3957/oog.Caligula_1.0.jar&lt;br /&gt;
oog.melee.Capulet 0.1,http://www.robocoderepository.com/BotFiles/3765/oog.melee.Capulet_0.1.jar&lt;br /&gt;
oog.melee.CapuletDroid 1.0,http://www.robocoderepository.com/BotFiles/3829/oog.melee.CapuletDroid_1.0.jar&lt;br /&gt;
oog.melee.Mercutio 1.0,http://www.robocoderepository.com/BotFiles/3848/oog.melee.Mercutio_1.0.jar&lt;br /&gt;
oog.micro.MagicD3 0.41,http://www.robocoderepository.com/BotFiles/3801/oog.micro.MagicD3_0.41.jar&lt;br /&gt;
oog.micro.Maui 1.1,http://www.robocoderepository.com/BotFiles/3779/oog.micro.Maui_1.1.jar&lt;br /&gt;
oog.micro.SavantMicro 1.0,http://www.robocoderepository.com/BotFiles/3958/oog.micro.SavantMicro_1.0.jar&lt;br /&gt;
oog.nano.Fuatisha 1.0,http://www.robocoderepository.com/BotFiles/3720/oog.nano.Fuatisha_1.0.jar&lt;br /&gt;
oog.nano.MagicD2 2.4,http://www.robocoderepository.com/BotFiles/3749/oog.nano.MagicD2_2.4.jar&lt;br /&gt;
oog.nano.SavantVS 1.1,http://www.robocoderepository.com/BotFiles/3714/oog.nano.SavantVS_1.1.jar&lt;br /&gt;
oog.nano.SavantWS 0.1,http://www.robocoderepository.com/BotFiles/3709/oog.nano.SavantWS_0.1.jar&lt;br /&gt;
pa.Improved 1.1,http://darkcanuck.net/rumble/robots/pa.Improved_1.1.jar&lt;br /&gt;
pak.JakeTheTestingRobot .1b,http://www.robocoderepository.com/BotFiles/3373/pak.JakeTheTestingRobot_.1b.jar&lt;br /&gt;
pak.Dargon 1.0b,http://www.robocoderepository.com/BotFiles/3388/pak.Dargon_1.0b.jar&lt;br /&gt;
pak.Dargon .2c,http://www.robocoderepository.com/BotFiles/3389/pak.Dargon_.2c.jar&lt;br /&gt;
paolord.TheHulk 1.0,http://www.robocoderepository.com/BotFiles/3595/paolord.TheHulk_1.0.jar&lt;br /&gt;
patson.PatsonTestBot 1.0,http://www.robocoderepository.com/BotFiles/3324/patson.PatsonTestBot_1.0.jar&lt;br /&gt;
paulk.PaulV3 1.7,http://www.robocoderepository.com/BotFiles/3502/paulk.PaulV3_1.7.jar&lt;br /&gt;
paulk.PaulV3 1.6,http://www.robocoderepository.com/BotFiles/3497/paulk.PaulV3_1.6.jar&lt;br /&gt;
paulk.PaulV3 1.5,http://www.robocoderepository.com/BotFiles/3496/paulk.PaulV3_1.5.jar&lt;br /&gt;
paulk.PaulV3 1.3,http://www.robocoderepository.com/BotFiles/3495/paulk.PaulV3_1.3.jar&lt;br /&gt;
pb.Oscillator 1.0,http://www.robocoderepository.com/BotFiles/2070/pb.Oscillator_1.0.jar&lt;br /&gt;
pe.mini.SandboxMini 1.2,http://www.robocoderepository.com/BotFiles/917/pe.mini.SandboxMini_1.2.jar&lt;br /&gt;
pe.minimelee.SandboxMiniMelee 1.1,http://www.robocoderepository.com/BotFiles/934/pe.minimelee.SandboxMiniMelee_1.1.jar&lt;br /&gt;
pe.SandboxDT 3.02,http://www.robocoderepository.com/BotFiles/793/pe.SandboxDT_3.02.jar&lt;br /&gt;
pe.SandboxLump 1.52,http://www.robocoderepository.com/BotFiles/731/pe.SandboxLump_1.52.jar&lt;br /&gt;
pedersen.Hubris 2.4,http://home.comcast.net/~kokyunage/robocode/hubris/pedersen.Hubris_2.4.jar&lt;br /&gt;
pedersen.Ugluk 1.0,http://home.comcast.net/~kokyunage/robocode/ugluk/pedersen.Ugluk_1.0.jar&lt;br /&gt;
pez.clean.Swiffer 0.2.9,http://www.robocoderepository.com/BotFiles/1883/pez.clean.Swiffer_0.2.9.jar&lt;br /&gt;
pez.frankie.Frankie 0.9.6.1,http://www.robocoderepository.com/BotFiles/1565/pez.frankie.Frankie_0.9.6.1.jar&lt;br /&gt;
pez.gloom.GloomyDark 0.9.2,http://www.robocoderepository.com/BotFiles/1741/pez.gloom.GloomyDark_0.9.2.jar&lt;br /&gt;
pez.mako.Mako 1.5,http://www.robocoderepository.com/BotFiles/1317/pez.mako.Mako_1.5.jar&lt;br /&gt;
pez.micro.Aristocles 0.3.7,http://www.robocoderepository.com/BotFiles/1923/pez.micro.Aristocles_0.3.7.jar&lt;br /&gt;
pez.mini.ChironexFleckeri 0.5,http://www.robocoderepository.com/BotFiles/2513/pez.mini.ChironexFleckeri_0.5.jar&lt;br /&gt;
pez.mini.Gouldingi 1.5,http://www.robocoderepository.com/BotFiles/1351/pez.mini.Gouldingi_1.5.jar&lt;br /&gt;
pez.mini.Pugilist 2.4.18,http://darkcanuck.net/rumble/robots/pez.mini.Pugilist_2.4.18.jar&lt;br /&gt;
pez.mini.Tityus 0.9.1,http://www.robocoderepository.com/BotFiles/1657/pez.mini.Tityus_0.9.1.jar&lt;br /&gt;
pez.mini.VertiLeach 0.4.0,http://www.robocoderepository.com/BotFiles/1744/pez.mini.VertiLeach_0.4.0.jar&lt;br /&gt;
pez.nano.Icarus 0.3,http://www.robocoderepository.com/BotFiles/2353/pez.nano.Icarus_0.3.jar&lt;br /&gt;
pez.nano.LittleEvilBrother 0.1,http://www.robocoderepository.com/BotFiles/2056/pez.nano.LittleEvilBrother_0.1.jar&lt;br /&gt;
pez.rumble.Ali 0.4.9,http://www.robocoderepository.com/BotFiles/2416/pez.rumble.Ali_0.4.9.jar&lt;br /&gt;
pez.rumble.CassiusClay 2rho.01b,http://www.dijitari.com/void/robocode/pez.rumble.CassiusClay_2rho.01b.jar&lt;br /&gt;
pfvicm.Sobieski 7.2.3b,http://www.robocoderepository.com/BotFiles/2911/pfvicm.Sobieski_7.2.3b.jar&lt;br /&gt;
ph.micro.Pikeman 0.4.5,http://www.robocoderepository.com/BotFiles/2364/ph.micro.Pikeman_0.4.5.jar&lt;br /&gt;
ph.mini.Archer 0.6.6,http://www.robocoderepository.com/BotFiles/2326/ph.mini.Archer_0.6.6.jar&lt;br /&gt;
ph.musketeer.Musketeer 0.6,http://www.robocoderepository.com/BotFiles/2281/ph.musketeer.Musketeer_0.6.jar&lt;br /&gt;
ph.Thinker 0.2.5,http://www.robocoderepository.com/BotFiles/2336/ph.Thinker_0.2.5.jar&lt;br /&gt;
pi.Dark 10,http://darkcanuck.net/rumble/robots/pi.Dark_10.jar&lt;br /&gt;
pl.Drum 0.1,http://darkcanuck.net/rumble/robots/pl.Drum_0.1.jar&lt;br /&gt;
pl.Patton.GeneralPatton 1.54,http://darkcanuck.net/rumble/robots/pl.Patton.GeneralPatton_1.54.jar&lt;br /&gt;
pla.Memnoch 0.5,http://www.robocoderepository.com/BotFiles/2211/pla.Memnoch_0.5.jar&lt;br /&gt;
PK.Twardy 0.4.2,http://www.robocoderepository.com/BotFiles/3272/PK.Twardy_0.4.2.jar&lt;br /&gt;
pkdeken.Paladin 1.0,http://www.robocoderepository.com/BotFiles/3556/pkdeken.Paladin_1.0.jar&lt;br /&gt;
PkKillers.PkAssassin 1.0,http://www.robocoderepository.com/BotFiles/3485/PkKillers.PkAssassin_1.0.jar&lt;br /&gt;
pmc.SniperBot 1.0,http://darkcanuck.net/rumble/robots/pmc.SniperBot_1.0.jar&lt;br /&gt;
positive.Portia 1.26e,http://sites.google.com/site/robopositive/portia/positive.Portia_1.26e.jar&lt;br /&gt;
povik.nano.Smilee 0.2.1,http://www.robocoderepository.com/BotFiles/3950/povik.nano.Smilee_0.2.1.jar&lt;br /&gt;
projectx.ProjectNano 2.0,http://darkcanuck.net/rumble/robots/projectx.ProjectNano_2.0.jar&lt;br /&gt;
projectx.TestNano 1.0,http://www.robocoderepository.com/BotFiles/3444/projectx.TestNano_1.0.jar&lt;br /&gt;
pulsar.PulsarMax 0.8.9,http://www.robocoderepository.com/BotFiles/2227/pulsar.PulsarMax_0.8.9.jar&lt;br /&gt;
pulsar.PulsarNano 0.2.4,http://www.robocoderepository.com/BotFiles/2335/pulsar.PulsarNano_0.2.4.jar&lt;br /&gt;
pulsar.Nanis 0.3,http://www.robocoderepository.com/BotFiles/2560/pulsar.Nanis_0.3.jar&lt;br /&gt;
qohnil.blot.BlotBot 3.61,http://www.robocoderepository.com/BotFiles/546/qohnil.blot.BlotBot_3.61.jar&lt;br /&gt;
Queens_teamrobot.UltraRazor 1.0,http://www.robocoderepository.com/BotFiles/2108/Queens_teamrobot.UltraRazor_1.0.jar&lt;br /&gt;
quietus.Invader 0.1,http://robocode.rleach.id.au/quietus.Invader_0.1.jar&lt;br /&gt;
quietus.NarrowRadar 0.1,http://robocode.rleach.id.au/quietus.NarrowRadar_0.1.jar&lt;br /&gt;
radnor.DoctorBob 1.42,http://www.robocoderepository.com/BotFiles/2133/radnor.DoctorBob_1.42.jar&lt;br /&gt;
radnor.RamRod 1.0,http://www.robocoderepository.com/BotFiles/2085/radnor.RamRod_1.0.jar&lt;br /&gt;
rampancy.Durandal 2.2d,http://stanford.edu/~mchunlum/robocode/rampancy.Durandal_2.2d.jar&lt;br /&gt;
rampancy.micro.Epiphron 1.0,http://stanford.edu/~mchunlum/robocode/rampancy.micro.Epiphron_1.0.jar&lt;br /&gt;
rapture.Rapture 2.13,http://www.robocoderepository.com/BotFiles/15/rapture.Rapture_2.13.jar&lt;br /&gt;
ratosh.nano.Debo 1.36,http://www.robocoderepository.com/BotFiles/1702/ratosh.nano.Debo_1.36.jar&lt;br /&gt;
ratosh.Nobo 0.21,http://www.robocoderepository.com/BotFiles/1612/ratosh.Nobo_0.21.jar&lt;br /&gt;
ratosh.Wesco 1.4,http://www.robocoderepository.com/BotFiles/1914/ratosh.Wesco_1.4.jar&lt;br /&gt;
rcb.Vanessa03 0,http://www.robocoderepository.com/BotFiles/1364/rcb.Vanessa03_0.jar&lt;br /&gt;
rcp.Kuramatron 1.0,http://www.robocoderepository.com/BotFiles/3307/rcp.Kuramatron_1.0.jar&lt;br /&gt;
rdt199.Warlord 0.73,http://www.robocoderepository.com/BotFiles/1130/rdt199.Warlord_0.73.jar&lt;br /&gt;
reaper.Reaper 1.1,http://www.robocoderepository.com/BotFiles/3412/reaper.Reaper_1.1.jar&lt;br /&gt;
repositorio.NanoStep 1.0,http://darkcanuck.net/rumble/robots/repositorio.NanoStep_1.0.jar&lt;br /&gt;
rfj.Sunburn 1.1,http://www.robocoderepository.com/BotFiles/1060/rfj.Sunburn_1.1.jar&lt;br /&gt;
rijteam.SmartDodge 1.1,http://www.robocoderepository.com/BotFiles/2959/rijteam.SmartDodge_1.1.jar&lt;br /&gt;
robar.haiku.Spike 1.0,http://invitel.hu/artrog/robar.haiku.Spike_1.0.jar&lt;br /&gt;
robar.micro.Gladius 1.15,http://invitel.hu/artrog/robar.micro.Gladius_1.15.jar&lt;br /&gt;
robar.micro.Kirbyi 1.0,http://hunrobar.freeblog.hu/files/myrobots/robar.micro.Kirbyi_1.0.jar&lt;br /&gt;
robar.micro.Topaz 0.25,http://invitel.hu/artrog/robar.micro.Topaz_0.25.jar&lt;br /&gt;
robar.nano.Assertive 0.3,http://invitel.hu/artrog/robar.nano.Assertive_0.3.jar&lt;br /&gt;
robar.nano.BlackWidow 1.3,http://www.robocoderepository.com/BotFiles/3574/robar.nano.BlackWidow_1.3.jar&lt;br /&gt;
robar.nano.Breeze 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Breeze_0.3.jar&lt;br /&gt;
robar.nano.Mosquito 1.1,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Mosquito_1.1.jar&lt;br /&gt;
robar.nano.MosquitoPM 1.0,http://www.robocoderepository.com/BotFiles/3559/robar.nano.MosquitoPM_1.0.jar&lt;br /&gt;
robar.nano.Prestige 1.0,http://www.robocoderepository.com/BotFiles/3507/robar.nano.Prestige_1.0.jar&lt;br /&gt;
robar.nano.Pugio 1.49,http://www.robocoderepository.com/BotFiles/3710/robar.nano.Pugio_1.49.jar&lt;br /&gt;
robar.nano.Scytodes 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Scytodes_0.3.jar&lt;br /&gt;
robar.nano.Vespa 0.95,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Vespa_0.95.jar&lt;br /&gt;
robo.PartsBot 1.1,http://darkcanuck.net/rumble/robots/robo.PartsBot_1.1.jar&lt;br /&gt;
RobotMarco.MarcoV 0.1,http://www.robocoderepository.com/BotFiles/3941/RobotMarco.MarcoV_0.1.jar&lt;br /&gt;
rsim.micro.uCatcher 0.1,http://sites.google.com/site/rsimander/robocode/rsim.micro.uCatcher_0.1.jar&lt;br /&gt;
rsim.mini.BulletCatcher 0.4,http://www.robocoderepository.com/BotFiles/3737/rsim.mini.BulletCatcher_0.4.jar&lt;br /&gt;
rsk1.RSK1 4.0,http://www.robocoderepository.com/BotFiles/3284/rsk1.RSK1_4.0.jar&lt;br /&gt;
ruc.nano.Zealot 0.2,http://www.robocoderepository.com/BotFiles/1229/ruc.nano.Zealot_0.2.jar&lt;br /&gt;
ry.LightningBug 1.0,http://www.robocoderepository.com/BotFiles/3472/ry.LightningBug_1.0.jar&lt;br /&gt;
ry.VirtualGunExperiment 1.2.0,http://www.robocoderepository.com/BotFiles/3662/ry.VirtualGunExperiment_1.2.0.jar&lt;br /&gt;
ry.Worst 1.0,http://www.robocoderepository.com/BotFiles/3645/ry.Worst_1.0.jar&lt;br /&gt;
rz.Aleph 0.34,http://www.robocoderepository.com/BotFiles/1993/rz.Aleph_0.34.jar&lt;br /&gt;
rz.Apollon 0.23,http://www.robocoderepository.com/BotFiles/2098/rz.Apollon_0.23.jar&lt;br /&gt;
rz.Artist 0.2,http://www.robocoderepository.com/BotFiles/2156/rz.Artist_0.2.jar&lt;br /&gt;
rz.GlowBlow 2.31,http://www.robocoderepository.com/BotFiles/1354/rz.GlowBlow_2.31.jar&lt;br /&gt;
rz.GlowBlowAPM 1.0,http://www.robocoderepository.com/BotFiles/1382/rz.GlowBlowAPM_1.0.jar&lt;br /&gt;
rz.GlowBlowMelee 1.4,http://www.robocoderepository.com/BotFiles/1436/rz.GlowBlowMelee_1.4.jar&lt;br /&gt;
rz.HawkOnFire 0.1,http://www.robocoderepository.com/BotFiles/1575/rz.HawkOnFire_0.1.jar&lt;br /&gt;
rz.SmallDevil 1.502,http://www.robocoderepository.com/BotFiles/1322/rz.SmallDevil_1.502.jar&lt;br /&gt;
sam.ChipmunkDuelist 1.0,http://www.robocoderepository.com/BotFiles/3094/sam.ChipmunkDuelist_1.0.jar&lt;br /&gt;
sam.Samspin 1.0,http://www.robocoderepository.com/BotFiles/2823/sam.Samspin_1.0.jar&lt;br /&gt;
sanyi.mikrobi.Roberto 1.0,http://www.robocoderepository.com/BotFiles/3929/sanyi.mikrobi.Roberto_1.0.jar&lt;br /&gt;
sch.Simone 0.3d,http://www.robocoderepository.com/BotFiles/374/sch.Simone_0.3d.jar&lt;br /&gt;
serenity.moonlightBat 1.17,http://www.robocoderepository.com/BotFiles/2877/serenity.moonlightBat_1.17.jar&lt;br /&gt;
serenity.nonSense 1.39,http://www.robocoderepository.com/BotFiles/3586/serenity.nonSense_1.39.jar&lt;br /&gt;
serenity.serenityFire 1.29,http://www.robocoderepository.com/BotFiles/3071/serenity.serenityFire_1.29.jar&lt;br /&gt;
sgp.JollyNinja 3.53,http://www.robocoderepository.com/BotFiles/183/sgp.JollyNinja_3.53.jar&lt;br /&gt;
sgp.MadHatter 4.13,http://www.robocoderepository.com/BotFiles/156/sgp.MadHatter_4.13.jar&lt;br /&gt;
sgp.nano.FurryLeech 1.0,http://www.robocoderepository.com/BotFiles/802/sgp.nano.FurryLeech_1.0.jar&lt;br /&gt;
sgp.ShiningBeetle 1.1,http://www.robocoderepository.com/BotFiles/498/sgp.ShiningBeetle_1.1.jar&lt;br /&gt;
sgp.SleepingGoat 1.1,http://www.robocoderepository.com/BotFiles/500/sgp.SleepingGoat_1.1.jar&lt;br /&gt;
SHAM.WOW 1.4,http://darkcanuck.net/rumble/robots/SHAM.WOW_1.4.jar&lt;br /&gt;
shinh.Entangled 0.3,http://www.robocoderepository.com/BotFiles/1070/shinh.Entangled_0.3.jar&lt;br /&gt;
shrub.Silver v048,http://www.robocoderepository.com/BotFiles/449/shrub.Silver_v048.jar&lt;br /&gt;
shrub.Vapour v159,http://www.robocoderepository.com/BotFiles/2654/shrub.Vapour_v159.jar&lt;br /&gt;
shu.nitro.LENIN .T34,http://www.robocoderepository.com/BotFiles/1956/shu.nitro.LENIN_.T34.jar&lt;br /&gt;
sigterm.Sigterm 1.0,http://darkcanuck.net/rumble/robots/sigterm.Sigterm_1.0.jar&lt;br /&gt;
simonton.beta.LifelongObsession 0.5.1,http://www.robocoderepository.com/BotFiles/3195/simonton.beta.LifelongObsession_0.5.1.jar&lt;br /&gt;
simonton.GFNano_D 3.1b,http://www.robocoderepository.com/BotFiles/3114/simonton.GFNano_D_3.1b.jar&lt;br /&gt;
simonton.nano.WeekendObsession_S 1.7,http://www.robocoderepository.com/BotFiles/3117/simonton.nano.WeekendObsession_S_1.7.jar&lt;br /&gt;
simonton.micro.GFMicro 1.0,http://upload.frozenonline.com/view/simonton/simonton.micro.GFMicro_1.0.jar&lt;br /&gt;
simonton.micro.WeeklongObsession 3.4.1,http://upload.frozenonline.com/view/simonton/simonton.micro.WeeklongObsession_3.4.1.jar&lt;br /&gt;
simonton.mini.WeeksOnEnd 1.10.4,http://upload.frozenonline.com/view/simonton/simonton.mini.WeeksOnEnd_1.10.4.jar&lt;br /&gt;
skm.butterfly 1.0,http://www.robocoderepository.com/BotFiles/3868/sean1.jar&lt;br /&gt;
skm.Ryubot 1.0,http://www.robocoderepository.com/BotFiles/3594/skm.Ryubot_1.0.jar&lt;br /&gt;
skm.PateranBotlock2 1.0,http://www.robocoderepository.com/BotFiles/3591/skm.PateranBotlock2_1.0.jar&lt;br /&gt;
sL300.Mozart life,http://www.robocoderepository.com/BotFiles/1992/sL300.Mozart_life.jar&lt;br /&gt;
sm.Devil 7.3,http://www.robocoderepository.com/BotFiles/1481/sm.Devil_7.3.jar&lt;br /&gt;
sng.arco.Arco 0.0,http://www.robocoderepository.com/BotFiles/3279/sng.arco.Arco_0.0.jar&lt;br /&gt;
sos.SOS 1.0,http://www.robocoderepository.com/BotFiles/3489/sos.SOS_1.0.jar&lt;br /&gt;
spinnercat.CopyKat 1.2.3,http://www.robocoderepository.com/BotFiles/3818/spinnercat.CopyKat_1.2.3.jar&lt;br /&gt;
spinnercat.Limit .01,http://www.robocoderepository.com/BotFiles/3659/spinnercat.Limit_.01.jar&lt;br /&gt;
spinnercat.Kitten 1.6,http://www.robocoderepository.com/BotFiles/3819/spinnercat.Kitten_1.6.jar&lt;br /&gt;
spinnercat.haiku.Refrigerator 1.1,http://www.robocoderepository.com/BotFiles/3688/spinnercat.haiku.Refrigerator_1.1.jar&lt;br /&gt;
spinnercat.mega.Tardis 1.2,http://www.robocoderepository.com/BotFiles/3692/spinnercat.mega.Tardis_1.2.jar&lt;br /&gt;
spinnercat.Robovirus 2.718,http://www.robocoderepository.com/BotFiles/3657/spinnercat.Robovirus_2.718.jar&lt;br /&gt;
sqTank.waveSurfing.LionWWSVMvoid 0.01,http://www.robocoderepository.com/BotFiles/3436/sqTank.waveSurfing.LionWWSVMvoid_0.01.jar&lt;br /&gt;
starpkg.StarViewerZ 1.26,http://www.robocoderepository.com/BotFiles/1931/starpkg.StarViewerZ_1.26.jar&lt;br /&gt;
staticline.Whiskey 0.5.2,http://www.robocoderepository.com/BotFiles/3939/staticline.Whiskey_0.5.2.jar&lt;br /&gt;
stefw.Tigger 0.0.23,http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar&lt;br /&gt;
stelo.Chord 1.0,http://darkcanuck.net/rumble/robots/stelo.Chord_1.0.jar&lt;br /&gt;
stelo.FretNano 1.1,http://darkcanuck.net/rumble/robots/stelo.FretNano_1.1.jar&lt;br /&gt;
stelo.Lifestealer 1.0,http://darkcanuck.net/rumble/robots/stelo.Lifestealer_1.0.jar&lt;br /&gt;
stelo.MatchupMini 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupMini_1.1.jar&lt;br /&gt;
stelo.MatchupMicro 1.2,http://darkcanuck.net/rumble/robots/stelo.MatchupMicro_1.2.jar&lt;br /&gt;
stelo.MatchupAGF 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupAGF_1.1.jar&lt;br /&gt;
stelo.MatchupWS 1.2c,http://darkcanuck.net/rumble/robots/stelo.MatchupWS_1.2c.jar&lt;br /&gt;
stelo.Mirror 1.1,http://www.robocoderepository.com/BotFiles/3034/stelo.Mirror_1.1.jar&lt;br /&gt;
stelo.MirrorMicro 1.1,http://darkcanuck.net/rumble/robots/stelo.MirrorMicro_1.1.jar&lt;br /&gt;
stelo.MirrorNano 1.4,http://darkcanuck.net/rumble/robots/stelo.MirrorNano_1.4.jar&lt;br /&gt;
stelo.MoojukNano 1.2,http://darkcanuck.net/rumble/robots/stelo.MoojukNano_1.2.jar&lt;br /&gt;
stelo.PastFuture 2.1.9,http://www.robocoderepository.com/BotFiles/3910/stelo.PastFuture_2.1.9.jar&lt;br /&gt;
stelo.PatternRobot 1.0,http://www.robocoderepository.com/BotFiles/2995/stelo.PatternRobot_1.0.jar&lt;br /&gt;
stelo.PianistNano 1.3,http://darkcanuck.net/rumble/robots/stelo.PianistNano_1.3.jar&lt;br /&gt;
stelo.RamTrackSurfer 1.2,http://darkcanuck.net/rumble/robots/stelo.RamTrackSurfer_1.2.jar&lt;br /&gt;
stelo.Randomness 1.1,http://www.robocoderepository.com/BotFiles/3021/stelo.Randomness_1.1.jar&lt;br /&gt;
stelo.Spread 0.2,http://www.robocoderepository.com/BotFiles/3922/stelo.Spread_0.2.jar&lt;br /&gt;
stelo.SteloTestNano 1.0,http://darkcanuck.net/rumble/robots/stelo.SteloTestNano_1.0.jar&lt;br /&gt;
stelo.UnfoolableNano 1.0,http://darkcanuck.net/rumble/robots/stelo.UnfoolableNano_1.0.jar&lt;br /&gt;
stelo.UntouchableNano 1.4,http://darkcanuck.net/rumble/robots/stelo.UntouchableNano_1.4.jar&lt;br /&gt;
step.nanoPri 1.0,http://www.robocoderepository.com/BotFiles/2996/step.nanoPri_1.0.jar&lt;br /&gt;
step.NanoBidu 1.0,http://www.robocoderepository.com/BotFiles/3014/step.NanoBidu_1.0.jar&lt;br /&gt;
stf.PanzerGeneral 0.1,http://www.robocoderepository.com/BotFiles/2233/stf.PanzerGeneral_0.1.jar&lt;br /&gt;
stordy.StordyBot 1.0,http://sites.google.com/site/stordyrobo/Home/stordy.StordyBot_1.0.jar&lt;br /&gt;
strider.Festis 1.2.1,http://www.robocoderepository.com/BotFiles/2355/strider.Festis_1.2.1.jar&lt;br /&gt;
strider.Mer 1.1.0,http://www.robocoderepository.com/BotFiles/2360/strider.Mer_1.1.0.jar&lt;br /&gt;
stuff.Vlad 0.1,http://www.robocoderepository.com/BotFiles/3701/stuff.Vlad_0.1.jar&lt;br /&gt;
sul.NanoR2 1.32,http://www.robocoderepository.com/BotFiles/3348/sul.NanoR2_1.32.jar&lt;br /&gt;
sul.Pinkbot 1.1,http://www.robocoderepository.com/BotFiles/3346/sul.Pinkbot_1.1.jar&lt;br /&gt;
sul.Bicephal 1.2,http://www.robocoderepository.com/BotFiles/3343/sul.Bicephal_1.2.jar&lt;br /&gt;
sul.BlueBot 1.0,http://www.robocoderepository.com/BotFiles/3347/sul.BlueBot_1.0.jar&lt;br /&gt;
SuperSample.SuperCrazy 1.0,http://www.csdgn.org/files/bots/SuperSample.SuperCrazy_1.0.jar&lt;br /&gt;
syl.Centipede 0.5,http://www.robocoderepository.com/BotFiles/1254/syl.Centipede_0.5.jar&lt;br /&gt;
synapse.Geomancy 15,http://sites.google.com/site/synapsebots/home/synapse.Geomancy_15.jar?attredirects=0&lt;br /&gt;
synapse.rsim.GeomancyBS 0.11,http://robocoderepository.com/BotFiles/3758/synapse.rsim.GeomancyBS_0.11.jar&lt;br /&gt;
synnalagma.NeuralPremier 0.51,http://www.robocoderepository.com/BotFiles/1557/synnalagma.NeuralPremier_0.51.jar&lt;br /&gt;
synnalagma.test.MiniNeural 1.1,http://www.robocoderepository.com/BotFiles/1754/synnalagma.test.MiniNeural_1.1.jar&lt;br /&gt;
tad.Dalek98 0.98,http://darkcanuck.net/rumble/robots/tad.Dalek98_0.98.jar&lt;br /&gt;
takeBot.SpinSpiral 1.2,http://www.robocoderepository.com/BotFiles/312/takeBot.SpinSpiral_1.2.jar&lt;br /&gt;
takeBot.SpiralCrash 1.0,http://www.robocoderepository.com/BotFiles/1013/takeBot.SpiralCrash_1.0.jar&lt;br /&gt;
takeBot.WeavingWiggle 1.1,http://www.robocoderepository.com/BotFiles/1012/takeBot.WeavingWiggle_1.1.jar&lt;br /&gt;
tango.Recrimpo 2.51,http://www.robocoderepository.com/BotFiles/2015/tango.Recrimpo_2.51.jar&lt;br /&gt;
taqho.taqbot 1.0,http://www.robocoderepository.com/BotFiles/1316/taqho.taqbot_1.0.jar&lt;br /&gt;
tcf.Drifter 29,http://www.7sun.com/robocode/robots/tcf.Drifter_29.jar&lt;br /&gt;
tcf.Repat3 2,http://www.robocoderepository.com/BotFiles/3328/tcf.Repat3_2.jar&lt;br /&gt;
techdude.kombat.FlamingKombat 1.5,http://www.robocoderepository.com/BotFiles/2810/techdude.kombat.FlamingKombat_1.5.jar&lt;br /&gt;
techdude.Class2C.Class2C 0.1,http://www.robocoderepository.com/BotFiles/3078/techdude.Class2C.Class2C_0.1.jar&lt;br /&gt;
test.Podgy 4.0,http://www.robocoderepository.com/BotFiles/3214/test.Podgy_4.0.jar&lt;br /&gt;
test.Fuzzer 1.0.1,http://www.robocoderepository.com/BotFiles/3345/test.Fuzzer_1.0.1.jar&lt;br /&gt;
testantiswapgun.AntiSwap 1.0,http://www.robocode.ilbello.com/asd.AntiSwap_1.0.jar&lt;br /&gt;
throxbot.ThroxBot 0.1,http://www.robocoderepository.com/BotFiles/2548/throxbot.ThroxBot_0.1.jar&lt;br /&gt;
tide.pear.Pear 0.62.1,http://www.robocoderepository.com/BotFiles/2393/tide.pear.Pear_0.62.1.jar&lt;br /&gt;
timmit.micro.TimXJ 0.22,http://www.robocoderepository.com/BotFiles/1683/timmit.micro.TimXJ_0.22.jar&lt;br /&gt;
timmit.mini.TimVA 0.43,http://www.robocoderepository.com/BotFiles/1681/timmit.mini.TimVA_0.43.jar&lt;br /&gt;
timmit.nano.TimCat 0.13,http://www.robocoderepository.com/BotFiles/1600/timmit.nano.TimCat_0.13.jar&lt;br /&gt;
timmit.nano.TimDog 0.33,http://www.robocoderepository.com/BotFiles/1602/timmit.nano.TimDog_0.33.jar&lt;br /&gt;
timmit.TimmiT 0.22,http://www.robocoderepository.com/BotFiles/1468/timmit.TimmiT_0.22.jar&lt;br /&gt;
tjk.Newton 0.7,http://keenehs.homeip.net:90/rumble/robots/tjk.Newton_0.7.jar&lt;br /&gt;
tlp.ThreeLeggedPig 1,http://pages.prodigy.net/franz1/house/tlp.ThreeLeggedPig_1.jar&lt;br /&gt;
tm.Yuugao 1.0,http://www.robocoderepository.com/BotFiles/1056/tm.Yuugao_1.0.jar&lt;br /&gt;
tobe.calypso.Calypso 4.1,http://www.robocoderepository.com/BotFiles/784/tobe.calypso.Calypso_4.1.jar&lt;br /&gt;
tobe.Fusion 1.0,http://www.robocoderepository.com/BotFiles/649/tobe.Fusion_1.0.jar&lt;br /&gt;
tobe.mini.Charon 0.9,http://www.robocoderepository.com/BotFiles/836/tobe.mini.Charon_0.9.jar&lt;br /&gt;
tobe.Relativity 3.9,http://www.robocoderepository.com/BotFiles/360/tobe.Relativity_3.9.jar&lt;br /&gt;
tobe.Saturn lambda,http://www.robocoderepository.com/BotFiles/685/tobe.Saturn_lambda.jar&lt;br /&gt;
tornyil.bottomup.BottomUp 1.05,http://www.alpha-consulting.hu/robo/tornyil.bottomup.BottomUp_1.05.jar&lt;br /&gt;
tornyil.Lajcsi2.Lajcsi2sm 1.0,http://www.alpha-consulting.hu/robo/tornyil.Lajcsi2.Lajcsi2sm_1.0.jar&lt;br /&gt;
toz.Gnome 1.1,http://darkcanuck.net/rumble/robots/toz.Gnome_1.1.jar&lt;br /&gt;
trab.Crusader 0.1.7,http://www.stud.ntnu.no/~grashei/bots/trab.Crusader_0.1.7.jar&lt;br /&gt;
trab.nano.AinippeNano 1.3,http://www.stud.ntnu.no/~grashei/bots/trab.nano.AinippeNano_1.3.jar&lt;br /&gt;
tw.Exterminator 1.0,http://www.robocoderepository.com/BotFiles/3607/tw.Exterminator_1.0.jar&lt;br /&gt;
tzu.TheArtOfWar 1.2,http://darkcanuck.net/rumble/robots/tzu.TheArtOfWar_1.2.jar&lt;br /&gt;
uccc.Dorito 1.12,http://www.devfluid.com/csc_w/images/e/e9/Uccc.Dorito_1.12.jar&lt;br /&gt;
uccc.MilkyWay 1.01,http://www.devfluid.com/csc_w/images/a/a6/Uccc.MilkyWay_1.01.jar&lt;br /&gt;
uccc.RingDing 1.12,http://www.devfluid.com/csc_w/images/5/5f/Uccc.RingDing_1.12.jar&lt;br /&gt;
uccc.Scrapple 1.0,http://www.devfluid.com/csc_w/images/7/7a/Uccc.Scrapple_1.0.jar&lt;br /&gt;
urdos.URDOS 1.3,http://darkcanuck.net/rumble/robots/urdos.URDOS_1.3.jar&lt;br /&gt;
usa.nano.Nemo 2.0,http://www.robocoderepository.com/BotFiles/2045/usa.nano.Nemo_2.0.jar&lt;br /&gt;
vic.Locke 0.7.5.5,http://www.robocoderepository.com/BotFiles/2115/vic.Locke_0.7.5.5.jar&lt;br /&gt;
vft.Valkyrie 1.0,http://www.robocoderepository.com/BotFiles/3009/vft.Valkyrie_1.0.jar&lt;br /&gt;
vft.Hrist 1.0,http://darkcanuck.net/rumble/robots/vft.Hrist_1.0.jar&lt;br /&gt;
vjik.UnViolation 1.1,http://www.robocoderepository.com/BotFiles/3886/vjik.UnViolation_1.1.jar&lt;br /&gt;
voidious.Diamond 1.5.22,http://www.dijitari.com/void/robocode/voidious.Diamond_1.5.22.jar&lt;br /&gt;
voidious.Dookious 1.573c,http://www.dijitari.com/void/robocode/voidious.Dookious_1.573c.jar&lt;br /&gt;
voidious.micro.Jen 1.11,http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar&lt;br /&gt;
voidious.mini.Komarious 1.88,http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar&lt;br /&gt;
vuen.Fractal 0.55,http://www.robocoderepository.com/BotFiles/1579/vuen.Fractal_0.55.jar&lt;br /&gt;
wcsv.Engineer.Engineer 0.5.4,http://darkcanuck.net/rumble/robots/wcsv.Engineer.Engineer_0.5.4.jar&lt;br /&gt;
wcsv.PowerHouse.PowerHouse 1.7e3,http://darkcanuck.net/rumble/robots/wcsv.PowerHouse.PowerHouse_1.7e3.jar&lt;br /&gt;
wcsv.mega.PowerHouse2 0.2,http://darkcanuck.net/rumble/robots/wcsv.mega.PowerHouse2_0.2.jar&lt;br /&gt;
wcsv.Stampede 1.3.3,http://www.robocoderepository.com/BotFiles/2527/wcsv.Stampede_1.3.3.jar&lt;br /&gt;
wcsv.Stampede2.Stampede2 1.1.0,http://www.robocoderepository.com/BotFiles/2714/wcsv.Stampede2.Stampede2_1.1.0.jar&lt;br /&gt;
whind.Constitution 0.7.1,http://www.robocoderepository.com/BotFiles/2812/whind.Constitution_0.7.1.jar&lt;br /&gt;
whind.Strength 0.6.4,http://whindgames.50webs.com/otherstuff/whind.Strength_0.6.4.jar&lt;br /&gt;
whind.StrengthBee 0.6.4,http://whindgames.50webs.com/otherstuff/whind.StrengthBee_0.6.4.jar&lt;br /&gt;
whind.Wisdom 0.5.1,http://www.robocoderepository.com/BotFiles/2742/whind.Wisdom_0.5.1.jar&lt;br /&gt;
wiki.BasicGFSurfer 1.02,http://www.dijitari.com/void/robocode/wiki.BasicGFSurfer_1.02.jar&lt;br /&gt;
wiki.mako.MakoHT 1.2.2.1,http://www.robocoderepository.com/BotFiles/1374/wiki.mako.MakoHT_1.2.2.1.jar&lt;br /&gt;
wiki.mini.BlackDestroyer 0.9.0,http://www.robocoderepository.com/BotFiles/1927/wiki.mini.BlackDestroyer_0.9.0.jar&lt;br /&gt;
wiki.mini.GouldingiHT 1.0,http://www.robocoderepository.com/BotFiles/1383/wiki.mini.GouldingiHT_1.0.jar&lt;br /&gt;
wiki.mini.Griffon 0.1,http://www.robocoderepository.com/BotFiles/1774/wiki.mini.Griffon_0.1.jar&lt;br /&gt;
wiki.mini.Sedan 1.0,http://www.robocoderepository.com/BotFiles/1676/wiki.mini.Sedan_1.0.jar&lt;br /&gt;
wiki.nano.DevilFISH 1.0,http://www.robocoderepository.com/BotFiles/2235/wiki.nano.DevilFISH_1.0.jar&lt;br /&gt;
wiki.nano.RaikoNano 1.1,http://www.robocoderepository.com/BotFiles/2163/wiki.nano.RaikoNano_1.1.jar&lt;br /&gt;
wiki.WaveRammer 1.0,http://www.robocoderepository.com/BotFiles/3505/wiki.WaveRammer_1.0.jar&lt;br /&gt;
wiki.Wolverine 2.1,http://darkcanuck.net/rumble/robots/wiki.Wolverine_2.1.jar&lt;br /&gt;
wilson.Chameleon 0.91,http://www.robocoderepository.com/BotFiles/1608/wilson.Chameleon_0.91.jar&lt;br /&gt;
winamp32.micro.MicroMacro 1.0,http://www.robocoderepository.com/BotFiles/2891/winamp32.micro.MicroMacro_1.0.jar&lt;br /&gt;
wit.Chuliath 1.0,http://www.robocoderepository.com/BotFiles/2306/wit.Chuliath_1.0.jar&lt;br /&gt;
wit.Deep7 2.0,http://www.robocoderepository.com/BotFiles/2313/wit.Deep7_2.0.jar&lt;br /&gt;
xiongan.Xiongan 1.1,http://www.robocoderepository.com/BotFiles/3565/xiongan.Xiongan_1.1.jar&lt;br /&gt;
yarghard.Y101 1.0,http://sliwa.ws/RoboCode/yarghard.Y101_1.0.jar&lt;br /&gt;
yk.JahMicro 1.0,http://www.robocoderepository.com/BotFiles/3033/yk.JahMicro_1.0.jar&lt;br /&gt;
yk.JahRoslav 1.1,http://www.robocoderepository.com/BotFiles/3032/yk.JahRoslav_1.1.jar&lt;br /&gt;
zen.Lindada 0.2,http://www.robocoderepository.com/BotFiles/1679/zen.Lindada_0.2.jar&lt;br /&gt;
zeze2.OperatorZeze 1.05,http://www.robocoderepository.com/BotFiles/3330/zeze2.OperatorZeze_1.05.jar&lt;br /&gt;
zch.David 0.21,http://www.robocoderepository.com/BotFiles/3575/zch.David_0.21.jar&lt;br /&gt;
zch.Hirkan 0.11,http://www.robocoderepository.com/BotFiles/1288/zch.Hirkan_0.11.jar&lt;br /&gt;
zh.UnderDog 0.0.2,http://www.robocoderepository.com/BotFiles/3053/zh.UnderDog_0.0.2.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 3.0,http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_3.0.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 3.4.0,http://sites.google.com/site/zyxsite/robocode/zyx.mega.YersiniaPestis_3.4.0.jar&lt;br /&gt;
zyx.micro.Ant 1.1,http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar&lt;br /&gt;
zyx.nano.Ant 1.1,http://www.robocoderepository.com/BotFiles/3493/zyx.nano.Ant_1.1.jar&lt;br /&gt;
zyx.nano.EscherichiaColi 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.EscherichiaColi_1.0.jar&lt;br /&gt;
zyx.nano.RedBull 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.RedBull_1.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''''No chatting on this page. Use the /ParticipantsChat page for that.'''''&lt;br /&gt;
&lt;br /&gt;
'''''Removed because the jarcontent/filename is not correct'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''cberendt.Bot1 0.160''&amp;lt;br&amp;gt;&lt;br /&gt;
''dmsr.MiniR101 0.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''henriquevilela.TieFighter 0.1,3224''&amp;lt;br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_7980_gen7 1.0,3552''br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_13029_gen7 1.0,3553''&amp;lt;br&amp;gt;&lt;br /&gt;
''techdude.Carruthers 1.2.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''uccc.Orbiter 1.0''&amp;lt;br&amp;gt;&lt;br /&gt;
''WhoAmI.WhoAmI 1.00''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Removed until file corruption is resolved:'''''&lt;br /&gt;
&lt;br /&gt;
''cas.CelsoKiller 1.0,3465''&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to almost always giving '0' scores:'''''&lt;br /&gt;
&lt;br /&gt;
''com.syncleus.robocode.Dreadnaught 0.1,3426''&amp;lt;br&amp;gt;&lt;br /&gt;
''lazarecki.PinkerStinker 0.1,http://www.robocoderepository.com/BotFiles/3824/lazarecki.PinkerStinker_0.1.jar''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to WontFix issues in Robocode 1.7+:'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Hviela: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2953268&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2953268]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': hvilela.HVilela 0.9.3,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.3.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Yoda: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2952543&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2952543]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': rc.yoda.Yoda 1.0.6c,http://www.robocoderepository.com/BotFiles/3260/rc.yoda.Yoda_1.0.6c.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* SniperFrog: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2928691&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2928691]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': simonton.mega.SniperFrog 1.0,http://upload.frozenonline.com/view/simonton/simonton.mega.SniperFrog_1.0.jar''&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=17598</id>
		<title>RoboRumble/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=17598"/>
		<updated>2010-10-15T06:50:20Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Added YersiniaPestis 3.4.0&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:RoboRumble/Navigation}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just add your bot name ('''as appears in the Robocode selector after packaging''', so including versionnumber) and the RobocodeRepository id number separated by &amp;quot;,&amp;quot; (there must be no space after the comma).&amp;lt;br&amp;gt; &lt;br /&gt;
Please, make sure your bot is not in the list before adding it, and delete the old version if you are adding a new one.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The list is in '''alphabetical''' order. Add your bot in the right slot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ab.DengerousRoBatra 1.3,http://www.robocoderepository.com/BotFiles/3664/ab.DengerousRoBatra_1.3.jar&lt;br /&gt;
abc.Shadow 3.83c,http://robocode.aclsi.pt/abc.Shadow_3.83c.jar&lt;br /&gt;
abc.tron3.Tron 3.11,http://www.robocoderepository.com/BotFiles/2205/abc.tron3.Tron_3.11.jar&lt;br /&gt;
abc.Tron 2.02,http://www.robocoderepository.com/BotFiles/241/abc.Tron_2.02.jar&lt;br /&gt;
abud.ThirdRobo 1.0,http://www.robocoderepository.com/BotFiles/2479/abud.ThirdRobo_1.0.jar&lt;br /&gt;
ad.last.Bottom 1.0,http://www.robocoderepository.com/BotFiles/1876/ad.last.Bottom_1.0.jar&lt;br /&gt;
ad.Quest 0.10,http://www.robocoderepository.com/BotFiles/1846/ad.Quest_0.10.jar&lt;br /&gt;
adt.Ar1 2.1,http://www.robocoderepository.com/BotFiles/2254/adt.Ar1_2.1.jar&lt;br /&gt;
adt.Ar2 1.0,http://www.robocoderepository.com/BotFiles/2303/adt.Ar2_1.0.jar&lt;br /&gt;
ag.Gir 0.99,http://www.robocoderepository.com/BotFiles/3065/ag.Gir_0.99.jar&lt;br /&gt;
agd.Mooserwirt2 2.7,http://www.glyndavies.org/robocode/agd.Mooserwirt2.jar&lt;br /&gt;
ags.Glacier 0.2.7,http://homepages.ucalgary.ca/~agschult/robocode/ags.Glacier_0.2.7.jar&lt;br /&gt;
ags.micro.Carpet 1.1,http://homepages.ucalgary.ca/~agschult/robocode/ags.micro.Carpet_1.1.jar&lt;br /&gt;
ags.Midboss 1s,http://homepages.ucalgary.ca/~agschult/robocode/ags.Midboss_1s.jar&lt;br /&gt;
ags.polished.PolishedRuby 1,http://homepages.ucalgary.ca/~agschult/robocode/ags.polished.PolishedRuby_1.jar&lt;br /&gt;
ags.rougedc.RougeDC willow,http://homepages.ucalgary.ca/~agschult/robocode/ags.rougedc.RougeDC_willow.jar&lt;br /&gt;
ahf.Acero 1.0,http://www.robocoderepository.com/BotFiles/2151/ahf.Acero_1.0.jar&lt;br /&gt;
ahf.NanoAndrew .4,http://www.robocoderepository.com/BotFiles/2002/ahf.NanoAndrew_.4.jar&lt;br /&gt;
ahf.r2d2.R2d2 0.86,http://www.robocoderepository.com/BotFiles/2035/ahf.r2d2.R2d2_0.86.jar&lt;br /&gt;
ahr.ice.Ice 1.0,http://robocoderepository.com/BotFiles/3966/ahr.ice.Ice_1.0.jar&lt;br /&gt;
AIR.iRobot 1.0,http://www.robocoderepository.com/BotFiles/3205/AIR.iRobot_1.0.jar&lt;br /&gt;
ak.Fermat 2.0,http://www.robocoderepository.com/BotFiles/799/ak.Fermat_2.0.jar&lt;br /&gt;
alex.Diabolo5 1.1,http://darkcanuck.net/rumble/robots/alex.Diabolo5_1.1.jar&lt;br /&gt;
alk.lap.LoudAndProud 2.23,http://www.robocoderepository.com/BotFiles/3601/alk.lap.LoudAndProud_2.23.jar&lt;br /&gt;
altglass.Exterminans2oo8 alpha0328,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_alpha0328.jar&lt;br /&gt;
altglass.Exterminans2oo8 Build0411,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_Build0411.jar&lt;br /&gt;
am.Miedzix 2.0,http://www.robocoderepository.com/BotFiles/3383/am.Miedzix_2.0.jar&lt;br /&gt;
am.Miedzix 3.0,http://darkcanuck.net/rumble/robots/am.Miedzix_3.0.jar&lt;br /&gt;
amarok.Rookie 1.1,http://www.robocoderepository.com/BotFiles/422/amarok.Rookie_1.1.jar&lt;br /&gt;
amk.ChumbaMini 0.2,http://www.robocoderepository.com/BotFiles/2655/amk.ChumbaMini_0.2.jar&lt;br /&gt;
amk.ChumbaWumba 0.3,http://www.robocoderepository.com/BotFiles/2646/amk.ChumbaWumba_0.3.jar&lt;br /&gt;
amk.jointstrike.JointStrike 0.2,http://www.robocoderepository.com/BotFiles/2597/amk.jointstrike.JointStrike_0.2.jar&lt;br /&gt;
amk.ShizzleStiX.ShizzleStiX 0.6,http://www.robocoderepository.com/BotFiles/2603/amk.ShizzleStiX.ShizzleStiX_0.6.jar&lt;br /&gt;
amk.superstrike.SuperStrike 0.3,http://www.robocoderepository.com/BotFiles/2600/amk.superstrike.SuperStrike_0.3.jar&lt;br /&gt;
amk.Punbot.Punbot 0.01,http://www.robocoderepository.com/BotFiles/2604/amk.Punbot.Punbot_0.01.jar&lt;br /&gt;
ao.T100 0.9,http://www.robocoderepository.com/BotFiles/3385/ao.T100_0.9.jar&lt;br /&gt;
ap.Frederick 1.1,http://darkcanuck.net/rumble/robots/ap.Frederick_1.1.jar&lt;br /&gt;
apollokidd.ApolloKidd 0.9,http://www.robocoderepository.com/BotFiles/321/apollokidd.ApolloKidd_0.9.jar&lt;br /&gt;
apv.Aspid 1.7,http://www.robocoderepository.com/BotFiles/1412/apv.Aspid_1.7.jar&lt;br /&gt;
apv.AspidReloaded 0.6,http://www.robocoderepository.com/BotFiles/1985/apv.AspidReloaded_0.6.jar&lt;br /&gt;
apv.LauLectrik 1.2,http://www.robocoderepository.com/BotFiles/1300/apv.LauLectrik_1.2.jar&lt;br /&gt;
apv.MicroAspid 1.8,http://www.robocoderepository.com/BotFiles/2519/apv.MicroAspid_1.8.jar&lt;br /&gt;
apv.NanoLauLectrik 1.0,http://www.robocoderepository.com/BotFiles/1399/apv.NanoLauLectrik_1.0.jar&lt;br /&gt;
apv.NanoLauLectrikTheCannibal 1.1,http://www.robocoderepository.com/BotFiles/2147/apv.NanoLauLectrikTheCannibal_1.1.jar&lt;br /&gt;
apv.ScruchiPu 1.0,http://www.robocoderepository.com/BotFiles/1367/apv.ScruchiPu_1.0.jar&lt;br /&gt;
apv.test.Virus 0.6.1,http://www.robocoderepository.com/BotFiles/2645/apv.test.Virus_0.6.1.jar&lt;br /&gt;
apv.TheBrainPi 0.5fix,http://darkcanuck.net/rumble/robots/apv.TheBrainPi_0.5fix.jar&lt;br /&gt;
ar.horizon.Horizon 1.2.2,http://www.robocoderepository.com/BotFiles/3286/ar.horizon.Horizon_1.2.2.jar&lt;br /&gt;
ar.QuantumChromodynamics 1.2.1,http://www.robocoderepository.com/BotFiles/3220/ar.QuantumChromodynamics_1.2.1.jar&lt;br /&gt;
ar.TheoryOfEverything 1.2.1,http://www.robocoderepository.com/BotFiles/3221/ar.TheoryOfEverything_1.2.1.jar&lt;br /&gt;
ara.Shera 0.88,http://www.robocoderepository.com/BotFiles/1050/ara.Shera_0.88.jar&lt;br /&gt;
areb.Union 1.06,http://www.robocoderepository.com/BotFiles/2893/areb.Union_1.06.jar&lt;br /&gt;
arthord.micro.Apoptygma 0.4,http://www.robocoderepository.com/BotFiles/1688/arthord.micro.Apoptygma_0.4.jar&lt;br /&gt;
arthord.micro.Muffin 0.6.1,http://www.robocoderepository.com/BotFiles/1963/arthord.micro.Muffin_0.6.1.jar&lt;br /&gt;
arthord.KostyaTszyu Beta2,http://www.robocoderepository.com/BotFiles/2322/arthord.KostyaTszyu_Beta2.jar&lt;br /&gt;
arthord.MannyPacquiao Delta2,http://scoutery.awardspace.com/arthord.MannyPacquiao_Delta2.jar&lt;br /&gt;
arthord.NanoSatan Mu,http://www.robocoderepository.com/BotFiles/2157/arthord.NanoSatan_Mu.jar&lt;br /&gt;
arthord.NanoSatanMelee Beta,http://www.robocoderepository.com/BotFiles/2088/arthord.NanoSatanMelee_Beta.jar&lt;br /&gt;
ary.micro.Weak 1.2,http://www.robocoderepository.com/BotFiles/3433/ary.micro.Weak_1.2.jar&lt;br /&gt;
ary.mini.Nimi 1.0,http://www.robocoderepository.com/BotFiles/3397/ary.mini.Nimi_1.0.jar&lt;br /&gt;
ary.nano.AceSurf 1.2,http://www.robocoderepository.com/BotFiles/3352/ary.nano.AceSurf_1.2.jar&lt;br /&gt;
ary.nano.ColorNanoP 1.1,http://www.robocoderepository.com/BotFiles/3629/ary.nano.ColorNanoP_1.1.jar&lt;br /&gt;
ary.Crisis 1.0,http://www.robocoderepository.com/BotFiles/3495/ary.Crisis_1.0.jar&lt;br /&gt;
ary.Help 1.0,http://darkcanuck.net/rumble/robots/ary.Help_1.0.jar&lt;br /&gt;
ary.FourWD 1.3d,http://darkcanuck.net/rumble/robots/ary.FourWD_1.3d.jar&lt;br /&gt;
ary.SMG 1.01,http://ary-robocode.110mb.com/ary.SMG_1.01.jar&lt;br /&gt;
as.xbots 1.0,http://darkcanuck.net/rumble/robots/as.xbots_1.0.jar&lt;br /&gt;
asd.Cthulhu 1.2,http://robocode.ilbello.com/asd.Cthulhu_1.2.jar&lt;br /&gt;
asm.Statistas 0.1,http://www.robocoderepository.com/BotFiles/1989/asm.Statistas_0.1.jar&lt;br /&gt;
awesomeness.Elite 1.0,http://robocoderepository.com/BotFiles/3597/awesomeness.Elite.jar&lt;br /&gt;
awl.Locutus 1.0,3844&lt;br /&gt;
axeBots.HataMoto 3.09,http://www.robocoderepository.com/BotFiles/1655/axeBots.HataMoto_3.09.jar&lt;br /&gt;
axeBots.Musashi 2.18,http://www.robocoderepository.com/BotFiles/1759/axeBots.Musashi_2.18.jar&lt;br /&gt;
axeBots.Okami 1.04,http://www.robocoderepository.com/BotFiles/2016/axeBots.Okami_1.04.jar&lt;br /&gt;
axeBots.SilverSurfer 2.53.33fix,http://homepages.ucalgary.ca/~agschult/robocode/axeBots.SilverSurfer_2.53.33fix.jar&lt;br /&gt;
baal.nano.N 1.42,http://webpages.charter.net/eleeleth/Robots/baal.nano.N_1.42.jar&lt;br /&gt;
banshee.mini.Nexus6 0.2.0,http://www.robocoderepository.com/BotFiles/3467/banshee.mini.Nexus6_0.2.0.jar&lt;br /&gt;
banshee.micro.Nexus6 0.3.0,http://www.robocoderepository.com/BotFiles/3473/banshee.micro.Nexus6_0.3.0.jar&lt;br /&gt;
bayen.nano.Squirrel 0.2,http://www.freewebs.com/bayen/files/bayen.nano.Squirrel_0.2.jar&lt;br /&gt;
bayen.nut.Squirrel 1.621,http://darkcanuck.net/rumble/robots/bayen.nut.Squirrel_1.621.jar&lt;br /&gt;
bayen.UbaMicro 1.4,http://www.robocoderepository.com/BotFiles/2830/bayen.UbaMicro_1.4.jar&lt;br /&gt;
bayen.UbaRamLT 1.0,http://www.robocoderepository.com/BotFiles/2868/bayen.UbaRamLT_1.0.jar&lt;br /&gt;
bbo.RamboT 0.3,http://www.robocoderepository.com/BotFiles/2210/bbo.RamboT_0.3.jar&lt;br /&gt;
bbo.TheRoof 1.4.3,http://www.robocoderepository.com/BotFiles/2179/bbo.TheRoof_1.4.3.jar&lt;br /&gt;
Bemo.Sweet30 1.6.1,http://www.stg-volleyball.de/images/Bemo.Sweet30_1.6.1.jar&lt;br /&gt;
benhorner.PureAggression 0.2.6,http://www.robocoderepository.com/BotFiles/3421/benhorner.PureAggression_0.2.6.jar&lt;br /&gt;
bh.PencilRain 0.01,http://www.robocoderepository.com/BotFiles/3670/bh.PencilRain-0.01.jar&lt;br /&gt;
bigpete.Stewie 1.0,http://www.robocoderepository.com/BotFiles/2927/bigpete.Stewie_1.0.jar&lt;br /&gt;
bing2.Melody 1.3.1,http://www.ccs.neu.edu/home/bing/robocode/bing2.Melody_1.3.1.jar&lt;br /&gt;
bjl.LoneDragon 0.5,http://www.robocoderepository.com/BotFiles/1929/bjl.LoneDragon_0.5.jar&lt;br /&gt;
bndl.LostLion 1.2,http://www.robocoderepository.com/BotFiles/1033/bndl.LostLion_1.2.jar&lt;br /&gt;
bons.NanoStalker 1.2,http://www.robocoderepository.com/BotFiles/1179/bons.NanoStalker_1.2.jar&lt;br /&gt;
bp.Kuma 1.0,http://www.robocoderepository.com/BotFiles/3238/bp.Kuma_1.0.jar&lt;br /&gt;
braaropolis.Abot 1.0,http://darkcanuck.net/rumble/robots/braaropolis.Abot_1.0.jar&lt;br /&gt;
brainfade.Fallen 0.63,http://www.robocoderepository.com/BotFiles/2250/brainfade.Fallen_0.63.jar&lt;br /&gt;
brainfade.melee.Dusk 0.44,http://www.robocoderepository.com/BotFiles/2518/brainfade.melee.Dusk_0.44.jar&lt;br /&gt;
buba.Archivist 0.1,http://www.robocoderepository.com/BotFiles/3899/buba.Archivist_0.1.jar&lt;br /&gt;
buba.Buba 0.3,http://www.robocoderepository.com/BotFiles/3896/buba.Buba_0.3.jar&lt;br /&gt;
bvh.fnr.Fenrir 0.36l,http://www.robocoderepository.com/BotFiles/1428/bvh.fnr.Fenrir_0.36l.jar&lt;br /&gt;
bvh.frg.Friga 0.112dev,http://darkcanuck.net/rumble/robots/bvh.frg.Friga_0.112dev.jar&lt;br /&gt;
bvh.fry.Freya 0.82,http://darkcanuck.net/rumble/robots/bvh.fry.Freya_0.82.jar&lt;br /&gt;
bvh.hdr.Hodur 0.4,http://www.robocoderepository.com/BotFiles/1954/bvh.hdr.Hodur_0.4.jar&lt;br /&gt;
bvh.loki.Loki 0.5,http://www.robocoderepository.com/BotFiles/885/bvh.loki.Loki_0.5.jar&lt;br /&gt;
bvh.micro.Freya 0.3,http://www.robocoderepository.com/BotFiles/2815/bvh.micro.Freya_0.3.jar&lt;br /&gt;
bvh.micro.Svadilfari 0.2,http://www.robocoderepository.com/BotFiles/1086/bvh.micro.Svadilfari_0.2.jar&lt;br /&gt;
bvh.mini.Fenrir 0.39,http://www.robocoderepository.com/BotFiles/1429/bvh.mini.Fenrir_0.39.jar&lt;br /&gt;
bvh.mini.Freya 0.55,http://darkcanuck.net/rumble/robots/bvh.mini.Freya_0.55.jar&lt;br /&gt;
bvh.mini.Mjolnir 0.3,http://www.robocoderepository.com/BotFiles/2220/bvh.mini.Mjolnir_0.3.jar&lt;br /&gt;
bvh.mini.Wodan 0.50,http://www.robocoderepository.com/BotFiles/2064/bvh.mini.Wodan_0.50.jar&lt;br /&gt;
bvh.tyr.Tyr 1.74,http://www.robocoderepository.com/BotFiles/886/bvh.tyr.Tyr_1.74.jar&lt;br /&gt;
bzdp.BoxCar 2.0,http://www.robocoderepository.com/BotFiles/3703/bzdp.BoxCar_2.0.jar&lt;br /&gt;
bzdp.Pansy 2.1,http://www.robocoderepository.com/BotFiles/3726/bzdp.Pansy_2.1.jar&lt;br /&gt;
caimano.Furia_Ceca 0.22,http://www.robocoderepository.com/BotFiles/1843/caimano.Furia_Ceca_0.22.jar&lt;br /&gt;
cbot.agile.Nibbler 0.2,http://www.robocoderepository.com/BotFiles/1537/cbot.agile.Nibbler_0.2.jar&lt;br /&gt;
cbot.cbot.CBot 0.8,http://www.robocoderepository.com/BotFiles/1375/cbot.cbot.CBot_0.8.jar&lt;br /&gt;
cf.mini.Chiva 1.0,http://www.robocoderepository.com/BotFiles/2331/cf.mini.Chiva_1.0.jar&lt;br /&gt;
cf.OldMan.OldManXP 0.1,http://www.robocoderepository.com/BotFiles/1968/cf.OldMan.OldManXP_0.1.jar&lt;br /&gt;
cf.proto.Shiva 2.2,http://www.robocoderepository.com/BotFiles/2409/cf.proto.Shiva_2.2.jar&lt;br /&gt;
cf.star.Star2 1.23,http://www.robocoderepository.com/BotFiles/2255/cf.star.Star2_1.23.jar&lt;br /&gt;
ch.rhj.rbc.RHJ1 1.0,http://www.robocoderepository.com/BotFiles/1879/ch.rhj.rbc.RHJ1_1.0.jar&lt;br /&gt;
CharlieN.Omega.Omega 1.03,http://www.robocoderepository.com/BotFiles/3503/CharlieN.Omega.Omega_1.03.jar&lt;br /&gt;
chase.c.Wristwatch 1.0,http://www.csdgn.org/files/bots/chase.c.Wristwatch_1.0.jar&lt;br /&gt;
chase.pm.Pytko 1.0,http://www.csdgn.org/files/bots/chase.pm.Pytko_1.0.jar&lt;br /&gt;
chase.s2.Genesis 1.1,http://www.csdgn.org/files/bots/chase.s2.Genesis_1.1.jar&lt;br /&gt;
chase.s2.Seraphim 2.0.6,http://www.csdgn.org/files/bots/chase.s2.Seraphim_2.0.6.jar&lt;br /&gt;
chickenfuego.UrChicken2 1.0,http://www.robocoderepository.com/BotFiles/3422/chickenfuego.UrChicken2_1.0.jar&lt;br /&gt;
cjk.Merkava 0.1.1,http://www.robocoderepository.com/BotFiles/2637/cjk.Merkava_0.1.1.jar&lt;br /&gt;
cjk.Merkava 0.2.0,http://www.robocoderepository.com/BotFiles/2640/cjk.Merkava_0.2.0.jar&lt;br /&gt;
cjk.Merkava 0.3.0,http://darkcanuck.net/rumble/robots/cjk.Merkava_0.3.0.jar&lt;br /&gt;
cjm.chalk.Chalk 2.6.Be,http://scatterbright.com/robots/cjm.chalk.Chalk_2.6.Be.jar&lt;br /&gt;
cjm.Charo 1.1,http://scatterbright.com/robots/cjm.Charo_1.1.jar&lt;br /&gt;
cjm.Che 1.2,http://www.robocoderepository.com/BotFiles/2703/cjm.Che_1.2.jar&lt;br /&gt;
cjm.Chomsky 1.5,http://scatterbright.com/robots/cjm.Chomsky_1.5.jar&lt;br /&gt;
codemojo.nano.Woot 1.0,http://darkcanuck.net/rumble/robots/codemojo.nano.Woot_1.0.jar&lt;br /&gt;
cs.ExclusionNano 1.1,http://www.csdgn.org/files/bots/cs.ExclusionNano_1.1.jar&lt;br /&gt;
csm.NthGeneration 0.04,http://www.robocoderepository.com/BotFiles/1214/csm.NthGeneration_0.04.jar&lt;br /&gt;
csp.Eagle 3.30,http://www.robocoderepository.com/BotFiles/2436/csp.Eagle_3.30.jar&lt;br /&gt;
css.Delitioner 0.11,http://darkcanuck.net/rumble/robots/css.Delitioner_0.11.jar&lt;br /&gt;
cx.BlestPain 1.41,http://www.robocoderepository.com/BotFiles/1671/cx.BlestPain_1.41.jar&lt;br /&gt;
cx.CigaretBH 1.03,http://www.robocoderepository.com/BotFiles/1414/cx.CigaretBH_1.03.jar&lt;br /&gt;
cx.Lacrimas 1.36,http://www.robocoderepository.com/BotFiles/1820/cx.Lacrimas_1.36.jar&lt;br /&gt;
cx.micro.Blur 0.2,http://www.robocoderepository.com/BotFiles/2447/cx.micro.Blur_0.2.jar&lt;br /&gt;
cx.micro.Smoke 0.96,http://www.robocoderepository.com/BotFiles/1037/cx.micro.Smoke_0.96.jar&lt;br /&gt;
cx.micro.Spark 0.6,http://www.robocoderepository.com/BotFiles/1320/cx.micro.Spark_0.6.jar&lt;br /&gt;
cx.mini.BlackSwans 0.60,http://www.robocoderepository.com/BotFiles/1158/cx.mini.BlackSwans_0.60.jar&lt;br /&gt;
cx.mini.Cigaret 1.31,http://www.robocoderepository.com/BotFiles/1152/cx.mini.Cigaret_1.31.jar&lt;br /&gt;
cx.mini.Nimrod 0.55,http://www.robocoderepository.com/BotFiles/1236/cx.mini.Nimrod_0.55.jar&lt;br /&gt;
cx.nano.Smog 2.6,http://www.robocoderepository.com/BotFiles/1036/cx.nano.Smog_2.6.jar&lt;br /&gt;
cx.Princess 1.0,http://www.robocoderepository.com/BotFiles/1343/cx.Princess_1.0.jar&lt;br /&gt;
da.NewBGank 1.4,http://www.robocoderepository.com/BotFiles/3312/da.NewBGank_1.4.jar&lt;br /&gt;
dam.MogBot 2.9,http://www.robocoderepository.com/BotFiles/555/dam.MogBot_2.9.jar&lt;br /&gt;
dans.Cinnamon 1.2,http://www.robocoderepository.com/BotFiles/1976/dans.Cinnamon_1.2.jar&lt;br /&gt;
darkcanuck.Gaff 1.50,http://darkcanuck.net/rumble/robots/darkcanuck.Gaff_1.50.jar&lt;br /&gt;
darkcanuck.Holden 1.13a,http://darkcanuck.net/rumble/robots/darkcanuck.Holden_1.13a.jar&lt;br /&gt;
darkcanuck.Pris 0.88,http://darkcanuck.net/rumble/robots/darkcanuck.Pris_0.88.jar&lt;br /&gt;
davidalves.Firebird 0.25,http://davidalves.net/robocode/robots/davidalves.Firebird_0.25.jar&lt;br /&gt;
davidalves.Phoenix 1.02,http://davidalves.net/robocode/robots/davidalves.Phoenix_1.02.jar&lt;br /&gt;
davidalves.PhoenixOS 1.1,http://davidalves.net/robocode/robots/davidalves.PhoenixOS_1.1.jar&lt;br /&gt;
davidalves.net.Duelist 0.1.6src,http://www.robocoderepository.com/BotFiles/1000/davidalves.net.Duelist_0.1.6src.jar&lt;br /&gt;
davidalves.net.DuelistMicro 1.22,http://www.robocoderepository.com/BotFiles/1144/davidalves.net.DuelistMicro_1.22.jar&lt;br /&gt;
davidalves.net.DuelistMicroMkII 1.1,http://www.robocoderepository.com/BotFiles/1281/davidalves.net.DuelistMicroMkII_1.1.jar&lt;br /&gt;
davidalves.net.DuelistMini 1.1,http://www.robocoderepository.com/BotFiles/1181/davidalves.net.DuelistMini_1.1.jar&lt;br /&gt;
davidalves.net.DuelistNano 1.0,http://www.robocoderepository.com/BotFiles/1272/davidalves.net.DuelistNano_1.0.jar&lt;br /&gt;
dcs.Eater_of_Worlds 1.1.3-A,http://www.robocoderepository.com/BotFiles/2578/dcs.Eater_of_Worlds_1.1.3-A.jar&lt;br /&gt;
dcs.Eater_of_Worlds_Mini 1.0,http://www.robocoderepository.com/BotFiles/2850/dcs.Eater_of_Worlds_Mini_1.0.jar&lt;br /&gt;
dcs.PM.Eater_of_Worlds_PM 1.2,http://www.robocoderepository.com/BotFiles/2856/dcs.PM.Eater_of_Worlds_PM_1.2.jar&lt;br /&gt;
de.erdega.robocode.Polyphemos 0.4,http://darkcanuck.net/rumble/robots/de.erdega.robocode.Polyphemos_0.4.jar&lt;br /&gt;
deewiant.Anomaly 0.2,http://www.iki.fi/~deewiant/files/deewiant.Anomaly_0.2.jar&lt;br /&gt;
deith.Czolgzilla 0.11,http://www.robocoderepository.com/BotFiles/3256/deith.Czolgzilla_0.11.jar&lt;br /&gt;
demetrix.ForceMajeure 0.75,http://ever-rage.narod.ru/robowiki/demetrix.ForceMajeure_0.75.jar&lt;br /&gt;
demetrix.nano.Neutrino 0.27,http://ever-rage.narod.ru/robowiki/demetrix.nano.Neutrino_0.27.jar&lt;br /&gt;
demetrix.nano.SledgeHammer 0.22,http://ever-rage.narod.ru/robowiki/demetrix.nano.SledgeHammer_0.22.jar&lt;br /&gt;
deo.CloudBot 1.3,http://robocoderepository.com/BotFiles/3644/deo.CloudBot_1.3.jar&lt;br /&gt;
deo.FlowerBot 1.0,http://robocoderepository.com/BotFiles/3683/deo.FlowerBot_1.0.jar&lt;br /&gt;
deo.virtual.RainbowBot 1.0,http://robocoderepository.com/BotFiles/3694/deo.virtual.RainbowBot_1.0.jar&lt;br /&gt;
dft.Calliope 5.6,http://www.robocoderepository.com/BotFiles/237/dft.Calliope_5.6.jar&lt;br /&gt;
dft.Cyanide 1.90,http://darkcanuck.net/rumble/robots/dft.Cyanide_1.90.jar&lt;br /&gt;
dft.Cyprus 3.0,http://www.robocoderepository.com/BotFiles/377/dft.Cyprus_3.0.jar&lt;br /&gt;
dft.Freddie 1.32,http://darkcanuck.net/rumble/robots/dft.Freddie_1.32.jar&lt;br /&gt;
dft.Guppy 1.0,http://darkcanuck.net/rumble/robots/dft.Guppy_1.0.jar&lt;br /&gt;
dft.Immortal 1.40,http://darkcanuck.net/rumble/robots/dft.Immortal_1.40.jar&lt;br /&gt;
dft.Krazy 1.5,http://www.robocoderepository.com/BotFiles/2099/dft.Krazy_1.5.jar&lt;br /&gt;
dft.Virgin 1.25,http://www.robocoderepository.com/BotFiles/1447/dft.Virgin_1.25.jar&lt;br /&gt;
dggp.haiku.gpBot_0 1.1,http://www.robocoderepository.com/BotFiles/3154/dggp.haiku.gpBot_0_1.1.jar&lt;br /&gt;
dittman.BlindSquirl Retired,http://home.comcast.net/~kokyunage/robocode/ugluk/dittman.BlindSquirl_Retired.jar&lt;br /&gt;
djc.Aardvark 0.3.6,http://www.robocoderepository.com/BotFiles/652/djc.Aardvark_0.3.6.jar&lt;br /&gt;
djdjdj.NanoSkunk10 1.0,http://davidjoerg.com/robocode/djdjdj.NanoSkunk10_1.0.jar&lt;br /&gt;
dk.stable.Gorgatron 1.1,http://www.robocoderepository.com/BotFiles/2112/dk.stable.Gorgatron_1.1.jar&lt;br /&gt;
dks.MicroDanMK2 1.0,http://darkcanuck.net/rumble/robots/dks.MicroDanMK2_1.0.jar&lt;br /&gt;
DM.Capriite 3.7.2,http://www.robocoderepository.com/BotFiles/2989/DM.Capriite_3.7.2.jar&lt;br /&gt;
DM.Chicken 4.0,http://www.robocoderepository.com/BotFiles/3020/DM.Chicken_4.0.jar&lt;br /&gt;
DM.Mijit .3,http://www.robocoderepository.com/BotFiles/3043/DM.Mijit_.3.jar&lt;br /&gt;
dmp.micro.Aurora 1.41,http://www.robocoderepository.com/BotFiles/853/dmp.micro.Aurora_1.41.jar&lt;br /&gt;
dmp.nano.Eve 3.41,http://www.robocoderepository.com/BotFiles/842/dmp.nano.Eve_3.41.jar&lt;br /&gt;
donjezza.Jezza 1.0,http://www.robocoderepository.com/BotFiles/3385/donjezza.Jezza_1.0.jar&lt;br /&gt;
donjezza.Muncho 1.0,http://www.robocoderepository.com/BotFiles/3384/donjezza.Muncho_1.0.jar&lt;br /&gt;
drd.Dreadknoght 0.9,http://www.robocoderepository.com/BotFiles/3835/drd.Dreadknoght_0.9.jar&lt;br /&gt;
drm.CobraBora 1.12,http://www.robocoderepository.com/BotFiles/1146/drm.CobraBora_1.12.jar&lt;br /&gt;
drm.Magazine 0.39,http://www.robocoderepository.com/BotFiles/989/drm.Magazine_0.39.jar&lt;br /&gt;
ds.OoV4 0.3b,http://www.robocoderepository.com/BotFiles/2851/ds.OoV4_0.3b.jar&lt;br /&gt;
dsw.StaticD 1.0,http://darkcanuck.net/rumble/robots/dsw.StaticD_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3a 1.0,http://darkcanuck.net/rumble/robots/dsx724.VSAB_EP3a_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3_ATR 1.1,http://www.robocoderepository.com/BotFiles/3432/dsx724.VSAB_EP3_ATR_1.1.jar&lt;br /&gt;
dukie.Ambassador 1.0,http://www.robocoderepository.com/BotFiles/2845/dukie.Ambassador_1.0.jar&lt;br /&gt;
dummy.micro.HummingBird 2.14,http://www.robocoderepository.com/BotFiles/369/dummy.micro.HummingBird_2.14.jar&lt;br /&gt;
dummy.micro.Sparrow 2.5,http://www.robocoderepository.com/BotFiles/484/dummy.micro.Sparrow_2.5.jar&lt;br /&gt;
dummy.mini.Parakeet 2.40,http://www.robocoderepository.com/BotFiles/400/dummy.mini.Parakeet_2.40.jar&lt;br /&gt;
dvogon.GangBang 1.0,http://www.robocoderepository.com/BotFiles/3193/dvogon.GangBang_1.0.jar&lt;br /&gt;
dy.LevelOne 2.0,http://www.robocoderepository.com/BotFiles/3452/dy.LevelOne_2.0.jar&lt;br /&gt;
dz.Caedo 1.4,http://www.robocoderepository.com/BotFiles/1044/dz.Caedo_1.4.jar&lt;br /&gt;
dz.GalbaMicro 0.11,http://www.robocoderepository.com/BotFiles/2482/dz.GalbaMicro_0.11.jar&lt;br /&gt;
dz.GalbaMini 0.121,http://darkcanuck.net/rumble/robots/dz.GalbaMini_0.121.jar&lt;br /&gt;
dz.MostlyHarmlessNano 2.1,http://www.robocoderepository.com/BotFiles/2166/dz.MostlyHarmlessNano_2.1.jar&lt;br /&gt;
dz.OthoMicro 0.12,http://www.robocoderepository.com/BotFiles/2198/dz.OthoMicro_0.12.jar&lt;br /&gt;
dz.OthoMini 0.15,http://www.robocoderepository.com/BotFiles/2221/dz.OthoMini_0.15.jar&lt;br /&gt;
eat.HumblePieLite 1.0,http://www.robocoderepository.com/BotFiles/1088/eat.HumblePieLite_1.0.jar&lt;br /&gt;
ebo.Sparse 0.02,http://www.4geeks.de/files/ebo.Sparse_0.02.jar&lt;br /&gt;
ebo.Tahoe 1.1.79,http://www.4geeks.de/files/ebo.Tahoe_1.1.79.jar&lt;br /&gt;
el.Attackr 0.1,http://darkcanuck.net/rumble/robots/el.Attackr_0.1.jar&lt;br /&gt;
el.JumpShoot 0.2,http://www.robocoderepository.com/BotFiles/3360/el.JumpShoot_0.2.jar&lt;br /&gt;
el33t.EL33tGangstarr2 2.0,http://www.robocoderepository.com/BotFiles/2069/el33t.EL33tGangstarr2_2.0.jar&lt;br /&gt;
eld.Hmm 1.0,http://darkcanuck.net/rumble/robots/eld.Hmm_1.0.jar&lt;br /&gt;
element.Earth 1.1,http://www.robocoderepository.com/BotFiles/3587/element.Earth_1.1.jar&lt;br /&gt;
elloco.Flower 0.1r1,http://www.robocoderepository.com/BotFiles/3242/elloco.Flower_0.1r1.jar&lt;br /&gt;
elloco.Kabuto 0.2r,http://www.robocoderepository.com/BotFiles/3229/elloco.Kabuto_0.2r.jar&lt;br /&gt;
elvbot.ElverionBot 0.3,http://www.robocoderepository.com/BotFiles/3541/elvbot.ElverionBot_0.3.jar&lt;br /&gt;
emp.Yngwie 1.11,http://www.robocoderepository.com/BotFiles/1928/emp.Yngwie_1.11.jar&lt;br /&gt;
erdnis.Rover 0.3,http://www.free-games-fun.com/erdnis.Rover_0.3.jar&lt;br /&gt;
eskimo.micro.Echo 0.1,http://robocoderepository.com/BotFiles/3969/eskimo.micro.Echo_0.1.jar&lt;br /&gt;
et.Predator 1.8,http://www.robocoderepository.com/BotFiles/668/et.Predator_1.8.jar&lt;br /&gt;
ethdsy.Malacka 2.4,http://www.robocoderepository.com/BotFiles/1159/ethdsy.Malacka_2.4.jar&lt;br /&gt;
evd.X1 0.01,http://www.robocoderepository.com/BotFiles/3503/evd.X1_0.01.jar&lt;br /&gt;
exauge.GateKeeper 1.1.121g,http://www.robocoderepository.com/BotFiles/3928/exauge.GateKeeper_1.1.121g.jar&lt;br /&gt;
exauge.LemonDrop 1.6.130,http://www.robocoderepository.com/BotFiles/3911/exauge.LemonDrop_1.6.130.jar&lt;br /&gt;
exauge.Leopard 1.1.019,http://www.robocoderepository.com/BotFiles/3917/exauge.Leopard_1.1.019.jar&lt;br /&gt;
fala.robocode.FalaRobot 1.0,http://www.robocoderepository.com/BotFiles/3474/fala.robocode.FalaRobot_1.0.jar&lt;br /&gt;
fcr.First 1.0,http://www.robocoderepository.com/BotFiles/3362/fcr.First_1.0.jar&lt;br /&gt;
Fenix.FenixTrack 1.0,http://www.robocoderepository.com/BotFiles/1627/Fenix.FenixTrack_1.0.jar&lt;br /&gt;
florent.FloatingTadpole 1.2.6,http://www.robocoderepository.com/BotFiles/2675/florent.FloatingTadpole_1.2.6.jar&lt;br /&gt;
florent.small.LittleAngel 1.8,http://www.robocoderepository.com/BotFiles/2917/florent.small.LittleAngel_1.8.jar&lt;br /&gt;
florent.test.Toad 0.14t,http://wesley3.free.fr/florent.test.Toad_0.14t.jar&lt;br /&gt;
florent.XSeries.X2 0.17,http://wesley3.free.fr/florent.XSeries.X2_0.17.jar&lt;br /&gt;
fm.claire 1.7,http://www.robocoderepository.com/BotFiles/2251/fm.claire_1.7.jar&lt;br /&gt;
fm.mammillarias 1.3,http://www.robocoderepository.com/BotFiles/2238/fm.mammillarias_1.3.jar&lt;br /&gt;
fnc.bandit.Bandit 5.2.0,http://www.robocoderepository.com/BotFiles/2155/fnc.bandit.Bandit_5.2.0.jar&lt;br /&gt;
fnc.bandit2002.Bandit2002 4.0.2,http://www.robocoderepository.com/BotFiles/2202/fnc.bandit2002.Bandit2002_4.0.2.jar&lt;br /&gt;
frag.FragBot 1.0,http://darkcanuck.net/rumble/robots/frag.FragBot_1.0.jar&lt;br /&gt;
franzor.Lizt 1.3.1,http://pages.prodigy.net/franz1/house/franzor.Lizt_1.3.1.jar&lt;br /&gt;
fromHell.general.guinness.Guinness 0.1.2,http://www.robocoderepository.com/BotFiles/3804/FromHell.Guinness_0.1.2.jar&lt;br /&gt;
fullsail.LaxativeTeaTwo 1.0,http://www.robocoderepository.com/BotFiles/3403/fullsail.LaxativeTeaTwo_1.0.jar&lt;br /&gt;
fullsail.TimbotNoPrediction 1.0,http://darkcanuck.net/rumble/robots/fullsail.TimbotNoPrediction_1.0.jar&lt;br /&gt;
fullsail.SweetTea 1.1,http://darkcanuck.net/rumble/robots/fullsail.SweetTea_1.1.jar&lt;br /&gt;
fushi.PvP1.PvP1 2004-02-16,http://www.robocoderepository.com/BotFiles/2023/fushi.PvP1.PvP1_2004-02-16.jar&lt;br /&gt;
fw.Number1 1.0b,http://www.dijitari.com/void/robocode/fw.Number1_1.0b.jar&lt;br /&gt;
gadsky.Gadsky 1.01,http://www.robocoderepository.com/BotFiles/3595/gadsky.Gadsky_1.01.jar&lt;br /&gt;
geep.mini.GPBotA 1.0,http://www.robocoderepository.com/BotFiles/2361/geep.mini.GPBotA_1.0.jar&lt;br /&gt;
geep.mini.GPBotB 1.1,http://www.robocoderepository.com/BotFiles/2363/geep.mini.GPBotB_1.1.jar&lt;br /&gt;
germ.TheMind .2,http://www.robocoderepository.com/BotFiles/2525/germ.TheMind_.2.jar&lt;br /&gt;
gg.Squaraus 0.6,http://www.robocoderepository.com/BotFiles/1788/gg.Squaraus_0.6.jar&lt;br /&gt;
gg.Wolverine 2.0,http://darkcanuck.net/rumble/robots/gg.Wolverine_2.0.jar&lt;br /&gt;
gh.GresSuffurd 0.2.22,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GresSuffurd_0.2.22.jar&lt;br /&gt;
gh.GrubbmGrb 1.2.4,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GrubbmGrb_1.2.4.jar&lt;br /&gt;
gh.GrypRepetyf 0.13,http://www.robocoderepository.com/BotFiles/2650/gh.GrypRepetyf_0.13.jar&lt;br /&gt;
gh.micro.Grinnik 0.7,http://www.robocoderepository.com/BotFiles/3208/gh.micro.Grinnik_0.7.jar&lt;br /&gt;
gh.micro.GrubbmThree 0.9,http://www.robocoderepository.com/BotFiles/2444/gh.micro.GrubbmThree_0.9.jar&lt;br /&gt;
gh.mini.Gruwel 0.9,http://www.robocoderepository.com/BotFiles/2511/gh.mini.Gruwel_0.9.jar&lt;br /&gt;
gh.nano.Grofvuil 0.2,http://www.robocoderepository.com/BotFiles/2553/gh.nano.Grofvuil_0.2.jar&lt;br /&gt;
gimp.GimpBot 0.1,http://www.robocoderepository.com/BotFiles/2434/gimp.GimpBot_0.1.jar&lt;br /&gt;
gio.RealGioBot 1.0,http://www.robocoderepository.com/BotFiles/2521/gio.RealGioBot_1.0.jar&lt;br /&gt;
gjr.Cephalosporin 0.2,http://www.robocoderepository.com/BotFiles/2240/gjr.Cephalosporin_0.2.jar&lt;br /&gt;
gm.GaetanoA 2.15,http://www.robocoderepository.com/BotFiles/2188/gm.GaetanoA_2.15.jar&lt;br /&gt;
goblin.Bender 2.4,http://www.robocoderepository.com/BotFiles/1871/goblin.Bender_2.4.jar&lt;br /&gt;
grybgoofy.GoofyBot 0.10,http://www.robocoderepository.com/BotFiles/2196/grybgoofy.GoofyBot_0.10.jar&lt;br /&gt;
gu.MicroScoob 1.3,http://www.robocoderepository.com/BotFiles/2086/gu.MicroScoob_1.3.jar&lt;br /&gt;
hamilton.Hamilton 1.0,http://www.robocoderepository.com/BotFiles/1408/hamilton.Hamilton_1.0.jar&lt;br /&gt;
hirataatsushi.Neo 1.6,http://www.robocoderepository.com/BotFiles/1081/hirataatsushi.Neo_1.6.jar&lt;br /&gt;
hirataatsushi.Trinity 0.003,http://www.robocoderepository.com/BotFiles/1145/hirataatsushi.Trinity_0.003.jar&lt;br /&gt;
Homer.Barney 1.0,http://www.robocoderepository.com/BotFiles/1932/Homer.Barney_1.0.jar&lt;br /&gt;
homerbots.h1 1.0,http://www.robocoderepository.com/BotFiles/2999/homerbots.h1_1.0.jar&lt;br /&gt;
hp.Athena 0.1,http://www.robocoderepository.com/BotFiles/3415/hp.Athena_0.1.jar&lt;br /&gt;
hvilela.HVilela 0.9,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.jar&lt;br /&gt;
ins.MobyNano 0.8,http://www.robocoderepository.com/BotFiles/939/ins.MobyNano_0.8.jar&lt;br /&gt;
intruder.PrairieWolf 2.61,http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar&lt;br /&gt;
ivor.prophet.Prophet 0.01,http://www.ivan.php5.sk/ivor.prophet.Prophet_0.01.jar&lt;br /&gt;
jaara.LambdaBot 1.1,http://www.robocoderepository.com/BotFiles/3514/jaara.LambdaBot_1.1.jar&lt;br /&gt;
jab.avk.ManuelGallegus 0.6,http://www.freewebs.com/robocode/bots/Tests/jab.avk.ManuelGallegus_0.6.jar&lt;br /&gt;
jab.DiamondStealer 5,http://www.freewebs.com/robocode/bots/DiamondStealers/jab.DiamondStealers_5.jar&lt;br /&gt;
jab.micro.Sanguijuela 0.8,http://www.freewebs.com/robocode/bots/Sanguijuela/jab.micro.Sanguijuela_0.8.jar&lt;br /&gt;
janm.Jammy 1.0,http://www.robocoderepository.com/BotFiles/3543/janm.Jammy_1.0.jar&lt;br /&gt;
jam.micro.RaikoMicro 1.44,http://www.robocoderepository.com/BotFiles/1983/jam.micro.RaikoMicro_1.44.jar&lt;br /&gt;
jam.mini.Raiko 0.43,http://www.robocoderepository.com/BotFiles/1922/jam.mini.Raiko_0.43.jar&lt;br /&gt;
jam.RaikoMX 0.32,http://www.robocoderepository.com/BotFiles/1961/jam.RaikoMX_0.32.jar&lt;br /&gt;
japs.Serenity 1.0,http://www.robocoderepository.com/BotFiles/2217/japs.Serenity_1.0.jar&lt;br /&gt;
japs.Sjonniebot 0.9.1,http://www.robocoderepository.com/BotFiles/2203/japs.Sjonniebot_0.9.1.jar&lt;br /&gt;
jasolo.Sonda 0.55,http://www.robocoderepository.com/BotFiles/1534/jasolo.Sonda_0.55.jar&lt;br /&gt;
jaw.Mouse 0.11,http://www.robocoderepository.com/BotFiles/2472/jaw.Mouse_0.11.jar&lt;br /&gt;
jaw.KarenCain 0.11,http://www.robocoderepository.com/BotFiles/2474/jaw.KarenCain_0.11.jar&lt;br /&gt;
jaybot.adv.bots.JayBot 2.0,http://darkcanuck.net/rumble/robots/jaybot.adv.bots.JayBot_2.0.jar&lt;br /&gt;
jaybot.bots.Oddball 4.0,http://darkcanuck.net/rumble/robots/jaybot.bots.Oddball_4.0.jar&lt;br /&gt;
jbot.Rabbit2 1.1,http://darkcanuck.net/rumble/robots/jbot.Rabbit2_1.1.jar&lt;br /&gt;
jcs.AutoBot 4.2.1,http://www.robocoderepository.com/BotFiles/2616/jcs.AutoBot_4.2.1.jar&lt;br /&gt;
jcs.Decepticon 2.5.3,http://www.robocoderepository.com/BotFiles/2620/jcs.Decepticon_2.5.3.jar&lt;br /&gt;
jcs.Megatron 1.2,http://www.robocoderepository.com/BotFiles/2632/jcs.Megatron_1.2.jar&lt;br /&gt;
jcs.Seth 1.8,http://darkcanuck.net/rumble/robots/jcs.Seth_1.8.jar&lt;br /&gt;
jcw.ArcherOne 1.0,http://darkcanuck.net/rumble/robots/jcw.ArcherOne_1.0.jar&lt;br /&gt;
jekl.DarkHallow .90.9,http://www.robocoderepository.com/BotFiles/2296/jekl.DarkHallow_.90.9.jar&lt;br /&gt;
jekl.Jekyl .70,http://www.robocoderepository.com/BotFiles/1837/jekl.Jekyl_.70.jar&lt;br /&gt;
jekl.mini.BlackPearl .91,http://www.robocoderepository.com/BotFiles/1875/jekl.mini.BlackPearl_.91.jar&lt;br /&gt;
jep.nano.Hawkwing 0.4.1,http://www.robocoderepository.com/BotFiles/1561/jep.nano.Hawkwing_0.4.1.jar&lt;br /&gt;
jep.nano.Hotspur 0.1,http://www.robocoderepository.com/BotFiles/1877/jep.nano.Hotspur_0.1.jar&lt;br /&gt;
jep.Terrible 0.4.1,http://www.robocoderepository.com/BotFiles/1536/jep.Terrible_0.4.1.jar&lt;br /&gt;
jgap.JGAP12584 1.0,http://www.robocoderepository.com/BotFiles/3383/jgap.JGAP12584_1.0.jar&lt;br /&gt;
jgap.JGAP130166 1.0,http://www.robocoderepository.com/BotFiles/3371/jgap.JGAP130166_1.0.jar&lt;br /&gt;
jgap.JGAP23423 1.0,http://www.robocoderepository.com/BotFiles/3378/jgap.JGAP23423_1.0.jar&lt;br /&gt;
jgap.JGAP6139 1.0,http://www.robocoderepository.com/BotFiles/3372/jgap.JGAP6139_1.0.jar&lt;br /&gt;
jgap.JGAP7247_2 1.0,http://www.robocoderepository.com/BotFiles/3382/jgap.JGAP7247_2_1.0.jar&lt;br /&gt;
jgap.JGAP7958 1.0,http://www.robocoderepository.com/BotFiles/3373/jgap.JGAP7958_1.0.jar&lt;br /&gt;
jje.BagPuss 1.2,http://darkcanuck.net/rumble/robots/jje.BagPuss_1.2.jar&lt;br /&gt;
jk.mega.DrussGT 1.8.16,http://www.minifly.rchomepage.com/robocode/jk.mega.DrussGT_1.8.16.jar&lt;br /&gt;
jk.micro.Toorkild 0.2.4b,http://www.minifly.rchomepage.com/robocode/jk.micro.Toorkild_0.2.4b.jar&lt;br /&gt;
jk.mini.CunobelinDC 0.4CT,http://www.minifly.rchomepage.com/robocode/jk.mini.CunobelinDC_0.4CT.jar&lt;br /&gt;
jk.precise.Wintermute 0.7,http://www.minifly.rchomepage.com/robocode/jk.precise.Wintermute_0.7.jar&lt;br /&gt;
jmcd.BeoWulf 2.8,http://www.robocoderepository.com/BotFiles/1377/jmcd.BeoWulf_2.8.jar&lt;br /&gt;
joe.ADinosaur 1.0,http://www.robocoderepository.com/BotFiles/2822/joe.ADinosaur_1.0.jar&lt;br /&gt;
jp.Perpy 16.0,http://www.robocoderepository.com/BotFiles/3001/jp.Perpy_16.0.jar&lt;br /&gt;
jp.SineWall 1.0,http://www.robocoderepository.com/BotFiles/2968/jp.SineWall_1.0.jar&lt;br /&gt;
jrm.Test0 1.0,http://www.robocoderepository.com/BotFiles/3636/jrm.Test0_1.0.jar&lt;br /&gt;
js.PinBall 1.6,http://www.robocoderepository.com/BotFiles/684/js.PinBall_1.6.jar&lt;br /&gt;
jsal.Jsalbot 1.0,http://jeremybubs.googlepages.com/jsal.Jsalbot_1.0.jar&lt;br /&gt;
jt.SpearmintCT Alpha,http://www.robocoderepository.com/BotFiles/2164/jt.SpearmintCT_Alpha.jar&lt;br /&gt;
justin.DemonicRage 3.20,http://sites.google.com/site/justinsitehere/file-cabinet/justin.DemonicRage_3.20.jar&lt;br /&gt;
jw.Booring 1.11,http://www.robocoderepository.com/BotFiles/1250/jw.Booring_1.11.jar&lt;br /&gt;
jwst.DAD.DarkAndDarker 1.1,http://darkcanuck.net/rumble/robots/jwst.DAD.DarkAndDarker_1.1.jar&lt;br /&gt;
kanishk.Fr0z3n 1.1,http://darkcanuck.net/rumble/robots/kanishk.Fr0z3n_1.1.jar&lt;br /&gt;
kano.gamma.KanoGamma 1.8,http://www.robocoderepository.com/BotFiles/1098/kano.gamma.KanoGamma_1.8.jar&lt;br /&gt;
kawam.kmBot9 1.0,http://www.robocoderepository.com/BotFiles/967/kawam.kmBot9_1.0.jar&lt;br /&gt;
kawigi.f.FhqwhgadsMicro 1.0,http://www.robocoderepository.com/BotFiles/1673/kawigi.f.FhqwhgadsMicro_1.0.jar&lt;br /&gt;
kawigi.micro.Shiz 1.1,http://www.robocoderepository.com/BotFiles/2007/kawigi.micro.Shiz_1.1.jar&lt;br /&gt;
kawigi.mini.Coriantumr 1.1,http://www.robocoderepository.com/BotFiles/1988/kawigi.mini.Coriantumr_1.1.jar&lt;br /&gt;
kawigi.mini.Fhqwhgads 1.1,http://www.robocoderepository.com/BotFiles/1604/kawigi.mini.Fhqwhgads_1.1.jar&lt;br /&gt;
kawigi.nano.FunkyChicken 1.1,http://www.robocoderepository.com/BotFiles/1512/kawigi.nano.FunkyChicken_1.1.jar&lt;br /&gt;
kawigi.nano.ThnikkaBot 0.9,http://www.robocoderepository.com/BotFiles/2059/kawigi.nano.ThnikkaBot_0.9.jar&lt;br /&gt;
kawigi.robot.Girl 1.2,http://www.robocoderepository.com/BotFiles/2124/kawigi.robot.Girl_1.2.jar&lt;br /&gt;
kawigi.sbf.Barracuda 1.0,http://www.robocoderepository.com/BotFiles/1535/kawigi.sbf.Barracuda_1.0.jar&lt;br /&gt;
kawigi.sbf.FloodHT 0.9.2,http://www.robocoderepository.com/BotFiles/1552/kawigi.sbf.FloodHT_0.9.2.jar&lt;br /&gt;
kawigi.sbf.FloodMicro 1.5,http://www.robocoderepository.com/BotFiles/1381/kawigi.sbf.FloodMicro_1.5.jar&lt;br /&gt;
kawigi.sbf.FloodMini 1.4,http://www.robocoderepository.com/BotFiles/1462/kawigi.sbf.FloodMini_1.4.jar&lt;br /&gt;
kawigi.sbf.FloodNano 1.2,http://www.robocoderepository.com/BotFiles/1421/kawigi.sbf.FloodNano_1.2.jar&lt;br /&gt;
kawigi.sbf.FloodSonnet 0.9,http://www.robocoderepository.com/BotFiles/1779/kawigi.sbf.FloodSonnet_0.9.jar&lt;br /&gt;
kawigi.sbf.Teancum 1.3,http://www.robocoderepository.com/BotFiles/1470/kawigi.sbf.Teancum_1.3.jar&lt;br /&gt;
kawigi.spare.SpareParts 0.7.6nosnd,http://www.robocoderepository.com/BotFiles/1335/kawigi.spare.SpareParts_0.7.6nosnd.jar&lt;br /&gt;
kc.micro.Needle 0.101,http://www.robocoderepository.com/BotFiles/3379/kc.micro.Needle_0.101.jar&lt;br /&gt;
kc.micro.Thorn 1.252,http://sites.google.com/site/kevcsite/robocode/kc.micro.Thorn_1.252.jar&lt;br /&gt;
kc.micro.WaveShark 0.31,http://www.robocoderepository.com/BotFiles/3822/kc.micro.WaveShark_0.31.jar&lt;br /&gt;
kc.mini.Vyper 0.311,http://darkcanuck.net/rumble/robots/kc.mini.Vyper_0.311.jar&lt;br /&gt;
kc.nano.Splinter 1.2,http://darkcanuck.net/rumble/robots/kc.nano.Splinter_1.2.jar&lt;br /&gt;
kc.serpent.Hydra 0.21,http://darkcanuck.net/rumble/robots/kc.serpent.Hydra_0.21.jar&lt;br /&gt;
kc.serpent.WaveSerpent 2.11,http://sites.google.com/site/kevcsite/robocode/kc.serpent.WaveSerpent_2.11.jar&lt;br /&gt;
kcn.percept.PerceptBot 2.3,http://www.robocoderepository.com/BotFiles/1075/kcn.percept.PerceptBot_2.3.jar&lt;br /&gt;
kcn.unnamed.Unnamed 1.21,http://www.robocoderepository.com/BotFiles/1969/kcn.unnamed.Unnamed_1.21.jar&lt;br /&gt;
kenran.mega.Pantheist 1.1,http://sites.google.com/site/kenranbots/robocode/kenran.mega.Pantheist_1.1.jar&lt;br /&gt;
kid.Gladiator .7.2,http://www.citlink.net/~normanp/robocode/gladiator/kid.Gladiator_.7.2.jar&lt;br /&gt;
kid.Toa .0.5,http://www.citlink.net/~normanp/robocode/toa/kid.Toa_.0.5.jar&lt;br /&gt;
KiraNL.Chupacabra 0.5,http://sandbox-project.nl/robocode/KiraNL.Chupacabra_0.5.jar&lt;br /&gt;
KiraNL.ChupaLite 0.2,http://sandbox-project.nl/robocode/KiraNL.ChupaLite_0.2.jar&lt;br /&gt;
KiraNL.SpaceKees 0.1,http://sandbox-project.nl/robocode/KiraNL.SpaceKees_0.1.jar&lt;br /&gt;
kinsen.melee.Angsaichmophobia 1.8c,http://sites.google.com/site/dcvqksyb/robocode/kinsen.melee.Angsaichmophobia_1.8c.jar&lt;br /&gt;
kinsen.nano.Hoplomachy 1.6,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Hoplomachy_1.6.jar&lt;br /&gt;
kinsen.nano.Quarrelet 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Quarrelet_1.0.jar&lt;br /&gt;
kinsen.nano.Senticous 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Senticous_1.0.jar&lt;br /&gt;
kjc.etc.Dharok 1.0,http://www.robocoderepository.com/BotFiles/3293/kjc.etc.Dharok_1.0.jar&lt;br /&gt;
kjc.MailManX 2.0,http://www.robocoderepository.com/BotFiles/3288/kjc.MailManX_2.0.jar&lt;br /&gt;
kjc.Karaykan 1.0,http://www.robocoderepository.com/BotFiles/3289/kjc.Karaykan_1.0.jar&lt;br /&gt;
klein.GottesKrieger 1.1,http://www.robocoderepository.com/BotFiles/3258/klein.GottesKrieger_1.1.jar&lt;br /&gt;
Krabb.fe4r.Fe4r 0.4,http://www.robocoderepository.com/BotFiles/2766/Krabb.fe4r.Fe4r_0.4.jar&lt;br /&gt;
Krabb.sliNk.Garm 0.9u,http://designnj.de/roboking/Krabb.sliNk.Garm_0.9u.jar&lt;br /&gt;
Krabb.krabby.Krabby 1.18b,http://darkcanuck.net/rumble/robots/Krabb.krabby.Krabby_1.18b.jar&lt;br /&gt;
Krabb.krabby2.Krabby2 1.9o,http://darkcanuck.net/rumble/robots/Krabb.krabby2.Krabby2_1.9o.jar&lt;br /&gt;
krillr.mini.JointStrike 2.0.0,http://darkcanuck.net/rumble/robots/krillr.mini.JointStrike_2.0.0.jar&lt;br /&gt;
krillr.mega.Psyche 0.0.3,http://darkcanuck.net/rumble/robots/krillr.mega.Psyche_0.0.3.jar&lt;br /&gt;
krzysiek.robbo2.Robbo 1.0.0,http://darkcanuck.net/rumble/robots/krzysiek.robbo2.Robbo_1.0.0.jar&lt;br /&gt;
kurios.DOSexe .9a,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9a.jar&lt;br /&gt;
kurios.DOSexe .9b,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9b.jar&lt;br /&gt;
kvk.HebusLeTroll 0.41,http://www.robocoderepository.com/BotFiles/2125/kvk.HebusLeTroll_0.41.jar&lt;br /&gt;
labg.Cataclysm 2.05,http://www.robocoderepository.com/BotFiles/2399/labg.Cataclysm_2.05.jar&lt;br /&gt;
lazarecki.mega.PinkerStinker 0.7,http://www.robocoderepository.com/BotFiles/3838/lazarecki.mega.PinkerStinker_0.7.jar&lt;br /&gt;
leb.ShootAnArrow 0.1,http://www.robocoderepository.com/BotFiles/2648/leb.ShootAnArrow_0.1.jar&lt;br /&gt;
lechu.Ala 0.0.4,http://www.robocoderepository.com/BotFiles/3497/lechu.Ala_0.0.4.jar&lt;br /&gt;
lechu.Lechu 1.1,http://www.robocoderepository.com/BotFiles/3480/lechu.Lechu_1.1.jar&lt;br /&gt;
lion.Kresnanano 1.0,http://www.robocoderepository.com/BotFiles/2295/lion.Kresnanano_1.0.jar&lt;br /&gt;
lk.nano.Avesnar 1.1,http://www.robocoderepository.com/BotFiles/1597/lk.nano.Avesnar_1.1.jar&lt;br /&gt;
lorneswork.Predator 1.0,http://www.robocoderepository.com/BotFiles/2609/lorneswork.Predator_1.0.jar&lt;br /&gt;
lrem.Spectre 0.4.4,http://www.robocoderepository.com/BotFiles/2253/lrem.Spectre_0.4.4.jar&lt;br /&gt;
lrem.magic.TormentedAngel Antiquitie,http://maxnet.org.pl/~lrem/lrem.magic.TormentedAngel_Antiquitie.jar&lt;br /&gt;
lrem.micro.MoggFanatic 0.2,http://www.robocoderepository.com/BotFiles/2639/lrem.micro.MoggFanatic_0.2.jar&lt;br /&gt;
lrem.micro.FalseProphet Alpha,http://www.robocoderepository.com/BotFiles/2415/lrem.micro.FalseProphet_Alpha.jar&lt;br /&gt;
lrem.quickhack.QuickHack 1.0,http://www.robocoderepository.com/BotFiles/2555/lrem.quickhack.QuickHack_1.0.jar&lt;br /&gt;
lunchie.Lunchbox 0.93,http://darkcanuck.net/rumble/robots/lunchie.Lunchbox_0.93.jar&lt;br /&gt;
lw.LuthersTest 0.1,http://www.citlink.net/~normanp/robocode/luther/lw.LuthersTest_0.1.jar&lt;br /&gt;
m3thos.Eva00 1.1,http://darkcanuck.net/rumble/robots/m3thos.Eva00_1.1.jar&lt;br /&gt;
m3thos.Eva02 0.7.1,http://darkcanuck.net/rumble/robots/m3thos.Eva02_0.7.1.jar&lt;br /&gt;
m3thos.mini.Eva01 0.5.5,http://darkcanuck.net/rumble/robots/m3thos.mini.Eva01_0.5.5.jar&lt;br /&gt;
madmath.Cow 0.1.1,http://www.robocoderepository.com/BotFiles/3476/madmath.Cow_0.1.1.jar&lt;br /&gt;
marcinek.TopGun 1.3,http://www.robocoderepository.com/BotFiles/3458/marcinek.TopGun_1.3.jar&lt;br /&gt;
marksteam.Phoenix 1.0,http://www.robocoderepository.com/BotFiles/2749/marksteam.Phoenix_1.0.jar&lt;br /&gt;
matt.advanced.Katana 1.0,http://www.robocoderepository.com/BotFiles/2498/matt.advanced.Katana_1.0.jar&lt;br /&gt;
matt.BlueMind 0.8.00,http://www.robocoderepository.com/BotFiles/2685/matt.BlueMind_0.8.00.jar&lt;br /&gt;
matt.UnderDark3 2.4.34,http://www.robocoderepository.com/BotFiles/2485/matt.UnderDark3_2.4.34.jar&lt;br /&gt;
matt.UnderDark4 0.4.00,http://www.robocoderepository.com/BotFiles/2644/matt.UnderDark4_0.4.00.jar&lt;br /&gt;
mbh.Mbh 0.1,http://www.robocoderepository.com/BotFiles/3365/mbh.Mbh_0.1.jar&lt;br /&gt;
mbro.BelajarBot 0.0.3,http://www.robocoderepository.com/BotFiles/2471/mbro.BelajarBot_0.0.3.jar&lt;br /&gt;
mbro.Detektor3 0.1.1,http://www.robocoderepository.com/BotFiles/2478/mbro.Detektor3_0.1.1.jar&lt;br /&gt;
mc.Messapia 0.1.8,http://www.robocoderepository.com/BotFiles/2223/mc.Messapia_0.1.8.jar&lt;br /&gt;
mcb.Audace 1.3,http://www.robocoderepository.com/BotFiles/3424/mcb.Audace_1.3.jar&lt;br /&gt;
md.November 1.0,http://www.robocoderepository.com/BotFiles/1004/md.November_1.0.jar&lt;br /&gt;
md.Pasta 1.1,http://www.robocoderepository.com/BotFiles/1014/md.Pasta_1.1.jar&lt;br /&gt;
md.VelociRaptor 1.3,http://www.robocoderepository.com/BotFiles/232/md.VelociRaptor_1.3.jar&lt;br /&gt;
mdouet.BotKicker 2.0,http://www.robocoderepository.com/BotFiles/1478/mdouet.BotKicker_2.0.jar&lt;br /&gt;
metal.small.MCool 1.21,http://www.robocoderepository.com/BotFiles/1698/metal.small.MCool_1.21.jar&lt;br /&gt;
metal.small.dna2.MCoolDNA 1.5,http://www.robocoderepository.com/BotFiles/2354/metal.small.dna2.MCoolDNA_1.5.jar&lt;br /&gt;
mk.Alpha 0.2.1,http://darkcanuck.net/rumble/robots/mk.Alpha_0.2.1.jar&lt;br /&gt;
mladjo.AIR 0.7,http://www.robocoderepository.com/BotFiles/3187/mladjo.AIR_0.7.jar&lt;br /&gt;
mladjo.GnuKlub 0.1,http://darkcanuck.net/rumble/robots/mladjo.GnuKlub_0.1.jar&lt;br /&gt;
mladjo.Grrrrr 0.9,http://www.robocoderepository.com/BotFiles/3189/mladjo.Grrrrr_0.9.jar&lt;br /&gt;
mladjo.iRobot 0.3,http://www.robocoderepository.com/BotFiles/3149/mladjo.iRobot_0.3.jar&lt;br /&gt;
mladjo.Startko 1.0,http://www.robocoderepository.com/BotFiles/3186/mladjo.Startko_1.0.jar&lt;br /&gt;
mld.DustBunny 3.8,http://www.robocoderepository.com/BotFiles/3650/mld.DustBunny_3.8.jar&lt;br /&gt;
mld.Infinity 2.2,http://www.robocoderepository.com/BotFiles/3591/mld.Infinity_2.2.jar&lt;br /&gt;
mld.LittleBlackBook 1.69c,http://www.robocoderepository.com/BotFiles/3873/mld.LittleBlackBook_1.69c.jar&lt;br /&gt;
mld.Moebius 2.9.3,http://www.robocoderepository.com/BotFiles/3634/mld.Moebius_2.9.3.jar&lt;br /&gt;
mld.Wisdom 1.0,http://www.robocoderepository.com/BotFiles/3640/mld.Wisdom_1.0.jar&lt;br /&gt;
mmb.Roskilde 0.5,http://www.robocoderepository.com/BotFiles/3965/mmb.Roskilde_0.5.jar&lt;br /&gt;
mme.NikeEnhanced 2.0,http://www.robocoderepository.com/BotFiles/2828/mme.NikeEnhanced_2.0.jar&lt;br /&gt;
mn.Combat 1.0,http://www.robocoderepository.com/BotFiles/2351/mn.Combat_1.0.jar&lt;br /&gt;
mn.WarMachine 1.1,http://www.robocoderepository.com/BotFiles/2574/mn.WarMachine_1.1.jar&lt;br /&gt;
mnt.AHEB 0.6a,http://www.robocoderepository.com/BotFiles/2417/mnt.AHEB_0.6a.jar&lt;br /&gt;
mnt.SurferBot 0.2.5,http://www.robocoderepository.com/BotFiles/2433/mnt.SurferBot_0.2.5.jar&lt;br /&gt;
morbid.MorbidPriest 1.0,http://www.robocoderepository.com/BotFiles/1758/morbid.MorbidPriest_1.0.jar&lt;br /&gt;
mrm.MightyMoose .2,http://darkcanuck.net/rumble/robots/mrm.MightyMoose_.2.jar&lt;br /&gt;
ms.Ares 0.19,http://www.robocoderepository.com/BotFiles/730/ms.Ares_0.19.jar&lt;br /&gt;
mue.Ascendant 1.2.27,http://mue.sonar-echo.de/robocode/mue.Ascendant_1.2.27.jar&lt;br /&gt;
mue.Hyperion 0.8,http://www.robocoderepository.com/BotFiles/2224/mue.Hyperion_0.8.jar&lt;br /&gt;
muf.CrazyKitten 0.9,http://www.robocoderepository.com/BotFiles/1946/muf.CrazyKitten_0.9.jar&lt;br /&gt;
mwj.A1176183 1.0,http://robocode.rleach.id.au/mwj.A1176183_1.0.jar&lt;br /&gt;
myl.micro.Avipes 1.00,http://www.robocoderepository.com/BotFiles/1347/myl.micro.Avipes_1.00.jar&lt;br /&gt;
myl.micro.NekoNinja 1.30,http://www.robocoderepository.com/BotFiles/944/myl.micro.NekoNinja_1.30.jar&lt;br /&gt;
myl.micro.Predator 1.50,http://www.robocoderepository.com/BotFiles/1097/myl.micro.Predator_1.50.jar&lt;br /&gt;
myl.micro.Troodon 1.10,http://www.robocoderepository.com/BotFiles/1226/myl.micro.Troodon_1.10.jar&lt;br /&gt;
myl.nano.Graviton 1.10,http://www.robocoderepository.com/BotFiles/770/myl.nano.Graviton_1.10.jar&lt;br /&gt;
myl.nano.Kakuru 1.20,http://www.robocoderepository.com/BotFiles/1330/myl.nano.Kakuru_1.20.jar&lt;br /&gt;
myl.nano.KomoriNinja 1.1,http://www.robocoderepository.com/BotFiles/978/myl.nano.KomoriNinja_1.1.jar&lt;br /&gt;
mym.EdgeStalker 1.0,http://www.robocoderepository.com/BotFiles/3956/mym.EdgeStalker_1.0.jar&lt;br /&gt;
mz.Adept 2.65,http://www.robocoderepository.com/BotFiles/2090/mz.Adept_2.65.jar&lt;br /&gt;
mz.AdeptBSB 1.03,http://www.robocoderepository.com/BotFiles/2113/mz.AdeptBSB_1.03.jar&lt;br /&gt;
mz.Movement 1.8,http://www.robocoderepository.com/BotFiles/2145/mz.Movement_1.8.jar&lt;br /&gt;
mz.NanoDeath 2.56,http://www.robocoderepository.com/BotFiles/2010/mz.NanoDeath_2.56.jar&lt;br /&gt;
mz.NanoGod 2.02,http://www.robocoderepository.com/BotFiles/1996/mz.NanoGod_2.02.jar&lt;br /&gt;
nammyung.ModelT 0.23,http://www.robocoderepository.com/BotFiles/969/nammyung.ModelT_0.23.jar&lt;br /&gt;
nanoskank.NanoSkank 1.0,http://darkcanuck.net/rumble/robots/nanoskank.NanoSkank_1.0.jar&lt;br /&gt;
nat.BlackHole 2.0gamma,http://nat.robothai.net/robots/nat.BlackHole_2.0gamma.jar&lt;br /&gt;
nat.micro.NP 1.34,http://nat.robothai.net/robots/nat.micro.NP_1.34.jar&lt;br /&gt;
nat.micro.Reepicheep 0.1a,http://nat.robothai.net/robots/nat.micro.Reepicheep_0.1a.jar&lt;br /&gt;
nat.nano.Ocnirp 1.73,http://nat.robothai.net/robots/nat.nano.Ocnirp_1.73.jar&lt;br /&gt;
nat.nano.OcnirpPM 1.0,http://nat.robothai.net/robots/nat.nano.OcnirpPM_1.0.jar&lt;br /&gt;
nat.nano.OcnirpSNG 1.0b,http://nat.robothai.net/robots/nat.nano.OcnirpSNG_1.0b.jar&lt;br /&gt;
nat.Samekh 0.4,http://nat.robothai.net/robots/nat.Samekh_0.4.jar&lt;br /&gt;
ndn.DyslexicMonkey 1.1,http://www.robocoderepository.com/BotFiles/1141/ndn.DyslexicMonkey_1.1.jar&lt;br /&gt;
NDH.GuessFactor 1.0, http://www.robocoderepository.com/BotFiles/3949/NDH.GuessFactor_1.0.jar&lt;br /&gt;
ne.Chimera 1.2,http://www.robocoderepository.com/BotFiles/3276/ne.Chimera_1.2.jar&lt;br /&gt;
nexus.One 1.0,http://darkcanuck.net/rumble/robots/nexus.One_1.0.jar&lt;br /&gt;
nexus.Prototype 1.0,http://darkcanuck.net/rumble/robots/nexus.Prototype_1.0.jar&lt;br /&gt;
nic.Nicator 2.4,http://www.robocoderepository.com/BotFiles/193/nic.Nicator_2.4.jar&lt;br /&gt;
nic.SnippetBot 1.0,http://www.robocoderepository.com/BotFiles/286/nic.SnippetBot_1.0.jar&lt;br /&gt;
nkn.mini.Jskr0 0.1,http://www.robocoderepository.com/BotFiles/3852/nkn.mini.Jskr0_0.1.jar&lt;br /&gt;
NG.LegatusLegionis 1.0,http://www.robocoderepository.com/BotFiles/3888/NG.LegatusLegionis_1.0.jar&lt;br /&gt;
NG.LegatusLegionis 1.1,http://www.robocoderepository.com/BotFiles/3889/NG.LegatusLegionis_1.1.jar&lt;br /&gt;
non.mega.NaN 0.1,http://www.robocoderepository.com/BotFiles/1960/non.mega.NaN_0.1.jar&lt;br /&gt;
non.mega.NoName 0.0,http://www.robocoderepository.com/BotFiles/1957/non.mega.NoName_0.0.jar&lt;br /&gt;
Noran.BitchingElk 0.054,http://www.robocoderepository.com/BotFiles/1855/Noran.BitchingElk_0.054.jar&lt;br /&gt;
Noran.RandomTargeting 0.02,http://www.robocoderepository.com/BotFiles/1849/Noran.RandomTargeting_0.02.jar&lt;br /&gt;
nova.Snow 1.0,http://www.robocoderepository.com/BotFiles/3623/nova.Snow_1.0.jar&lt;br /&gt;
ntc.Cannon 1.12test,http://www.robocoderepository.com/BotFiles/3815/ntc.Cannon_1.12test.jar&lt;br /&gt;
ntc.Evader 1.2,http://www.robocoderepository.com/BotFiles/3355/ntc.Evader_1.2.jar&lt;br /&gt;
ntc.Knowledge 1.1,http://www.robocoderepository.com/BotFiles/3354/ntc.Knowledge_1.1.jar&lt;br /&gt;
ntc.Lasers.Lasers 0.9,http://www.robocoderepository.com/BotFiles/3359/ntc.Lasers.Lasers_0.9.jar&lt;br /&gt;
ntc.Plains 0.9,http://www.robocoderepository.com/BotFiles/3381/ntc.Plains_0.9.jar&lt;br /&gt;
ntc.Swim 0.9,http://www.robocoderepository.com/BotFiles/3820/ntc.Swim_0.9.jar&lt;br /&gt;
ntw.Sighup 1.5,http://darkcanuck.net/rumble/robots/ntw.Sighup_1.5.jar&lt;br /&gt;
ntw.Sigsys 1.6,http://darkcanuck.net/rumble/robots/ntw.Sigsys_1.6.jar&lt;br /&gt;
nz.jdc.micro.HedgehogGF 1.3,http://www.robocoderepository.com/BotFiles/3626/nz.jdc.micro.HedgehogGF_1.3.jar&lt;br /&gt;
nz.jdc.micro.HedgehogP 1.2,http://www.robocoderepository.com/BotFiles/3622/nz.jdc.micro.HedgehogP_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophytePattern 1.0,http://www.robocoderepository.com/BotFiles/3578/nz.jdc.nano.NeophytePattern_1.0.jar&lt;br /&gt;
nz.jdc.nano.NeophytePRAL 1.2,http://www.robocoderepository.com/BotFiles/3568/nz.jdc.nano.NeophytePRAL_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophyteSRAL 1.2,http://www.robocoderepository.com/BotFiles/3567/nz.jdc.nano.NeophyteSRAL_1.2.jar&lt;br /&gt;
oa.weak.BotherBot 0.1,http://www.robocoderepository.com/BotFiles/2956/oa.weak.BotherBot_0.1.jar&lt;br /&gt;
oa.weak.FlyMk1 0.1,http://www.robocoderepository.com/BotFiles/2958/oa.weak.FlyMk1_0.1.jar&lt;br /&gt;
ola.Puffin 1.0,http://www.robocoderepository.com/BotFiles/3380/ola.Puffin_1.0.jar&lt;br /&gt;
oog.Caligula 1.0,http://www.robocoderepository.com/BotFiles/3957/oog.Caligula_1.0.jar&lt;br /&gt;
oog.melee.Capulet 0.1,http://www.robocoderepository.com/BotFiles/3765/oog.melee.Capulet_0.1.jar&lt;br /&gt;
oog.melee.CapuletDroid 1.0,http://www.robocoderepository.com/BotFiles/3829/oog.melee.CapuletDroid_1.0.jar&lt;br /&gt;
oog.melee.Mercutio 1.0,http://www.robocoderepository.com/BotFiles/3848/oog.melee.Mercutio_1.0.jar&lt;br /&gt;
oog.micro.MagicD3 0.41,http://www.robocoderepository.com/BotFiles/3801/oog.micro.MagicD3_0.41.jar&lt;br /&gt;
oog.micro.Maui 1.1,http://www.robocoderepository.com/BotFiles/3779/oog.micro.Maui_1.1.jar&lt;br /&gt;
oog.micro.SavantMicro 1.0,http://www.robocoderepository.com/BotFiles/3958/oog.micro.SavantMicro_1.0.jar&lt;br /&gt;
oog.nano.Fuatisha 1.0,http://www.robocoderepository.com/BotFiles/3720/oog.nano.Fuatisha_1.0.jar&lt;br /&gt;
oog.nano.MagicD2 2.4,http://www.robocoderepository.com/BotFiles/3749/oog.nano.MagicD2_2.4.jar&lt;br /&gt;
oog.nano.SavantVS 1.1,http://www.robocoderepository.com/BotFiles/3714/oog.nano.SavantVS_1.1.jar&lt;br /&gt;
oog.nano.SavantWS 0.1,http://www.robocoderepository.com/BotFiles/3709/oog.nano.SavantWS_0.1.jar&lt;br /&gt;
pa.Improved 1.1,http://darkcanuck.net/rumble/robots/pa.Improved_1.1.jar&lt;br /&gt;
pak.JakeTheTestingRobot .1b,http://www.robocoderepository.com/BotFiles/3373/pak.JakeTheTestingRobot_.1b.jar&lt;br /&gt;
pak.Dargon 1.0b,http://www.robocoderepository.com/BotFiles/3388/pak.Dargon_1.0b.jar&lt;br /&gt;
pak.Dargon .2c,http://www.robocoderepository.com/BotFiles/3389/pak.Dargon_.2c.jar&lt;br /&gt;
paolord.TheHulk 1.0,http://www.robocoderepository.com/BotFiles/3595/paolord.TheHulk_1.0.jar&lt;br /&gt;
patson.PatsonTestBot 1.0,http://www.robocoderepository.com/BotFiles/3324/patson.PatsonTestBot_1.0.jar&lt;br /&gt;
paulk.PaulV3 1.7,http://www.robocoderepository.com/BotFiles/3502/paulk.PaulV3_1.7.jar&lt;br /&gt;
paulk.PaulV3 1.6,http://www.robocoderepository.com/BotFiles/3497/paulk.PaulV3_1.6.jar&lt;br /&gt;
paulk.PaulV3 1.5,http://www.robocoderepository.com/BotFiles/3496/paulk.PaulV3_1.5.jar&lt;br /&gt;
paulk.PaulV3 1.3,http://www.robocoderepository.com/BotFiles/3495/paulk.PaulV3_1.3.jar&lt;br /&gt;
pb.Oscillator 1.0,http://www.robocoderepository.com/BotFiles/2070/pb.Oscillator_1.0.jar&lt;br /&gt;
pe.mini.SandboxMini 1.2,http://www.robocoderepository.com/BotFiles/917/pe.mini.SandboxMini_1.2.jar&lt;br /&gt;
pe.minimelee.SandboxMiniMelee 1.1,http://www.robocoderepository.com/BotFiles/934/pe.minimelee.SandboxMiniMelee_1.1.jar&lt;br /&gt;
pe.SandboxDT 3.02,http://www.robocoderepository.com/BotFiles/793/pe.SandboxDT_3.02.jar&lt;br /&gt;
pe.SandboxLump 1.52,http://www.robocoderepository.com/BotFiles/731/pe.SandboxLump_1.52.jar&lt;br /&gt;
pedersen.Hubris 2.4,http://home.comcast.net/~kokyunage/robocode/hubris/pedersen.Hubris_2.4.jar&lt;br /&gt;
pedersen.Ugluk 1.0,http://home.comcast.net/~kokyunage/robocode/ugluk/pedersen.Ugluk_1.0.jar&lt;br /&gt;
pez.clean.Swiffer 0.2.9,http://www.robocoderepository.com/BotFiles/1883/pez.clean.Swiffer_0.2.9.jar&lt;br /&gt;
pez.frankie.Frankie 0.9.6.1,http://www.robocoderepository.com/BotFiles/1565/pez.frankie.Frankie_0.9.6.1.jar&lt;br /&gt;
pez.gloom.GloomyDark 0.9.2,http://www.robocoderepository.com/BotFiles/1741/pez.gloom.GloomyDark_0.9.2.jar&lt;br /&gt;
pez.mako.Mako 1.5,http://www.robocoderepository.com/BotFiles/1317/pez.mako.Mako_1.5.jar&lt;br /&gt;
pez.micro.Aristocles 0.3.7,http://www.robocoderepository.com/BotFiles/1923/pez.micro.Aristocles_0.3.7.jar&lt;br /&gt;
pez.mini.ChironexFleckeri 0.5,http://www.robocoderepository.com/BotFiles/2513/pez.mini.ChironexFleckeri_0.5.jar&lt;br /&gt;
pez.mini.Gouldingi 1.5,http://www.robocoderepository.com/BotFiles/1351/pez.mini.Gouldingi_1.5.jar&lt;br /&gt;
pez.mini.Pugilist 2.4.18,http://darkcanuck.net/rumble/robots/pez.mini.Pugilist_2.4.18.jar&lt;br /&gt;
pez.mini.Tityus 0.9.1,http://www.robocoderepository.com/BotFiles/1657/pez.mini.Tityus_0.9.1.jar&lt;br /&gt;
pez.mini.VertiLeach 0.4.0,http://www.robocoderepository.com/BotFiles/1744/pez.mini.VertiLeach_0.4.0.jar&lt;br /&gt;
pez.nano.Icarus 0.3,http://www.robocoderepository.com/BotFiles/2353/pez.nano.Icarus_0.3.jar&lt;br /&gt;
pez.nano.LittleEvilBrother 0.1,http://www.robocoderepository.com/BotFiles/2056/pez.nano.LittleEvilBrother_0.1.jar&lt;br /&gt;
pez.rumble.Ali 0.4.9,http://www.robocoderepository.com/BotFiles/2416/pez.rumble.Ali_0.4.9.jar&lt;br /&gt;
pez.rumble.CassiusClay 2rho.01b,http://www.dijitari.com/void/robocode/pez.rumble.CassiusClay_2rho.01b.jar&lt;br /&gt;
pfvicm.Sobieski 7.2.3b,http://www.robocoderepository.com/BotFiles/2911/pfvicm.Sobieski_7.2.3b.jar&lt;br /&gt;
ph.micro.Pikeman 0.4.5,http://www.robocoderepository.com/BotFiles/2364/ph.micro.Pikeman_0.4.5.jar&lt;br /&gt;
ph.mini.Archer 0.6.6,http://www.robocoderepository.com/BotFiles/2326/ph.mini.Archer_0.6.6.jar&lt;br /&gt;
ph.musketeer.Musketeer 0.6,http://www.robocoderepository.com/BotFiles/2281/ph.musketeer.Musketeer_0.6.jar&lt;br /&gt;
ph.Thinker 0.2.5,http://www.robocoderepository.com/BotFiles/2336/ph.Thinker_0.2.5.jar&lt;br /&gt;
pi.Dark 10,http://darkcanuck.net/rumble/robots/pi.Dark_10.jar&lt;br /&gt;
pl.Drum 0.1,http://darkcanuck.net/rumble/robots/pl.Drum_0.1.jar&lt;br /&gt;
pl.Patton.GeneralPatton 1.54,http://darkcanuck.net/rumble/robots/pl.Patton.GeneralPatton_1.54.jar&lt;br /&gt;
pla.Memnoch 0.5,http://www.robocoderepository.com/BotFiles/2211/pla.Memnoch_0.5.jar&lt;br /&gt;
PK.Twardy 0.4.2,http://www.robocoderepository.com/BotFiles/3272/PK.Twardy_0.4.2.jar&lt;br /&gt;
pkdeken.Paladin 1.0,http://www.robocoderepository.com/BotFiles/3556/pkdeken.Paladin_1.0.jar&lt;br /&gt;
PkKillers.PkAssassin 1.0,http://www.robocoderepository.com/BotFiles/3485/PkKillers.PkAssassin_1.0.jar&lt;br /&gt;
pmc.SniperBot 1.0,http://darkcanuck.net/rumble/robots/pmc.SniperBot_1.0.jar&lt;br /&gt;
positive.Portia 1.26e,http://sites.google.com/site/robopositive/portia/positive.Portia_1.26e.jar&lt;br /&gt;
povik.nano.Smilee 0.2.1,http://www.robocoderepository.com/BotFiles/3950/povik.nano.Smilee_0.2.1.jar&lt;br /&gt;
projectx.ProjectNano 2.0,http://darkcanuck.net/rumble/robots/projectx.ProjectNano_2.0.jar&lt;br /&gt;
projectx.TestNano 1.0,http://www.robocoderepository.com/BotFiles/3444/projectx.TestNano_1.0.jar&lt;br /&gt;
pulsar.PulsarMax 0.8.9,http://www.robocoderepository.com/BotFiles/2227/pulsar.PulsarMax_0.8.9.jar&lt;br /&gt;
pulsar.PulsarNano 0.2.4,http://www.robocoderepository.com/BotFiles/2335/pulsar.PulsarNano_0.2.4.jar&lt;br /&gt;
pulsar.Nanis 0.3,http://www.robocoderepository.com/BotFiles/2560/pulsar.Nanis_0.3.jar&lt;br /&gt;
qohnil.blot.BlotBot 3.61,http://www.robocoderepository.com/BotFiles/546/qohnil.blot.BlotBot_3.61.jar&lt;br /&gt;
Queens_teamrobot.UltraRazor 1.0,http://www.robocoderepository.com/BotFiles/2108/Queens_teamrobot.UltraRazor_1.0.jar&lt;br /&gt;
quietus.Invader 0.1,http://robocode.rleach.id.au/quietus.Invader_0.1.jar&lt;br /&gt;
quietus.NarrowRadar 0.1,http://robocode.rleach.id.au/quietus.NarrowRadar_0.1.jar&lt;br /&gt;
radnor.DoctorBob 1.42,http://www.robocoderepository.com/BotFiles/2133/radnor.DoctorBob_1.42.jar&lt;br /&gt;
radnor.RamRod 1.0,http://www.robocoderepository.com/BotFiles/2085/radnor.RamRod_1.0.jar&lt;br /&gt;
rampancy.Durandal 2.2d,http://stanford.edu/~mchunlum/robocode/rampancy.Durandal_2.2d.jar&lt;br /&gt;
rampancy.micro.Epiphron 1.0,http://stanford.edu/~mchunlum/robocode/rampancy.micro.Epiphron_1.0.jar&lt;br /&gt;
rapture.Rapture 2.13,http://www.robocoderepository.com/BotFiles/15/rapture.Rapture_2.13.jar&lt;br /&gt;
ratosh.nano.Debo 1.36,http://www.robocoderepository.com/BotFiles/1702/ratosh.nano.Debo_1.36.jar&lt;br /&gt;
ratosh.Nobo 0.21,http://www.robocoderepository.com/BotFiles/1612/ratosh.Nobo_0.21.jar&lt;br /&gt;
ratosh.Wesco 1.4,http://www.robocoderepository.com/BotFiles/1914/ratosh.Wesco_1.4.jar&lt;br /&gt;
rcb.Vanessa03 0,http://www.robocoderepository.com/BotFiles/1364/rcb.Vanessa03_0.jar&lt;br /&gt;
rcp.Kuramatron 1.0,http://www.robocoderepository.com/BotFiles/3307/rcp.Kuramatron_1.0.jar&lt;br /&gt;
rdt199.Warlord 0.73,http://www.robocoderepository.com/BotFiles/1130/rdt199.Warlord_0.73.jar&lt;br /&gt;
reaper.Reaper 1.1,http://www.robocoderepository.com/BotFiles/3412/reaper.Reaper_1.1.jar&lt;br /&gt;
repositorio.NanoStep 1.0,http://darkcanuck.net/rumble/robots/repositorio.NanoStep_1.0.jar&lt;br /&gt;
rfj.Sunburn 1.1,http://www.robocoderepository.com/BotFiles/1060/rfj.Sunburn_1.1.jar&lt;br /&gt;
rijteam.SmartDodge 1.1,http://www.robocoderepository.com/BotFiles/2959/rijteam.SmartDodge_1.1.jar&lt;br /&gt;
robar.haiku.Spike 1.0,http://invitel.hu/artrog/robar.haiku.Spike_1.0.jar&lt;br /&gt;
robar.micro.Gladius 1.15,http://invitel.hu/artrog/robar.micro.Gladius_1.15.jar&lt;br /&gt;
robar.micro.Kirbyi 1.0,http://hunrobar.freeblog.hu/files/myrobots/robar.micro.Kirbyi_1.0.jar&lt;br /&gt;
robar.micro.Topaz 0.25,http://invitel.hu/artrog/robar.micro.Topaz_0.25.jar&lt;br /&gt;
robar.nano.Assertive 0.3,http://invitel.hu/artrog/robar.nano.Assertive_0.3.jar&lt;br /&gt;
robar.nano.BlackWidow 1.3,http://www.robocoderepository.com/BotFiles/3574/robar.nano.BlackWidow_1.3.jar&lt;br /&gt;
robar.nano.Breeze 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Breeze_0.3.jar&lt;br /&gt;
robar.nano.Mosquito 1.1,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Mosquito_1.1.jar&lt;br /&gt;
robar.nano.MosquitoPM 1.0,http://www.robocoderepository.com/BotFiles/3559/robar.nano.MosquitoPM_1.0.jar&lt;br /&gt;
robar.nano.Prestige 1.0,http://www.robocoderepository.com/BotFiles/3507/robar.nano.Prestige_1.0.jar&lt;br /&gt;
robar.nano.Pugio 1.49,http://www.robocoderepository.com/BotFiles/3710/robar.nano.Pugio_1.49.jar&lt;br /&gt;
robar.nano.Scytodes 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Scytodes_0.3.jar&lt;br /&gt;
robar.nano.Vespa 0.95,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Vespa_0.95.jar&lt;br /&gt;
robo.PartsBot 1.1,http://darkcanuck.net/rumble/robots/robo.PartsBot_1.1.jar&lt;br /&gt;
RobotMarco.MarcoV 0.1,http://www.robocoderepository.com/BotFiles/3941/RobotMarco.MarcoV_0.1.jar&lt;br /&gt;
rsim.micro.uCatcher 0.1,http://sites.google.com/site/rsimander/robocode/rsim.micro.uCatcher_0.1.jar&lt;br /&gt;
rsim.mini.BulletCatcher 0.4,http://www.robocoderepository.com/BotFiles/3737/rsim.mini.BulletCatcher_0.4.jar&lt;br /&gt;
rsk1.RSK1 4.0,http://www.robocoderepository.com/BotFiles/3284/rsk1.RSK1_4.0.jar&lt;br /&gt;
ruc.nano.Zealot 0.2,http://www.robocoderepository.com/BotFiles/1229/ruc.nano.Zealot_0.2.jar&lt;br /&gt;
ry.LightningBug 1.0,http://www.robocoderepository.com/BotFiles/3472/ry.LightningBug_1.0.jar&lt;br /&gt;
ry.VirtualGunExperiment 1.2.0,http://www.robocoderepository.com/BotFiles/3662/ry.VirtualGunExperiment_1.2.0.jar&lt;br /&gt;
ry.Worst 1.0,http://www.robocoderepository.com/BotFiles/3645/ry.Worst_1.0.jar&lt;br /&gt;
rz.Aleph 0.34,http://www.robocoderepository.com/BotFiles/1993/rz.Aleph_0.34.jar&lt;br /&gt;
rz.Apollon 0.23,http://www.robocoderepository.com/BotFiles/2098/rz.Apollon_0.23.jar&lt;br /&gt;
rz.Artist 0.2,http://www.robocoderepository.com/BotFiles/2156/rz.Artist_0.2.jar&lt;br /&gt;
rz.GlowBlow 2.31,http://www.robocoderepository.com/BotFiles/1354/rz.GlowBlow_2.31.jar&lt;br /&gt;
rz.GlowBlowAPM 1.0,http://www.robocoderepository.com/BotFiles/1382/rz.GlowBlowAPM_1.0.jar&lt;br /&gt;
rz.GlowBlowMelee 1.4,http://www.robocoderepository.com/BotFiles/1436/rz.GlowBlowMelee_1.4.jar&lt;br /&gt;
rz.HawkOnFire 0.1,http://www.robocoderepository.com/BotFiles/1575/rz.HawkOnFire_0.1.jar&lt;br /&gt;
rz.SmallDevil 1.502,http://www.robocoderepository.com/BotFiles/1322/rz.SmallDevil_1.502.jar&lt;br /&gt;
sam.ChipmunkDuelist 1.0,http://www.robocoderepository.com/BotFiles/3094/sam.ChipmunkDuelist_1.0.jar&lt;br /&gt;
sam.Samspin 1.0,http://www.robocoderepository.com/BotFiles/2823/sam.Samspin_1.0.jar&lt;br /&gt;
sanyi.mikrobi.Roberto 1.0,http://www.robocoderepository.com/BotFiles/3929/sanyi.mikrobi.Roberto_1.0.jar&lt;br /&gt;
sch.Simone 0.3d,http://www.robocoderepository.com/BotFiles/374/sch.Simone_0.3d.jar&lt;br /&gt;
serenity.moonlightBat 1.17,http://www.robocoderepository.com/BotFiles/2877/serenity.moonlightBat_1.17.jar&lt;br /&gt;
serenity.nonSense 1.39,http://www.robocoderepository.com/BotFiles/3586/serenity.nonSense_1.39.jar&lt;br /&gt;
serenity.serenityFire 1.29,http://www.robocoderepository.com/BotFiles/3071/serenity.serenityFire_1.29.jar&lt;br /&gt;
sgp.JollyNinja 3.53,http://www.robocoderepository.com/BotFiles/183/sgp.JollyNinja_3.53.jar&lt;br /&gt;
sgp.MadHatter 4.13,http://www.robocoderepository.com/BotFiles/156/sgp.MadHatter_4.13.jar&lt;br /&gt;
sgp.nano.FurryLeech 1.0,http://www.robocoderepository.com/BotFiles/802/sgp.nano.FurryLeech_1.0.jar&lt;br /&gt;
sgp.ShiningBeetle 1.1,http://www.robocoderepository.com/BotFiles/498/sgp.ShiningBeetle_1.1.jar&lt;br /&gt;
sgp.SleepingGoat 1.1,http://www.robocoderepository.com/BotFiles/500/sgp.SleepingGoat_1.1.jar&lt;br /&gt;
SHAM.WOW 1.4,http://darkcanuck.net/rumble/robots/SHAM.WOW_1.4.jar&lt;br /&gt;
shinh.Entangled 0.3,http://www.robocoderepository.com/BotFiles/1070/shinh.Entangled_0.3.jar&lt;br /&gt;
shrub.Silver v048,http://www.robocoderepository.com/BotFiles/449/shrub.Silver_v048.jar&lt;br /&gt;
shrub.Vapour v159,http://www.robocoderepository.com/BotFiles/2654/shrub.Vapour_v159.jar&lt;br /&gt;
shu.nitro.LENIN .T34,http://www.robocoderepository.com/BotFiles/1956/shu.nitro.LENIN_.T34.jar&lt;br /&gt;
sigterm.Sigterm 1.0,http://darkcanuck.net/rumble/robots/sigterm.Sigterm_1.0.jar&lt;br /&gt;
simonton.beta.LifelongObsession 0.5.1,http://www.robocoderepository.com/BotFiles/3195/simonton.beta.LifelongObsession_0.5.1.jar&lt;br /&gt;
simonton.GFNano_D 3.1b,http://www.robocoderepository.com/BotFiles/3114/simonton.GFNano_D_3.1b.jar&lt;br /&gt;
simonton.nano.WeekendObsession_S 1.7,http://www.robocoderepository.com/BotFiles/3117/simonton.nano.WeekendObsession_S_1.7.jar&lt;br /&gt;
simonton.micro.GFMicro 1.0,http://upload.frozenonline.com/view/simonton/simonton.micro.GFMicro_1.0.jar&lt;br /&gt;
simonton.micro.WeeklongObsession 3.4.1,http://upload.frozenonline.com/view/simonton/simonton.micro.WeeklongObsession_3.4.1.jar&lt;br /&gt;
simonton.mini.WeeksOnEnd 1.10.4,http://upload.frozenonline.com/view/simonton/simonton.mini.WeeksOnEnd_1.10.4.jar&lt;br /&gt;
skm.butterfly 1.0,http://www.robocoderepository.com/BotFiles/3868/sean1.jar&lt;br /&gt;
skm.Ryubot 1.0,http://www.robocoderepository.com/BotFiles/3594/skm.Ryubot_1.0.jar&lt;br /&gt;
skm.PateranBotlock2 1.0,http://www.robocoderepository.com/BotFiles/3591/skm.PateranBotlock2_1.0.jar&lt;br /&gt;
sL300.Mozart life,http://www.robocoderepository.com/BotFiles/1992/sL300.Mozart_life.jar&lt;br /&gt;
sm.Devil 7.3,http://www.robocoderepository.com/BotFiles/1481/sm.Devil_7.3.jar&lt;br /&gt;
sng.arco.Arco 0.0,http://www.robocoderepository.com/BotFiles/3279/sng.arco.Arco_0.0.jar&lt;br /&gt;
sos.SOS 1.0,http://www.robocoderepository.com/BotFiles/3489/sos.SOS_1.0.jar&lt;br /&gt;
spinnercat.CopyKat 1.2.3,http://www.robocoderepository.com/BotFiles/3818/spinnercat.CopyKat_1.2.3.jar&lt;br /&gt;
spinnercat.Limit .01,http://www.robocoderepository.com/BotFiles/3659/spinnercat.Limit_.01.jar&lt;br /&gt;
spinnercat.Kitten 1.6,http://www.robocoderepository.com/BotFiles/3819/spinnercat.Kitten_1.6.jar&lt;br /&gt;
spinnercat.haiku.Refrigerator 1.1,http://www.robocoderepository.com/BotFiles/3688/spinnercat.haiku.Refrigerator_1.1.jar&lt;br /&gt;
spinnercat.mega.Tardis 1.2,http://www.robocoderepository.com/BotFiles/3692/spinnercat.mega.Tardis_1.2.jar&lt;br /&gt;
spinnercat.Robovirus 2.718,http://www.robocoderepository.com/BotFiles/3657/spinnercat.Robovirus_2.718.jar&lt;br /&gt;
sqTank.waveSurfing.LionWWSVMvoid 0.01,http://www.robocoderepository.com/BotFiles/3436/sqTank.waveSurfing.LionWWSVMvoid_0.01.jar&lt;br /&gt;
starpkg.StarViewerZ 1.26,http://www.robocoderepository.com/BotFiles/1931/starpkg.StarViewerZ_1.26.jar&lt;br /&gt;
staticline.Whiskey 0.5.2,http://www.robocoderepository.com/BotFiles/3939/staticline.Whiskey_0.5.2.jar&lt;br /&gt;
stefw.Tigger 0.0.23,http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar&lt;br /&gt;
stelo.Chord 1.0,http://darkcanuck.net/rumble/robots/stelo.Chord_1.0.jar&lt;br /&gt;
stelo.FretNano 1.1,http://darkcanuck.net/rumble/robots/stelo.FretNano_1.1.jar&lt;br /&gt;
stelo.Lifestealer 1.0,http://darkcanuck.net/rumble/robots/stelo.Lifestealer_1.0.jar&lt;br /&gt;
stelo.MatchupMini 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupMini_1.1.jar&lt;br /&gt;
stelo.MatchupMicro 1.2,http://darkcanuck.net/rumble/robots/stelo.MatchupMicro_1.2.jar&lt;br /&gt;
stelo.MatchupAGF 1.1,http://darkcanuck.net/rumble/robots/stelo.MatchupAGF_1.1.jar&lt;br /&gt;
stelo.MatchupWS 1.2c,http://darkcanuck.net/rumble/robots/stelo.MatchupWS_1.2c.jar&lt;br /&gt;
stelo.Mirror 1.1,http://www.robocoderepository.com/BotFiles/3034/stelo.Mirror_1.1.jar&lt;br /&gt;
stelo.MirrorMicro 1.1,http://darkcanuck.net/rumble/robots/stelo.MirrorMicro_1.1.jar&lt;br /&gt;
stelo.MirrorNano 1.4,http://darkcanuck.net/rumble/robots/stelo.MirrorNano_1.4.jar&lt;br /&gt;
stelo.MoojukNano 1.2,http://darkcanuck.net/rumble/robots/stelo.MoojukNano_1.2.jar&lt;br /&gt;
stelo.PastFuture 2.1.9,http://www.robocoderepository.com/BotFiles/3910/stelo.PastFuture_2.1.9.jar&lt;br /&gt;
stelo.PatternRobot 1.0,http://www.robocoderepository.com/BotFiles/2995/stelo.PatternRobot_1.0.jar&lt;br /&gt;
stelo.PianistNano 1.3,http://darkcanuck.net/rumble/robots/stelo.PianistNano_1.3.jar&lt;br /&gt;
stelo.RamTrackSurfer 1.2,http://darkcanuck.net/rumble/robots/stelo.RamTrackSurfer_1.2.jar&lt;br /&gt;
stelo.Randomness 1.1,http://www.robocoderepository.com/BotFiles/3021/stelo.Randomness_1.1.jar&lt;br /&gt;
stelo.Spread 0.2,http://www.robocoderepository.com/BotFiles/3922/stelo.Spread_0.2.jar&lt;br /&gt;
stelo.SteloTestNano 1.0,http://darkcanuck.net/rumble/robots/stelo.SteloTestNano_1.0.jar&lt;br /&gt;
stelo.UnfoolableNano 1.0,http://darkcanuck.net/rumble/robots/stelo.UnfoolableNano_1.0.jar&lt;br /&gt;
stelo.UntouchableNano 1.4,http://darkcanuck.net/rumble/robots/stelo.UntouchableNano_1.4.jar&lt;br /&gt;
step.nanoPri 1.0,http://www.robocoderepository.com/BotFiles/2996/step.nanoPri_1.0.jar&lt;br /&gt;
step.NanoBidu 1.0,http://www.robocoderepository.com/BotFiles/3014/step.NanoBidu_1.0.jar&lt;br /&gt;
stf.PanzerGeneral 0.1,http://www.robocoderepository.com/BotFiles/2233/stf.PanzerGeneral_0.1.jar&lt;br /&gt;
stordy.StordyBot 1.0,http://sites.google.com/site/stordyrobo/Home/stordy.StordyBot_1.0.jar&lt;br /&gt;
strider.Festis 1.2.1,http://www.robocoderepository.com/BotFiles/2355/strider.Festis_1.2.1.jar&lt;br /&gt;
strider.Mer 1.1.0,http://www.robocoderepository.com/BotFiles/2360/strider.Mer_1.1.0.jar&lt;br /&gt;
stuff.Vlad 0.1,http://www.robocoderepository.com/BotFiles/3701/stuff.Vlad_0.1.jar&lt;br /&gt;
sul.NanoR2 1.32,http://www.robocoderepository.com/BotFiles/3348/sul.NanoR2_1.32.jar&lt;br /&gt;
sul.Pinkbot 1.1,http://www.robocoderepository.com/BotFiles/3346/sul.Pinkbot_1.1.jar&lt;br /&gt;
sul.Bicephal 1.2,http://www.robocoderepository.com/BotFiles/3343/sul.Bicephal_1.2.jar&lt;br /&gt;
sul.BlueBot 1.0,http://www.robocoderepository.com/BotFiles/3347/sul.BlueBot_1.0.jar&lt;br /&gt;
SuperSample.SuperCrazy 1.0,http://www.csdgn.org/files/bots/SuperSample.SuperCrazy_1.0.jar&lt;br /&gt;
syl.Centipede 0.5,http://www.robocoderepository.com/BotFiles/1254/syl.Centipede_0.5.jar&lt;br /&gt;
synapse.Geomancy 15,http://sites.google.com/site/synapsebots/home/synapse.Geomancy_15.jar?attredirects=0&lt;br /&gt;
synapse.rsim.GeomancyBS 0.11,http://robocoderepository.com/BotFiles/3758/synapse.rsim.GeomancyBS_0.11.jar&lt;br /&gt;
synnalagma.NeuralPremier 0.51,http://www.robocoderepository.com/BotFiles/1557/synnalagma.NeuralPremier_0.51.jar&lt;br /&gt;
synnalagma.test.MiniNeural 1.1,http://www.robocoderepository.com/BotFiles/1754/synnalagma.test.MiniNeural_1.1.jar&lt;br /&gt;
tad.Dalek98 0.98,http://darkcanuck.net/rumble/robots/tad.Dalek98_0.98.jar&lt;br /&gt;
takeBot.SpinSpiral 1.2,http://www.robocoderepository.com/BotFiles/312/takeBot.SpinSpiral_1.2.jar&lt;br /&gt;
takeBot.SpiralCrash 1.0,http://www.robocoderepository.com/BotFiles/1013/takeBot.SpiralCrash_1.0.jar&lt;br /&gt;
takeBot.WeavingWiggle 1.1,http://www.robocoderepository.com/BotFiles/1012/takeBot.WeavingWiggle_1.1.jar&lt;br /&gt;
tango.Recrimpo 2.51,http://www.robocoderepository.com/BotFiles/2015/tango.Recrimpo_2.51.jar&lt;br /&gt;
taqho.taqbot 1.0,http://www.robocoderepository.com/BotFiles/1316/taqho.taqbot_1.0.jar&lt;br /&gt;
tcf.Drifter 29,http://www.7sun.com/robocode/robots/tcf.Drifter_29.jar&lt;br /&gt;
tcf.Repat3 2,http://www.robocoderepository.com/BotFiles/3328/tcf.Repat3_2.jar&lt;br /&gt;
techdude.kombat.FlamingKombat 1.5,http://www.robocoderepository.com/BotFiles/2810/techdude.kombat.FlamingKombat_1.5.jar&lt;br /&gt;
techdude.Class2C.Class2C 0.1,http://www.robocoderepository.com/BotFiles/3078/techdude.Class2C.Class2C_0.1.jar&lt;br /&gt;
test.Podgy 4.0,http://www.robocoderepository.com/BotFiles/3214/test.Podgy_4.0.jar&lt;br /&gt;
test.Fuzzer 1.0.1,http://www.robocoderepository.com/BotFiles/3345/test.Fuzzer_1.0.1.jar&lt;br /&gt;
testantiswapgun.AntiSwap 1.0,http://www.robocode.ilbello.com/asd.AntiSwap_1.0.jar&lt;br /&gt;
throxbot.ThroxBot 0.1,http://www.robocoderepository.com/BotFiles/2548/throxbot.ThroxBot_0.1.jar&lt;br /&gt;
tide.pear.Pear 0.62.1,http://www.robocoderepository.com/BotFiles/2393/tide.pear.Pear_0.62.1.jar&lt;br /&gt;
timmit.micro.TimXJ 0.22,http://www.robocoderepository.com/BotFiles/1683/timmit.micro.TimXJ_0.22.jar&lt;br /&gt;
timmit.mini.TimVA 0.43,http://www.robocoderepository.com/BotFiles/1681/timmit.mini.TimVA_0.43.jar&lt;br /&gt;
timmit.nano.TimCat 0.13,http://www.robocoderepository.com/BotFiles/1600/timmit.nano.TimCat_0.13.jar&lt;br /&gt;
timmit.nano.TimDog 0.33,http://www.robocoderepository.com/BotFiles/1602/timmit.nano.TimDog_0.33.jar&lt;br /&gt;
timmit.TimmiT 0.22,http://www.robocoderepository.com/BotFiles/1468/timmit.TimmiT_0.22.jar&lt;br /&gt;
tjk.Newton 0.7,http://keenehs.homeip.net:90/rumble/robots/tjk.Newton_0.7.jar&lt;br /&gt;
tlp.ThreeLeggedPig 1,http://pages.prodigy.net/franz1/house/tlp.ThreeLeggedPig_1.jar&lt;br /&gt;
tm.Yuugao 1.0,http://www.robocoderepository.com/BotFiles/1056/tm.Yuugao_1.0.jar&lt;br /&gt;
tobe.calypso.Calypso 4.1,http://www.robocoderepository.com/BotFiles/784/tobe.calypso.Calypso_4.1.jar&lt;br /&gt;
tobe.Fusion 1.0,http://www.robocoderepository.com/BotFiles/649/tobe.Fusion_1.0.jar&lt;br /&gt;
tobe.mini.Charon 0.9,http://www.robocoderepository.com/BotFiles/836/tobe.mini.Charon_0.9.jar&lt;br /&gt;
tobe.Relativity 3.9,http://www.robocoderepository.com/BotFiles/360/tobe.Relativity_3.9.jar&lt;br /&gt;
tobe.Saturn lambda,http://www.robocoderepository.com/BotFiles/685/tobe.Saturn_lambda.jar&lt;br /&gt;
tornyil.bottomup.BottomUp 1.05,http://www.alpha-consulting.hu/robo/tornyil.bottomup.BottomUp_1.05.jar&lt;br /&gt;
tornyil.Lajcsi2.Lajcsi2sm 1.0,http://www.alpha-consulting.hu/robo/tornyil.Lajcsi2.Lajcsi2sm_1.0.jar&lt;br /&gt;
toz.Gnome 1.1,http://darkcanuck.net/rumble/robots/toz.Gnome_1.1.jar&lt;br /&gt;
trab.Crusader 0.1.7,http://www.stud.ntnu.no/~grashei/bots/trab.Crusader_0.1.7.jar&lt;br /&gt;
trab.nano.AinippeNano 1.3,http://www.stud.ntnu.no/~grashei/bots/trab.nano.AinippeNano_1.3.jar&lt;br /&gt;
tw.Exterminator 1.0,http://www.robocoderepository.com/BotFiles/3607/tw.Exterminator_1.0.jar&lt;br /&gt;
tzu.TheArtOfWar 1.2,http://darkcanuck.net/rumble/robots/tzu.TheArtOfWar_1.2.jar&lt;br /&gt;
uccc.Dorito 1.12,http://www.devfluid.com/csc_w/images/e/e9/Uccc.Dorito_1.12.jar&lt;br /&gt;
uccc.MilkyWay 1.01,http://www.devfluid.com/csc_w/images/a/a6/Uccc.MilkyWay_1.01.jar&lt;br /&gt;
uccc.RingDing 1.12,http://www.devfluid.com/csc_w/images/5/5f/Uccc.RingDing_1.12.jar&lt;br /&gt;
uccc.Scrapple 1.0,http://www.devfluid.com/csc_w/images/7/7a/Uccc.Scrapple_1.0.jar&lt;br /&gt;
urdos.URDOS 1.3,http://darkcanuck.net/rumble/robots/urdos.URDOS_1.3.jar&lt;br /&gt;
usa.nano.Nemo 2.0,http://www.robocoderepository.com/BotFiles/2045/usa.nano.Nemo_2.0.jar&lt;br /&gt;
vic.Locke 0.7.5.5,http://www.robocoderepository.com/BotFiles/2115/vic.Locke_0.7.5.5.jar&lt;br /&gt;
vft.Valkyrie 1.0,http://www.robocoderepository.com/BotFiles/3009/vft.Valkyrie_1.0.jar&lt;br /&gt;
vft.Hrist 1.0,http://darkcanuck.net/rumble/robots/vft.Hrist_1.0.jar&lt;br /&gt;
vjik.UnViolation 1.1,http://www.robocoderepository.com/BotFiles/3886/vjik.UnViolation_1.1.jar&lt;br /&gt;
voidious.Diamond 1.5.22,http://www.dijitari.com/void/robocode/voidious.Diamond_1.5.22.jar&lt;br /&gt;
voidious.Dookious 1.573c,http://www.dijitari.com/void/robocode/voidious.Dookious_1.573c.jar&lt;br /&gt;
voidious.micro.Jen 1.11,http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar&lt;br /&gt;
voidious.mini.Komarious 1.88,http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar&lt;br /&gt;
vuen.Fractal 0.55,http://www.robocoderepository.com/BotFiles/1579/vuen.Fractal_0.55.jar&lt;br /&gt;
wcsv.Engineer.Engineer 0.5.4,http://darkcanuck.net/rumble/robots/wcsv.Engineer.Engineer_0.5.4.jar&lt;br /&gt;
wcsv.PowerHouse.PowerHouse 1.7e3,http://darkcanuck.net/rumble/robots/wcsv.PowerHouse.PowerHouse_1.7e3.jar&lt;br /&gt;
wcsv.mega.PowerHouse2 0.2,http://darkcanuck.net/rumble/robots/wcsv.mega.PowerHouse2_0.2.jar&lt;br /&gt;
wcsv.Stampede 1.3.3,http://www.robocoderepository.com/BotFiles/2527/wcsv.Stampede_1.3.3.jar&lt;br /&gt;
wcsv.Stampede2.Stampede2 1.1.0,http://www.robocoderepository.com/BotFiles/2714/wcsv.Stampede2.Stampede2_1.1.0.jar&lt;br /&gt;
whind.Constitution 0.7.1,http://www.robocoderepository.com/BotFiles/2812/whind.Constitution_0.7.1.jar&lt;br /&gt;
whind.Strength 0.6.4,http://whindgames.50webs.com/otherstuff/whind.Strength_0.6.4.jar&lt;br /&gt;
whind.StrengthBee 0.6.4,http://whindgames.50webs.com/otherstuff/whind.StrengthBee_0.6.4.jar&lt;br /&gt;
whind.Wisdom 0.5.1,http://www.robocoderepository.com/BotFiles/2742/whind.Wisdom_0.5.1.jar&lt;br /&gt;
wiki.BasicGFSurfer 1.02,http://www.dijitari.com/void/robocode/wiki.BasicGFSurfer_1.02.jar&lt;br /&gt;
wiki.mako.MakoHT 1.2.2.1,http://www.robocoderepository.com/BotFiles/1374/wiki.mako.MakoHT_1.2.2.1.jar&lt;br /&gt;
wiki.mini.BlackDestroyer 0.9.0,http://www.robocoderepository.com/BotFiles/1927/wiki.mini.BlackDestroyer_0.9.0.jar&lt;br /&gt;
wiki.mini.GouldingiHT 1.0,http://www.robocoderepository.com/BotFiles/1383/wiki.mini.GouldingiHT_1.0.jar&lt;br /&gt;
wiki.mini.Griffon 0.1,http://www.robocoderepository.com/BotFiles/1774/wiki.mini.Griffon_0.1.jar&lt;br /&gt;
wiki.mini.Sedan 1.0,http://www.robocoderepository.com/BotFiles/1676/wiki.mini.Sedan_1.0.jar&lt;br /&gt;
wiki.nano.DevilFISH 1.0,http://www.robocoderepository.com/BotFiles/2235/wiki.nano.DevilFISH_1.0.jar&lt;br /&gt;
wiki.nano.RaikoNano 1.1,http://www.robocoderepository.com/BotFiles/2163/wiki.nano.RaikoNano_1.1.jar&lt;br /&gt;
wiki.WaveRammer 1.0,http://www.robocoderepository.com/BotFiles/3505/wiki.WaveRammer_1.0.jar&lt;br /&gt;
wiki.Wolverine 2.1,http://darkcanuck.net/rumble/robots/wiki.Wolverine_2.1.jar&lt;br /&gt;
wilson.Chameleon 0.91,http://www.robocoderepository.com/BotFiles/1608/wilson.Chameleon_0.91.jar&lt;br /&gt;
winamp32.micro.MicroMacro 1.0,http://www.robocoderepository.com/BotFiles/2891/winamp32.micro.MicroMacro_1.0.jar&lt;br /&gt;
wit.Chuliath 1.0,http://www.robocoderepository.com/BotFiles/2306/wit.Chuliath_1.0.jar&lt;br /&gt;
wit.Deep7 2.0,http://www.robocoderepository.com/BotFiles/2313/wit.Deep7_2.0.jar&lt;br /&gt;
xiongan.Xiongan 1.1,http://www.robocoderepository.com/BotFiles/3565/xiongan.Xiongan_1.1.jar&lt;br /&gt;
yarghard.Y101 1.0,http://sliwa.ws/RoboCode/yarghard.Y101_1.0.jar&lt;br /&gt;
yk.JahMicro 1.0,http://www.robocoderepository.com/BotFiles/3033/yk.JahMicro_1.0.jar&lt;br /&gt;
yk.JahRoslav 1.1,http://www.robocoderepository.com/BotFiles/3032/yk.JahRoslav_1.1.jar&lt;br /&gt;
zen.Lindada 0.2,http://www.robocoderepository.com/BotFiles/1679/zen.Lindada_0.2.jar&lt;br /&gt;
zeze2.OperatorZeze 1.05,http://www.robocoderepository.com/BotFiles/3330/zeze2.OperatorZeze_1.05.jar&lt;br /&gt;
zch.David 0.21,http://www.robocoderepository.com/BotFiles/3575/zch.David_0.21.jar&lt;br /&gt;
zch.Hirkan 0.11,http://www.robocoderepository.com/BotFiles/1288/zch.Hirkan_0.11.jar&lt;br /&gt;
zh.UnderDog 0.0.2,http://www.robocoderepository.com/BotFiles/3053/zh.UnderDog_0.0.2.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 3.0,http://darkcanuck.net/rumble/robots/zyx.mega.YersiniaPestis_3.0.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 4.0,http://sites.google.com/site/zyxsite/robocode/zyx.mega.YersiniaPestis_3.4.0.jar&lt;br /&gt;
zyx.micro.Ant 1.1,http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar&lt;br /&gt;
zyx.nano.Ant 1.1,http://www.robocoderepository.com/BotFiles/3493/zyx.nano.Ant_1.1.jar&lt;br /&gt;
zyx.nano.EscherichiaColi 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.EscherichiaColi_1.0.jar&lt;br /&gt;
zyx.nano.RedBull 1.0,http://darkcanuck.net/rumble/robots/zyx.nano.RedBull_1.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''''No chatting on this page. Use the /ParticipantsChat page for that.'''''&lt;br /&gt;
&lt;br /&gt;
'''''Removed because the jarcontent/filename is not correct'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''cberendt.Bot1 0.160''&amp;lt;br&amp;gt;&lt;br /&gt;
''dmsr.MiniR101 0.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''henriquevilela.TieFighter 0.1,3224''&amp;lt;br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_7980_gen7 1.0,3552''br&amp;gt;&lt;br /&gt;
''jgap.Aspirant_13029_gen7 1.0,3553''&amp;lt;br&amp;gt;&lt;br /&gt;
''techdude.Carruthers 1.2.6''&amp;lt;br&amp;gt;&lt;br /&gt;
''uccc.Orbiter 1.0''&amp;lt;br&amp;gt;&lt;br /&gt;
''WhoAmI.WhoAmI 1.00''&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''''Removed until file corruption is resolved:'''''&lt;br /&gt;
&lt;br /&gt;
''cas.CelsoKiller 1.0,3465''&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to almost always giving '0' scores:'''''&lt;br /&gt;
&lt;br /&gt;
''com.syncleus.robocode.Dreadnaught 0.1,3426''&amp;lt;br&amp;gt;&lt;br /&gt;
''lazarecki.PinkerStinker 0.1,http://www.robocoderepository.com/BotFiles/3824/lazarecki.PinkerStinker_0.1.jar''&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''''Removed due to WontFix issues in Robocode 1.7+:'''''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Hviela: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2953268&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2953268]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': hvilela.HVilela 0.9.3,http://henrique.vilela.googlepages.com/hvilela.HVilela_0.9.3.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* Yoda: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2952543&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2952543]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': rc.yoda.Yoda 1.0.6c,http://www.robocoderepository.com/BotFiles/3260/rc.yoda.Yoda_1.0.6c.jar''&amp;lt;br&amp;gt;&lt;br /&gt;
''* SniperFrog: ([[http://sourceforge.net/tracker/?func=detail&amp;amp;aid=2928691&amp;amp;group_id=37202&amp;amp;atid=419486 SF #2928691]])''&amp;lt;br&amp;gt;&lt;br /&gt;
'': simonton.mega.SniperFrog 1.0,http://upload.frozenonline.com/view/simonton/simonton.mega.SniperFrog_1.0.jar''&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=User_talk:Zyx&amp;diff=17596</id>
		<title>User talk:Zyx</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User_talk:Zyx&amp;diff=17596"/>
		<updated>2010-10-15T03:31:36Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Google sites got disabled? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox small&lt;br /&gt;
| title     = Archived Talks&lt;br /&gt;
| namespace = User&lt;br /&gt;
| page1     = Talk Archive 20090506&lt;br /&gt;
| title1    = 2009/05/06&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Wiki Help ==&lt;br /&gt;
&lt;br /&gt;
I'm trying to learn how to use the wiki, so probably will be asking more questions. But to start I would like to know how to add those nice ''content tables'' to the pages, I've been going trough the pages that has them and see nothing special in the code :-S. And as a more general second question, is there somewhere I can learn how to write wiki stuff? Particularly this one of course. --[[User:Zyx|zyx]] 01:11, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[wikipedia:How_to_edit|Here]] is all about mediawiki syntax. MediaWiki automatically add the TOC once the page have more than 4 headers (inclusive) at before the first header. If you want to add the TOC manually, add &amp;lt;nowiki&amp;gt;__TOC__&amp;lt;/nowiki&amp;gt; to the page (like this page) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 01:22, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Another useful link I bookmarked recently is [http://meta.wikimedia.org/wiki/Cheatsheet this MediaWiki cheatsheet]. I tend to check [http://mediawiki.org mediawiki.org], or just Google (eg, ''mediawiki namespaces'') when I'm looking for something specific. There's a lot of good info out there because so many people use MediaWiki. But I've learned a lot of what I know from people like Nat and [[User:AaronR|AaronR]] doing stuff on this wiki. =) --[[User:Voidious|Voidious]] 01:30, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Hey, you won't believe me that this is the first wiki (beside the old one) I've working on. I learn the thing from what AaronR and [[User:Nfwu|Nfwu]] used to done actually. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 01:52, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks guys, I'm too dinosaur-ish for web related stuff. This is the first wiki I've been, and have been moderator of two forums, but there I'm just as dumb as I am here :-P. --[[User:Zyx|zyx]] 01:56, 7 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Handle ==&lt;br /&gt;
&lt;br /&gt;
I always realized that your handle was the last 3 letters in the alphabet, but it only just occurred to me that this is like the opposite of &amp;quot;[[User:ABC|ABC]]&amp;quot;. I'm curious if that is intentional or just coincidence? (To be clear, I mean if it's inspired by ABC the Robocoder or not.) Kind of funny that two of our PL kings have such similar handles. =) --[[User:Voidious|Voidious]] 18:16, 4 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I think it is coincidence, because his email is zyx###@gmail.com (### replace with number, I don't remember which) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 08:49, 5 August 2009 (UTC)&lt;br /&gt;
: It is a coincidence, I've been using zyx since nintendo times :). --[[User:Zyx|zyx]] 11:56, 5 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Melee Testing ==&lt;br /&gt;
How do you guys test melee bots? Not tool-wise, I know [[Voidious]] patched [[RoboResearch]] which I will probably use to test the melee bot as well soon. But I mean battle-wise, I was testing with the top 6 bots from different authors and 2 ''random'' middle bots, the other two spots were taken by two versions of my bots and ran 100 round battles and compare the results of my two bots to decide which one is better. But I knew that testing wasn't suitable, YersiniaPestis 3.0 can beat [[Shadow]], [[Aleph]] a lot of times (~40% of times beats one of them), [[Portia]] every now and then and [[Fermat]] every time under that circumstances, but I knew that in reality battles don't such a high concentration of top bots so results were kind of irrelevant as rumble performance meant. Thanks. --[[User:Zyx|zyx]] 21:03, 19 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Well, I struggle with this too, but my attitude is to try to emulate the same mixes of bots that you'll face in the rumble. So you'd want the same range of skill levels, some battles with all weak bots, some with mid-range bots, and some with stronger bots. Right now my test bed is 27 bots, split into 6 groups (with each bot appearing twice), and I'll run ~20 seasons. For many versions of [[Diamond]] in a row, this was accurately predicting a rating increase or not. Then I released a version without much testing, its rumble rating went up, but I ran the test afterward and the score went down. :-/ So I'm still figuring it out myself, really. If you're curious about my test bed, it's here: [http://www.dijitari.com/void/robocode/dibed6.rrc dibed6.rrc]. Good luck, and please let us know if you make any Melee test bed breakthroughs. =) --[[User:Voidious|Voidious]] 21:30, 19 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks, I'll check it later. If I do, I will. --[[User:Zyx|zyx]]&lt;br /&gt;
&lt;br /&gt;
== Google Code Jam ==&lt;br /&gt;
I don't know if any of you like programming contests, but I'm actually a devoted contestant of those. Next week the Google Code Jam begins, which is an online contest similar to the ACM-ICPC or TopCoder contests but it has its differences, specially in the format and languages you can use (any language is fine, even BrainF#@k). I'll be participating in it, if anyone is interested in learing more about it go to [http://code.google.com/codejam/ CodeJam 2009]. Hope at least some of you find it interesting so we can meet there. --[[User:Zyx|zyx]] 16:38, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Good AI Books ==&lt;br /&gt;
&lt;br /&gt;
Background: Buying books in Venezuela sucks, they are old, translated(I like to read the original author) and expensive.&lt;br /&gt;
&lt;br /&gt;
My mom is currently visiting my brother in the UK, I always buy some books when she is over there since I love reading scientific or technical books. Currently I'm looking to expand my AI books collection since it is rather poor, and I thought maybe some of you could help me find a good choice. I already have ''Artificial Intelligence: A Modern Approach'' of Norvig and Russell, although it's the first edition and in Spanish so I'm considering the second edition in English. But besides that one which good AI books can you recommend? Also I have a couple of NN books so I would be more interested in something either general or specific to other subjects, but if you have a good NN book to recommend I wouldn't mind hearing and reading about it as well. Thanks in advance. --[[User:Zyx|zyx]] 01:16, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't have any &amp;quot;general AI&amp;quot; books (could use some recommendations too) but the favourite of the ones I have is &amp;quot;Reinforcement Learning&amp;quot; by Sutton &amp;amp; Barto.  As a bonus, it's actually [http://www.cs.ualberta.ca/~sutton/book/the-book.html available online].  [[Leon]] and early versions of [[Pris]] use concepts from this book.  For NN I have &amp;quot;Fundamentals of Neural Networks&amp;quot; by Fausett, but there are many more practical resources scattered about online.  For example, [http://www.ai-junkie.com/ &amp;quot;ai-junkie] has some great tutorials on NN and genetic algorithms. --[[User:Darkcanuck|Darkcanuck]] 06:42, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if you find it usefull, but at the university I study at we're using ''Artificial Intelligence, structures and strategies for complex problem solving'' by George F. Luger. It's been pretty general so far (I'm at chapter 4, and it has mostly been about treesearching strategies), and it's also nice to read. I'm wondering if I can incoorperate anything in robots...   --[[User:Positive|Positive]] 17:35, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: For an ''Intro to Machine Learning'' class I took in my last semester of CS, one of the books we used was this: [http://www.inference.phy.cam.ac.uk/mackay/itila/ Information Theory, Inference, and Learning Algorithms, by David MacKay]. The physical version of the book is sold normally, but you can download a PDF of the entire book for free as long as you agree not to print it out. I remember it being pretty &amp;quot;dense&amp;quot;, as was the class, but I learned a lot. The only other book I can think of to mention is one that [[User:PEZ|PEZ]] talked about a bit: [http://www.randomhouse.com/features/wisdomofcrowds/ The Wisdom of Crowds, by James Surowiecki]. (PEZ talks about it here: [[oldwiki:CrowdTargeting]].) Good luck - let us know how your search turns out. =) --[[User:Voidious|Voidious]] 17:49, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks for all your responses, I won't buy the books recommended by [[Darkcanuck]] (the first one) and [[Voidious]] because I can download them and I have to save every penny, in Venezuela we have exchange control right now and we are only allowed to spend $400 on Internet each year :-S. The NN book, well I have some and as he said ai-junkie is a great place. The book [[Positive]] posted is really inexpensive so I was excited at first, but I read a bit on the Amazon preview and it seems fine but rather basic, I already have 3 undergraduate AI courses and I'm actually looking to do some graduate level studies now.&lt;br /&gt;
&lt;br /&gt;
I will buy the second edition of ''A Modern Approach'' of Norvig and Russell as it seems to be the most recommended book all around the world, to have it as a reference rather than reading it in depth again. And just to please my self I will buy the first 2 books from the ''AI Game Programming Wisdom'' series, they seems to be in the same fashion as the Game Programming Gems series which I found to be amazingly interesting when I first read them. Thanks all, and I hope you get something out it as well. My mom comes back next week, I'll let you know then how good or bad the books end up being. --[[User:Zyx|zyx]] 21:36, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I forgot to mention ''The Wisdom of Crowds'' is not an AI book, the author is a journalist and not a scientific in any way, I already mentioned some of this once [[Nat]] asked a question about it, but is actually more a psychological on how a crowd of people behaves. I think it had very positive feedback from people who read it for fun and very negative feedback from people who wanted it for scientific reasons, I read a bit of it long time ago and didn't find it very interesting but I myself only like scientific reading. --[[User:Zyx|zyx]] 21:43, 7 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Google sites got disabled? ==&lt;br /&gt;
&lt;br /&gt;
Just to let you know, it seems your Google sites account recently got disabled &amp;quot;because of a perceived violation of the Terms of Service&amp;quot;. Got all your robots hosted there on the participants lists switched over to the Darkcanuck's mirror. --[[User:Rednaxela|Rednaxela]] 06:11, 30 April 2010 (UTC)&lt;br /&gt;
: Hi, thanks for this. However, I just checked and seems the Google site is working again, I don't use it for anything else than this robots. Hopefully it still works because I want to try doing some robocoding again. --[[User:Zyx|zyx]] 03:31, 15 October 2010 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=User:Zyx&amp;diff=13577</id>
		<title>User:Zyx</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User:Zyx&amp;diff=13577"/>
		<updated>2009-10-22T22:03:56Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* My Bots */ update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm a new Robocode addict from Venezuela, and this is how I got hooked up.&lt;br /&gt;
&lt;br /&gt;
Like two months ago in my Intelligent Agents class, we had an assignment of coding a robot in the Robocode API. I did some movement based on how Walls beat all the sample bots, and then an ugly, iterative, hand written linear targeting to beat Walls (which surprisingly worked for SpinBot too). And I felt it was good enough since it could beat all sample bots on 1v1 and Melee, most of the times.&lt;br /&gt;
&lt;br /&gt;
Then I thought I would look for some bots on the net to test mine against them, I expected to be beaten but have a nice fight. I downloaded [[Waylander]], [[Stormrider]] and [[Dookious]] among others, when the battle started I was so amazed how they dodge every bullet I fired, and the massacre that I got in. After that I decided I had to learn some stuff, so I went to the page I found them (the new wiki). Read something about [[StopAndGo]] and [[PatternMatching]], and got excited about the new possibilities. I started searching for Robocode tutorials and found this page, started reading and got completely hooked up.&lt;br /&gt;
&lt;br /&gt;
College is not asking me to write anything in the Robocode API anymore, but I may be doing more work here than in my actual classes. I have gone trough most of the tutorials, implemented a lot of different movements, targeting and radar locking strategies. Have a couple of robots in the [[RoboRumble]] and hope to keep working in this for many years, one of the best &amp;quot;games&amp;quot; I've seen in a long time.&lt;br /&gt;
&lt;br /&gt;
I would like to take this moment to thank [[PEZ]], for starting the wiki that hooked me and all the knowledge he has shared. [[Kawigi]] and [[Voidious]] for the very neat tutorials on [[GuessFactorTargeting]] and [[WaveSurfing]] that made me realize just how off I was on my own. Although my code is completely different because I like writing my own code, my first attempts to both of those strategies, where just transcriptions of the tutorials. [[ABC]], [[David_Alves]], [[Paul_Evans]], [[GrubbmGait]], and every one in the wiki for the amazing things they have invented, upgraded and most of all, explained :-).&lt;br /&gt;
&lt;br /&gt;
== My Bots ==&lt;br /&gt;
&amp;lt;B&amp;gt;Bots I've released&amp;lt;/B&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*[[YersiniaPestis]]: A [[DynamicClustering]] based [[MegaBot|mega]] bot.&lt;br /&gt;
*[[Newton]]: A [[Visit Count Stats | VCS]] based [[MegaBot|mega]] bot.&lt;br /&gt;
*[[AntBot|Ant]]: To have fun reducing codesize, there is a [[NanoBot|nano]] and a [[MicroBot|micro]] version of it.&lt;br /&gt;
*[[RedBull]]: A [[Nano Bot|nano]] sized ram bot.&lt;br /&gt;
*[[EscherichiaColi]]: A [[Nano Bot|nano]] sized wall rider.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Bots under initial development&amp;lt;/B&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* [[Sila]]: A [[Sequential Prediction]] based bot, although it probably will [[Dynamic Clustering]] also in the surfing. Currently work is focused in the gun.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Bots in my mind&amp;lt;/B&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*[[AssassinsCreed]]: A team of bots.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;Bots retired&amp;lt;/B&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
*[[Gauss]]: An attempt to improve [[YersiniaPestis]] ideas with a cleaner implementation.&lt;br /&gt;
&lt;br /&gt;
== My user's chat ==&lt;br /&gt;
I think that goes [[User talk:Zyx|here]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Bot Authors|Zyx]]&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Diamond/Version_History&amp;diff=13574</id>
		<title>Talk:Diamond/Version History</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Diamond/Version_History&amp;diff=13574"/>
		<updated>2009-10-22T19:24:58Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Precise intersection (1.47*) */ breaking is good&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ELO inaccuracy ==&lt;br /&gt;
&lt;br /&gt;
About &amp;quot;Note: Despite lower ELO, was about .3% APS better than 1.0.&amp;quot;, that's not surprising to me at all. Glicko-2 seems to be far more true to a full-pairing APS than ELO was too. Things like this make me glad the new server doesn't just show ELO like the old one :) --[[User:Rednaxela|Rednaxela]] 22:02, 17 May 2009 (UTC)&lt;br /&gt;
: Although I had second thoughts about setting the APS as standard ranking decisor, I must agree that ELO is not as reliable as it was on the old server(s). Mind you that ELO is calculated slightly different on this server than on the old ones. --[[User:GrubbmGait|GrubbmGait]] 22:11, 17 May 2009 (UTC)&lt;br /&gt;
: ELO scores have recently taken a nosedive, for several reasons.  There has been a lot of new activity recently with lots of bots being updated and a few new ones added in -- that tends to shake things up.  Also, several long-running bots were removed within a short time period, notably pederson.Moron which once anchored the bottom end of the scale.  It's safer to compare APS instead of ELO, especially right now.  --[[User:Darkcanuck|Darkcanuck]] 15:18, 18 May 2009 (UTC)&lt;br /&gt;
: I only pulled Moron because it seemed fairly pointless.  I don't mind if he is returned to shore up a ratings slide, but that seems like giving a cancer patient a Band-Aid.  On a related note, a long time ago I got the notion that the average ELO rating of the old rating system was 1600.  I dropped the ratings list in Excel and confirmed that the ratings averaged to about 1600.  At the time, most people were wondering what I was smoking, dismissing 1600 as anything of relevance.  I recently did another averaging of the ratings and found ELO to average at 1413 and Glicko-2 averages 1608.  Dunno if it really means anything, but ELO certainly doesn't compare to the old ratings.--[[User:Pedersen|Martin]] 16:24, 18 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Avoiding recent enemy locations ==&lt;br /&gt;
&lt;br /&gt;
Well, I found a bug in my risk calculation for avoiding recent enemy locations (fixed but not tuned in 1.071). I really feel like this must be a good idea (because bullets are likely to be headed to those spots), but I hadn't found any rating boost from it yet. Hopefully I can find some points in a re-tuned, bug-free version of this... --[[User:Voidious|Voidious]] 17:25, 21 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== 1.11* bugs / fixes ==&lt;br /&gt;
&lt;br /&gt;
Man, this [[Performance Enhancing Bug]] really drove me nuts, especially since I have so much trouble testing such a little thing. I think I can live with a .15% APS drop in my &amp;quot;bug-free&amp;quot; 1.115 (versus the &amp;quot;buggy&amp;quot; 1.111). I'm sure I'll continue tuning the randomness of his movement in the future, anyway, and I know there are more performance gains to be had elsewhere. This is long and boring, but I feel compelled to write it out, even if just to have the info &amp;quot;out there&amp;quot; somewhere.&lt;br /&gt;
&lt;br /&gt;
The bug was with my random direction change timer. This timer influences the bot to reverse direction at a random interval (with a [[Minimum Risk Movement|risk]] added for disobeying the timer). If the timer trips while the bot is moving with negative velocity, there would be a risk associated with continuing in that direction, and the bot would soon change direction towards positive velocity. Before the timer trips, there's a risk associated with reversing direction.&lt;br /&gt;
&lt;br /&gt;
With the bug, once the velocity went from negative to zero (or positive), it mixed up its directions and thought that negative velocities were the safer direction. This was caused by two things: it always considered zero velocity to be the same as positive, and it was comparing the possible future heading to the heading from one tick ago (instead of heading from the current tick). So here's the problem scenario: &lt;br /&gt;
* Diamond is moving with negative velocity.&lt;br /&gt;
* The timer trips, so now there's a risk in continuing in this direction.&lt;br /&gt;
* He begins to change direction, eventually hitting zero velocity (or, rarely, as high as +1). &lt;br /&gt;
* He notices he's changed direction (because zero is the other direction) and resets the timer, meaning now there is a risk with changing direction.&lt;br /&gt;
* But he compares possible movement direction against that of one tick ago, which is a negative velocity, so he thinks that way is the &amp;quot;same&amp;quot; direction.&lt;br /&gt;
&lt;br /&gt;
In short, the direction changing worked fine when moving with positive velocity, but for negative velocity, it was more likely to just stop and then continue in that direction. At this point, I've just removed this timer and tuned the other randomizing factor (risk from recent locations) a bit more.&lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 15:32, 26 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== One thing at a time ==&lt;br /&gt;
&lt;br /&gt;
The changes in 1.12 and 1.121 are a great example of why you should follow the &amp;quot;one change at a time&amp;quot; dogma. From 1.072 (best version at the time) to 1.08, I removed one thing: risk from recent enemy locations, and added another: risk factor based on damage given to enemy. 1.08 went down 0.1% APS, so I thought, &amp;quot;well that's barely beyond the margin of error, I'll just leave it&amp;quot;. From 1.115 to 1.12, I restored the risk to recent enemy locations and saw a .25% APS drop. From 1.115 to 1.121, I removed the damage given risk factor and am seeing a .4% APS gain (pairings almost complete). Yay! --[[User:Voidious|Voidious]] 18:25, 27 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Bah, a few more battles and it's not even above 1.115. I guess I should be patient (still only at 1,000 battles). Oh well... =) --[[User:Voidious|Voidious]] 21:14, 27 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== One-on-one ==&lt;br /&gt;
&lt;br /&gt;
At least you start working with One-on-one! &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 14:49, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just a little bit to keep myself sane. =) Melee is really hard. Spending a day on 1v1 is therapeutic because I actually know what I'm doing. =) --[[User:Voidious|Voidious]] 14:56, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Also, I know I've covered this topic ad nauseum already, but I just have to vent: [[Curve Flattening|flatteners]] are so evil!! They entice you with their 50+ scores against CC in the [[Movement Challenge 2K6|MC2K6]] and then they destroy your RoboRumble rating... =) --[[User:Voidious|Voidious]] 16:02, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Evil?!? Not if going for PL ;) --[[User:Rednaxela|Rednaxela]] 18:52, 1 June 2009 (UTC)&lt;br /&gt;
:: Yeah, yeah, that's what the devilish flattener always says! =) Just kidding, obviously I'll try to tune it better. But they sure are touchy buggers. --[[User:Voidious|Voidious]] 19:13, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Once you get them tuned they can actually give you points. I know on [[DrussGT]] the flattener gives a good 5 ELO points at least. The trick is putting your bot against the enemy with the lowest hitrate that you would want the flattener enabled against ([[Ascendant]] comes to mind) and then putting the threshold just a tiny bit below that. --[[User:Skilgannon|Skilgannon]] 19:56, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Yeah, I've tested removing the flattener from [[Dookious]] and it costs me points (I think it was about 5, too, not to mention killing PL score). The thresholds there are really well tuned and conservative. I'm just feeling greedy now. =) I think I'm going to try to come up with something more clever than just hit percentages (even my carefully normalized ones), like measuring the adaptation rate of the enemy gun, for enabling criteria. Turning the flattener back off when the enemy hit-% drops below the threshold (as I do in Dookious) seems silly from one perspective, because it could just mean the flattener's working, but I've always felt that permanently enabling it carried too much risk. --[[User:Voidious|Voidious]] 20:05, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Hmm... Normalized hitrates... I should compare those used in RougeDC's firepower selection with the ones you use for flattener enabling :) --[[User:Rednaxela|Rednaxela]] 01:10, 2 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: I tally bullets fired as normal, but bullet hits are weighted by distance and precise escape angle range. So a bullet hit from twice as far away or in a situation with twice as big a max escape angle would count as two hits. (''Edit: Oh yeah, I also subtract 1 from bullets fired for onBulletHitBullet.'') For my bullet power management experiment in Dookious 1.60, I normalized out the same stuff in a different way, but I didn't use precise max escape angles, because I was feeding the escape angle into a formula for testing 300 bullet powers each tick. =) --[[User:Voidious|Voidious]] 01:31, 2 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I've also been thinking about ways to make the flattener smarter, and one was by enabling it when entropy shows that it is predicting where they will shoot better than the regular hit surfing. I haven't tried it yet though. --[[User:Skilgannon|Skilgannon]] 20:33, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, nearly 1% APS improvement with Dooki's gun, meaning more than half the difference between Diamond and Dookious lies in the gun. I guess the movement is already capable of some pretty nice PL performance, too. Exciting! --[[User:Voidious|Voidious]] 13:59, 13 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MeleeRumble cruelty ==&lt;br /&gt;
&lt;br /&gt;
So I feel 99% certain that 1.196 is functionally equivalent to 1.183, but that's a big discrepancy: [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=voidious.Diamond%201.196&amp;amp;vs=voidious.Diamond%201.183 1.196 vs 1.183]. I recompiled the source I had for 1.183 for a re-release, and it's coming in somewhere between: [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=voidious.Diamond%201.183b&amp;amp;vs=voidious.Diamond%201.183 1.183b vs 1.183]. A binary comparison of the .class files shows that they are all the same besides one which I never update, so I'm confident the source is right. The MeleeRumble is a cruel, frustrating beast... --[[User:Voidious|Voidious]] 16:02, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
It does make a big difference score to one robot if you fight it under a set of sample robot (which exist in melee) and a battle full of ABC's, rozu's and justin's robots. Although the difference you point isn't as much as I expected. Perhaps we should have a better way to control the melee score. Perhaps we need to weight the score base on the opponent level (which can take from the ranking). But it's a work. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 17:29, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Multiple gun waves experiment ==&lt;br /&gt;
&lt;br /&gt;
Well, I'm really surprised this worked, and now I'm wondering if anyone else has tried it before. Whenever I fire a gun wave in melee, I now fire an additional gun wave from the last known location of each (still living) enemy (besides the target). The idea is that I can easily collect gun data from the perspectives of all bots on the battle field, and that hopefully, I'll get a better/faster picture of the enemy movements this way.&lt;br /&gt;
&lt;br /&gt;
A couple bug fixes and a bit of polishing later, I had a 0.74% improvement in my test bed from the new gun waves, on top of a 0.14% improvement with the tweak to the &amp;quot;number of bots&amp;quot; weight (also in 1.283). I'm now looking at a ~0.6% APS improvement in the rumble for 1.284 over 1.282, and not too far behind [[Aleph]]. Yay!&lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 15:35, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've thought about something similar before, but I've yet to build a real melee gun. Really nice stuff! What I wonder, is what the results would be like if you added other points like the corners to that list, since many bots move relative to the corners as well... --[[User:Rednaxela|Rednaxela]] 15:43, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Well, with the way my gun records and reconstructs firing angles, firing waves from the corners for that reason wouldn't have the same effect as if you were using GuessFactors. (The enemy movement isn't recorded relative to the wave source, but relative to the enemy's initial heading.) But indeed, firing waves from additional sources is a good idea to try, and you just gave me the idea to try a &amp;quot;heading relative to nearest corner&amp;quot; attribute... --[[User:Voidious|Voidious]] 16:03, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats, that's a huge and clever improvement! --[[User:Positive|Positive]] 15:58, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! Still a ways to go before I catch [[Aleph]] or [[Portia]] 1.13, and I don't even want to think about [[Shadow]] 3.83, but I'm very happy for now. =) --[[User:Voidious|Voidious]] 16:03, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very clever indeed! That kind of specific melee gun idea is exactly what made Shadow finally break away from Aleph in the rumble. You (and Positive) are not as far from Shadow as you might think, imo. --[[User:ABC|ABC]] 16:58, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MeleeRumble 2nd place ==&lt;br /&gt;
&lt;br /&gt;
It seems that no-one noticed, due to the ....Hawk hype, that Diamond passed [[Aleph]] and reached second place. Congratulations [[Voidious]]! And do I read the results of DiamondHawk correctly if I state that your movement is better than [[Shadow]]s, but your gun is holding you back?? --[[User:GrubbmGait|GrubbmGait]] 05:38, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks for noticing. =) However, [[Portia]] 1.13 actually still has 2nd place by a small margin if he were un-retired. I'm still pretty excited about passing Aleph, though! And yes, I'm surprised by how many points I have left in my gun (and working on it now =)). If the *Hawk results translate linearly, this would put Diamond's movement ahead of Shadow 3.84, which is really exciting (even to be close!), but still a little behind 3.83. --[[User:Voidious|Voidious]] 05:44, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: How about ask ABC to create Shadond? I'm curious if he will get to the throne (or even SHA3.83?) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 13:47, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Now you know what I meant by you and Positive being closer to Shadow than you thought ;). Shadow 3.83 melee movement is just a normal (and very old) Minimum Risk movement, the melee strategy page on this wiki has long contained all the tricks I use. Aleph's movement has probably always been slightly better than Shadow's, but my gun made the difference. At this time I suspect that the strongest combination would be my gun with Portia's movement. --[[User:ABC|ABC]] 15:00, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well, perhaps the very strongest combination would be... Shadow's gun, Portia's Melee movement, and Diamond's 1v1 movement, but the 1v1 part would only make a small difference I'm sure... :) --[[User:Rednaxela|Rednaxela]] 15:04, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Nah, DrussGT's movement is stronger than Diamond's 1v1. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 15:16, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
ShadowHawk and DiamondHawk gave me a pretty good idea where my gun and movement stand, so I don't feel a need to request Shadond. (That is a hilarious name, though.) I'm quite content to wait until I can challenge Shadow myself. =) ABC (or Positive) is free to make a hybrid if he likes - my code is very pluggable, as always. 1.30 is officially at #2 now, so maybe I'll focus on 1v1 for a bit. =) --[[User:Voidious|Voidious]] 15:21, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: The only obstacle is RWPCL. So unless you officially gave them permissions, they can't =) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 15:32, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Oh bah, the statement &amp;quot;ABC (or Positive) is free to&amp;quot; is good enough for all intents and purposes :) --[[User:Rednaxela|Rednaxela]] 15:47, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
(Edit conflict) Diamond 1.30 has definitely passed Portia 1.13 now, so congrats on reaching 2nd place! It's interesting to think about what combination would be best. I think Shadow's movement and gun are quite good for the first few turns of a 1v1 fight, because they don't wait for waves to reach the target (something GF-targeting does have to wait for). In melee, you often only get a few shots while down to 1v1, so it's extra important to have a quick start. --[[User:Positive|Positive]] 15:27, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! I don't understand, why would GF targeting have to wait for waves to reach the target before firing? Diamond sometimes stays still for a moment when it gets down to 1v1, but I'm not really sure why, actually... I should investigate that. --[[User:Voidious|Voidious]] 19:51, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: What I mean is that GF-guns can only use a simple targeting method to aim before they have any data, and they only have enough data to make an informed shot after a few waves have hit. A pattern matching can already detect and simulate movement (for example, stop 'n go) before its first waves hit. --[[User:Positive|Positive]] 21:45, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Oh, of course. But in a Melee battle, you can still use the targeting data you collected during Melee when it gets down to 1v1, right? I don't see why a GF gun can't use that Melee data (as I'm sure Shadow does). Shadow is an awesomely quick learner, though, there's no doubt about that. --[[User:Voidious|Voidious]] 21:56, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: That's true, you could use a combination of the melee data and new data. However, I think most advanced robots behave or will behave differently from melee in 1v1, so it will be or is better to use new data as fast as possible. Also, if you look at Shadow's debugging graphics, it seems like it doesn't use the melee data. :P --[[User:Positive|Positive]] 22:06, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Really? Interesting. Diamond uses &amp;quot;number of bots&amp;quot; as one of its gun dimensions, so 1v1 data is favored, but it uses whatever it has. If I were using GF + VCS, I would probably sum a lower-weighted buffer that doesn't segment on # of bots and a higher weighted one that does, so it would have something to work from before collecting the 1v1 waves. =) --[[User:Voidious|Voidious]] 22:11, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh, very nice - congrats!  Perhaps this will trigger the release of Shadow 3.85?  --[[User:Darkcanuck|Darkcanuck]] 15:56, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I sure hope not... =) --[[User:Voidious|Voidious]] 19:51, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, 1.31 is 0.4 APS from Shadow 3.84, congrats! Now I really have to see if I can squeeze some more points from Shadow's gun/movement. --[[User:ABC|ABC]] 12:30, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! =) Now that I've got it working, your Melee Gun design is so powerful, it almost feels dirty. Thanks for sharing. I'll probably focus on 1v1 for a bit now, anyway. And seeing as rating points are so much harder to find as you ascend towards #1, I think 3.83 still has a pretty solid lead over Diamond. --[[User:Voidious|Voidious]] 17:09, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I just noticed, you are now second in both melee and 1v1 =) Great work you've been doing on Diamond. I'm curious, how much do your melee and 1v1 code interact? For instance, at the end of a melee when there are only 2 bots left (1 being Diamond), does your 1v1 movement kick in with no values? Or does it have some sort of idea where the enemy will be aiming due to it's observations during the melee? --[[User:Skilgannon|Skilgannon]] 17:59, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! While there's nothing quite like being #1 ;), I'm really satisfied with Diamond's progress. It's also great fun having active competition from [[User:Positive|Positive]], [[User:ABC|ABC]], and [[User:Jlm0924|Justin]]... Hopefully, I can give you that &amp;quot;pleasure&amp;quot; on the 1v1 side sometime. =) I know it gets lonely up there. As to your question:&lt;br /&gt;
:* On the movement side, they are totally separate, much like you said. When it gets to 1v1, the surfing kicks in with preloaded [[Head-On Targeting|HOT]]-avoidance, not knowing anything from melee bullet hits. Of course it saves surf stats per-enemy across rounds, too. If I had some [[Portia]]-style melee bullet dodging, I'd surely try to integrate it more, but as of now, Diamond's melee movement doesn't even notice energy drop.&lt;br /&gt;
:* On the gun side, they are more integrated. One of the gun dimensions is number of bots alive, but it doesn't discard melee data for 1v1 scenarios or vice versa. Wall distance is calculated differently (though recorded in the same slot), I use different weights when aiming (including some dimensions being used in only 1v1 or melee), and now the melee gun uses the [[Shadow/Melee Gun]] technique.&lt;br /&gt;
: --[[User:Voidious|Voidious]] 19:10, 29 August 2009 (UTC)&lt;br /&gt;
:Hmm. So the gun works pretty optimally between melee/1v1 but the movement doesn't. The movement I've been working on expands seamlessly from 1v1 to melee, with full surfing capabilities, and full learning based not only on hits to yourself, but to all other bots that you can scan. The logic is amazingly complex, with decisions about bullet hits needing to be deferred until more data is collected and checked for bullet bonuses etc, but I see no reason (aside from CPU limits) why it isn't perfectly viable to learn how everybody is shooting all at once =) This is the main reason I haven't progressed that far with it - it's such a massive project that I'm not sure where to begin, and I'm also scared that I'll spend several hundred hours in development and then the whole thing will be a flop =) --[[User:Skilgannon|Skilgannon]] 20:35, 29 August 2009 (UTC)&lt;br /&gt;
: Sounds very cool, and very ambitious. =) I see how a lot can be approximated about enemy targeting during melee, I'm just very skeptical it can be precise enough to be useful for [[Wave Surfing]], which thrives on ultimate precision. But [[Portia]] has found a lot of success, ABC is trying likewise, and it sounds like Rednaxela has some good melee dodging now too, so maybe it's worth a shot. Good luck, in any case - it'd be way cool to see you enter the melee arena. --[[User:Voidious|Voidious]] 21:30, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I just saw that Diamond 1.31 is PL king at the moment (100% Pairs won), congrats! --[[User:Positive|Positive]] 00:14, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks... Though the top bots are so always so close and I release so many versions, it was bound to happen eventually. =) Likewise, great work with Portia 1.19 - great way to start the semester, eh? Cheers, --[[User:Voidious|Voidious]] 02:30, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Performance Enhancing Bug in 1.32 ==&lt;br /&gt;
Hm, well it seems that the bug fixed in 1.323 was slightly performance enhancing, and thusly says to me that something isn't ideal about using inverse-distance weighting for scans... Hmm... --[[User:Rednaxela|Rednaxela]] 14:58, 31 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yeah, I don't know what's up with that. It's not that far beyond the margin of error, but still, I was hoping for a boost. I'm rewriting a lot of my data logging / danger projection into a bigger / badder system, anyway, so I actually don't care all that much. (It was actually while writing up my new system that I noticed this bug.) For what it's worth, in my experience, weighting scans by inverse distance is quite essential against simple targeters, where your most similar scans tell you exactly where the danger is and the rest are just noise. --[[User:Voidious|Voidious]] 15:30, 31 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well, I've found in various experiments over time that weighting scans some function of distance is essential indeed, but that a simple inverse is suboptimal. --[[User:Rednaxela|Rednaxela]] 16:07, 31 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
What, according to your experiments would be closer to optimal then? The inverse of some power of the distance perhaps?--[[User:Navajo|Navajo]] 22:01, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm also curious to hear what Rednaxela thinks... I used to use inverse square root of distance in [[Lukious]], and I think [[User:Skilgannon|Skilgannon]] tends to prefer inverse manhattan distance. Diamond is one of the strongest DC movements and is currently using a simple division by distance, for whatever that's worth. (In terms of rumble points, I think it just passed [[Hydra]] for the strongest DC movement.) &lt;br /&gt;
&lt;br /&gt;
Semi-off-topic ramblings: I think we end up tuning around a lot of arbitrary things in our very complex bots, so when we change something and lose points, we think the change was universally &amp;quot;bad&amp;quot;, when it really was just bad in our specific case. That's just a hunch, partially based on how often I and others tweak values that we've never tweaked and (seem to) find that our first instinct for that value cannot be improved upon.&lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 23:00, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (OT) I was just thinking the same -- 99% of my tweaks end up with similar or slightly worse performance, it's usually the bigger changes that yield results. --[[User:Darkcanuck|Darkcanuck]] 03:41, 2 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes, sometimes I make a change that when tested with several seasons yields some APS gain and I never upload a version of YersiniaPestis (after 1.3.7) that is not able to beat all my test bed bots on average, but on the rumble luck plays a huge role. Right now version 3.0 loses to Locke, and I haven't tested against him, but I'm most confident that if they fight some more times that would change, the only reason I haven't really cared about that is because Shadow is currently losing to two bots :). --[[User:Zyx|zyx]] 04:09, 2 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well, I had the most success with things like 1/distance^n or 1/n^distance type things for some magic tweaked value of n. What I found most interesting of all though, was that the best values were '''highly''' specific to the dimensions and surfing algorithm in question. When I said that I found simple inverse to be suboptimal, I didn't really have anything very specific in mind that I expected to be better for Diamond, but I had a doubt reinforced by this PerformanceEnhancingBug, that it was quite unlikely that a plain inverse was being truly optimal --[[User:Rednaxela|Rednaxela]] 05:59, 2 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wavesurfing Views ==&lt;br /&gt;
&lt;br /&gt;
I'm curious... what do you mean by wavesurfing views? Multiple kd-tree weightings, the results of which are composition into an overall profile perhaps? --[[User:Rednaxela|Rednaxela]] 14:40, 3 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yeah, basically. I had trouble coming up with a word for it. A &amp;quot;view&amp;quot; consists of a distancing function, attribute weights, cluster size, max size (before cycling out old points), its own tree, and some other stuff like enablement criteria (hit percentage threshold, flattener mode). I already had some of this stuff in my movement, but it was hard-coded. Now it's easy for me to add/remove/change these multiple views. And yes, I now have a bunch more of them weighted and layered at all times. --[[User:Voidious|Voidious]] 14:55, 3 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Diamond 1.392 ==&lt;br /&gt;
&lt;br /&gt;
'''Wow!''' Diamond 1.392 is doing great so far! Looks like it will take the throne! I really wonder how DiamondHawk would score with those tweaks... and I'm really surprised you never waited till aimed before --[[User:Rednaxela|Rednaxela]] 00:56, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks. =) Still quite a few battles to go, but my fingers are crossed. Before, I'd wait for the gun to be turned only when it got down to 4 bots or less. Maybe ignoring it very early in the round is still a good idea, but I guess that was way too late... Assuming these 700 battles aren't a fluke, I'll post an updated DiamondHawk tomorrow. --[[User:Voidious|Voidious]] 01:05, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: 425 battles to go and Diamond holds the top spot with a narrow 0.2% APS margin...  --[[User:Darkcanuck|Darkcanuck]] 04:36, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: At least it doesn't have to fight mini/microbattles ;-)  Congrats man, seems that you have acheived the impossible. --[[User:GrubbmGait|GrubbmGait]] 06:02, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Congrats! It's amazing how such a simple change codewise can make such a large difference. I'm definitely going to try to catch up. :) --[[User:Positive|Positive]] 10:03, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congratulations, you did it! So much time wishing for some melee competition, I finally got what I asked for ;). Now you defend that throne the best you can, there are other very strong contenders coming for it. --[[User:ABC|ABC]] 10:45, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats. Updating [[wikipedia:Robocode|Wikipedia]] page, but still leave best overall megabot to Shadow. &amp;amp;raquo; [[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] &amp;amp;raquo; 11:15, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks guys! I still feel [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=voidious.Diamond%201.392&amp;amp;vs=abc.Shadow%203.83 Diamond 1.392 vs Shadow 3.83] is a bit too close to call, but even a draw makes me pretty ecstatic. =) --[[User:Voidious|Voidious]] 12:51, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Information on the wikipedia is current meleerumble kings so it is Diamond. &amp;amp;raquo; [[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] &amp;amp;raquo; 13:18, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, but I still feel free to have my own view of things. =) --[[User:Voidious|Voidious]] 13:21, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Great work on Diamond. I just have to hope you don't make a similar push in 1v1 =) --[[User:Skilgannon|Skilgannon]] 14:30, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats on your new shiny crown. --[[User:Zyx|zyx]] 14:37, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I didn't thik anyone would beat Shadow this soon, but you did it, congratulations, it is great. --[[User:Navajo|Navajo]] 20:47, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well then, it also seems that you've stolen my recently obtained title of &amp;quot;Strongest Melee Gun&amp;quot; from me with this tweak... I may have to delay the full release of Glacier further than I had initially planned in order to fix this... :) --[[User:Rednaxela|Rednaxela]] 00:15, 22 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I noticed some bugs in my melee bullet power selection code and I've been obsessing over it since. It's there in 1.392 and since 1.382. The most glaring one is setting bulletpower=2.999 ''if enemiesAlive &amp;lt;= 7'', instead of &amp;gt;= 7. Attempts to fix/update bullet power have all lost points, but leaving the silly logic doesn't sit well with me. 1.393 and 1.395 both showed improvement in my test bed over a significant number of seasons, but lost points in the rumble. Argh, maybe I'll just leave it for now... it's not the most exciting thing to work on. --[[User:Voidious|Voidious]] 13:09, 23 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't think that setting should result badly per se. At the start of the game robots move a lot (go to corners, etc.), so they might be harder hit with slow bullets. Somewhat later they settle in more static positions when bots aren't constantly dying. With Portia I tried to avoid using 3.0 bullets as much as possible, and made it use 2.5 bullets for that reason. By the way, I have a similar 'bug' in Portia's targeting: it prefers using the first few results of the KdTree search, but those results aren't ordered on lowest error. 'Fixing' it causes point loss, and I have no idea why. --[[User:Positive|Positive]] 15:39, 23 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== BulletPower ==&lt;br /&gt;
&lt;br /&gt;
Hmm... 1.40 seems to be performing ''almost'' as good as 1.392, though not quite. Hooray for PerformanceEnhancingBugs. I've lately found that even seemingly minor/improving BulletPower tweaks can cause nightmarish (IMO) score drops in melee rumble. By the way, mind if I test out Diamond 1.40's bulletPower choosing in a GlacialHawk 1.11 release? (and as an aside, it seems that GlacialHawk 1.10 has [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=ags.muse.GlacialHawk%201.10&amp;amp;vs=wiki.DiamondHawk%201.02 stolen] the 'Strongest Melee Gun' back, even if only by a small margin :)) --[[User:Rednaxela|Rednaxela]] 17:40, 24 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I noticed, congrats. =) Feel free to borrow the bullet power - I'm curious too. I'm chalking up 1.392 and 1.40 as equal, as it's pretty close, so I can rest easily again. (1.40's Wave Surfing is also slightly weaker, but not sure it's enough to matter in melee.) --[[User:Voidious|Voidious]] 17:50, 24 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hmm... seems that GlacialHawk's bulletPower calculation is stronger in melee rumble overall, but weaker in battles with the stronger bots. Actually, it's just a very slightly modified HawkOnFire bulletPower calculation, which is far slimmer in code, but seems well-tuned overall for melee. As a side note, I find it somewhat amusing how Hypothermia is stronger in melee, yet is less than 1/4th of DiamondFist's code even when only stripping out the non-melee and anti-surfer modes :) --[[User:Rednaxela|Rednaxela]] 15:16, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: [Edit conflict] You do know that size doesn't matter ?  ;) Personally I have never found it worth the effort to investigate different bulletpower schemes, so I still fire full-power at close range, 1.9 at medium and peas at large distances. --[[User:GrubbmGait|GrubbmGait]] 15:32, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I know size doesn't matter. I'm interested in simplicity, not code size. :) --[[User:Rednaxela|Rednaxela]] 15:57, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I must say, it's nice to see you don't have lots of points in a simple bullet power tweak. :-P DiamondFist definitely has some bloat right now from recent gun experiments, but I don't obsess much over code size, anyway... And I'm not sure I agree with your measurement: it looks like GlacialHawk 1.11 is just over 50% the code size of DiamondHawk 1.02 (12302 vs 23435). --[[User:Voidious|Voidious]] 15:30, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Well, I once compared lines of code between the core functionality of each gun, rather than codesize. I suspect the discrepency is due to things like 1) Enemy status/history storage is more seperated from the gun in Glacier, 2) Both including significant amounts of code that are not a core part of gun functionality, and 3) Different code style. I think comparing the gun package only would make GlacialHawk appear much leaner (not that the other parts don't matter equally) --[[User:Rednaxela|Rednaxela]] 15:57, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Rating order ==&lt;br /&gt;
&lt;br /&gt;
It would be good if you keep your rating order the same. I mean, sometimes you put MeleeRumble first but sometimes you put RoboRumble rating first. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 14:57, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I do mean to put MeleeRumble first always, but I did a bunch of them at once and used the wrong order, apparently... Thanks for the heads up. --[[User:Voidious|Voidious]] 14:58, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== DV vs GF ==&lt;br /&gt;
&lt;br /&gt;
I wonder what if you switch Diamond's kNN 1v1 gun to GF, how much will you gain? Because you say that the performance of TripHammer increased a lot when you switched to GF from DV. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:10, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think it would gain some in the TC, but not much in the rumble. Even when TripHammer was at 90.56 in TCRM vs Diamond's Main Gun at 89.85, using TripHammer in the rumble gained me almost nothing. Also, since TripHammer and Diamond share a ton of code, the TripHammer KNN test that got 91.20 in the TCRM could just as well be called Diamond + GF + different cluster size + TripHammer's kernel density. --[[User:Voidious|Voidious]] 15:18, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Diamond 1.461 ==&lt;br /&gt;
&lt;br /&gt;
Congrats on passing Dookious! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:03, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks, I'm pretty stoked! =) On the other hand, I could try rolling those changes back into Dookious, too... --[[User:Voidious|Voidious]] 15:06, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow! Interesting that it increased your score so much, in [[DrussGT]] I settled on a 'best distance' of 500 but I never really experimented with it beyond the [[MC2K7]]. --[[User:Skilgannon|Skilgannon]] 16:30, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'm surprised, too. The first change I tested was to 450, but the score dropped so much in my test bed that I tried the opposite =), and saw a nice improvement. The attack angle changes came out even in my test bed, but I prefer one mode to two. --[[User:Voidious|Voidious]] 17:18, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Congrats, I would have to test something like that, but the best desired distance for [[YersiniaPestis]] so far is 400, I set it to 450 and it already drops a lot of score (especially PL wise). But I've always though is because my gun is pretty bad compared to top guns, and the movement is what gives me the edge, so being relatively close allows me to increase my hit rate without being hit that much. If I set it to ~370, it crushes [[Shadow]], about 60% on average, but [[Dookious]] and [[DrustGT]] feast on him. --[[User:Zyx|zyx]] 05:53, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought that when you fight more aggressively, you get better PL but worse APS and vice versa. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 12:53, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I figured it was inevitable that you'd eventually top Dookius.  Now, do you have enough tweaks left to topple [[WaveSerpent]] and [[DrussGT]]?  =)  --[[User:Darkcanuck|Darkcanuck]] 17:58, 18 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Precise intersection (1.47*) ==&lt;br /&gt;
&lt;br /&gt;
This precise intersection stuff is cool, even though it seems like sooo much code for such a tiny detail! Calculating the line segment / circle intersections was the first algebra I've done by hand in years. =) Really surprised by some of these results...&lt;br /&gt;
&lt;br /&gt;
* [http://darkcanuck.net/rumble/RatingsDetails?game=roborumble&amp;amp;name=voidious.Diamond%201.47 1.47] - Totally lame and imprecise implementation, not surprised it did poorly.&lt;br /&gt;
* [http://darkcanuck.net/rumble/RatingsDetails?game=roborumble&amp;amp;name=voidious.Diamond%201.471 1.471] - Real [[Waves/Precise Intersection|precise intersection]], simulating the given movement option until the wave totally passes. Uses center of angular range as the firing angle, half the range as the kernel density bandwidth.&lt;br /&gt;
* [http://darkcanuck.net/rumble/RatingsDetails?game=roborumble&amp;amp;name=voidious.Diamond%201.472 1.472] - No precise intersection. Use the angle from wave source to bot center on the first tick that the wave could hit the bot, use (18 / predicted distance) for kernel density bandwidth. (This is how I've done it for ever...)&lt;br /&gt;
* [http://darkcanuck.net/rumble/RatingsDetails?game=roborumble&amp;amp;name=voidious.Diamond%201.473 1.473] - Precise intersection, but instead of predicting the movement option until the wave passes, predict slamming on the brakes as soon as the wave could hit the bot. My rationale is a little complicated and specific to my exact surfing, but it's basically like this:&lt;br /&gt;
** I want to consider how dangerous it is to choose this movement option. That may not include going full speed through the whole wave passing, which will create a large bot width.&lt;br /&gt;
** Slamming on the brakes once the wave starts passing will minimize bot width, and thus projected dangers (not always, but in most cases, I am guessing).&lt;br /&gt;
** Once the surfing really does reach the first tick the wave intersects the bot, it will predict one tick into the future for each movement option, then (just for precise intersection) slamming on the brakes until the wave passes. So it will eventually consider going full speed through the wave, or when to really slam on the brakes.&lt;br /&gt;
** I'm really shocked how well this worked. Will go hunting for other explanations (read: other bugs =)) later. &lt;br /&gt;
* Note that my &amp;quot;slam on the brakes&amp;quot; precise intersect prediction is a separate branch from my main precise prediction. I also want to try predicting a slam on the brakes only after wave has passed center.&lt;br /&gt;
--[[User:Voidious|Voidious]] 17:43, 22 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have similar logic in [[YersniaPestis]], but for every tick. On every tick I see what happens if I start stopping, so the actual decision is how many ticks until I have to break is the least dangerous option on each direction and keep the smallest of those two. --[[User:Zyx|zyx]] 19:24, 22 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Waves/Precise_Intersection&amp;diff=13551</id>
		<title>Talk:Waves/Precise Intersection</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Waves/Precise_Intersection&amp;diff=13551"/>
		<updated>2009-10-20T20:51:16Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Wave Surfing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{CreditForOldWikiArticle|oldpage=Rednaxela/SuperBotwidth|author=[[User:Rednaxela|Rednaxela]]}}&lt;br /&gt;
{{CreditForOldWikiArticle|oldpage=Garm/BotwidthCalculation|author=[[User:Krabb|Krabb]]}}&lt;br /&gt;
{{CreditForOldWikiArticle|oldpage=Skilgannon/PreciseIntersect|author=[[User:Skilgannon|Skilgannon]]}}&lt;br /&gt;
&lt;br /&gt;
== Wave Surfing ==&lt;br /&gt;
&lt;br /&gt;
So far I know a few robots use Precise Intersection in their wave surfing. Unfortunately their code is either too messy (Wintermute) or too granular (RougeDC) that I don't know which class to look. So I asked here. (Diamond is too new to look into for this)&lt;br /&gt;
&lt;br /&gt;
Normally you surf waves 'till the wave passed ''centre'' of the robot. But with precise wave intersection, in order to gain pixel-perfect surfing, you need to surf the wave until they passed the robot. So if anybody does this or the other way? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 11:20, 20 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I was planning to add all 3 to [[Wintermute]], ie, branch when the wave first strikes, branch when the wave passes midway, and branch when the wave exits, but after adding in a stop branch for every tick on the second wave it was too slow to do that without skipping turns. I think it now branches at the mid-point only...--[[User:Skilgannon|Skilgannon]] 13:21, 20 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My experience, precise intersect or not, is that I've seen a measurable decrease in performance any time I try surfing waves any longer than I do now. I surf until they are less than one bullet velocity away, meaning they will pass my center before I can move again. I have some thoughts on this. If you weight by distance or by time to impact, the weight of the wave after it passes your center will be very high, while the chance of it hitting you if it hasn't already is very low. Giving it less weight somehow might help. Also, be careful not to give it negative weight, since your time to impact or distance calculation may give a value less than zero. --[[User:Voidious|Voidious]] 13:32, 20 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
If you guys surf the wave only half-way, then how are you calculating precise botwidth in the danger calculation? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 14:33, 20 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: In Diamond 1.47's bot width calculation, I start with the first tick the bullet will cross my front bumper and go until the tick where it will cross my center. I tried until it crossed the rear bumper and it performed worse. Again, it's probably because it's so rare you will be hit there that weighting all the ticks evenly is just inaccurate, probabilistically. The next iteration of my precise intersect experiments doesn't have that issue, and I will again try considering all possible intersections. --[[User:Voidious|Voidious]] 14:52, 20 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
In [[YersiniaPestis]] I surf the wave until it passes completely, if I don't it gets hit more by simple targeters, I think is because YP doesn't go that far from the danger spots so when it starts surfing the second wave it ran towards the bullet near him. But as far as having a precise window calculated, you can keep track of the waves until it passes you even if you don't consider that wave for surfing it anymore. --[[User:Zyx|zyx]] 20:51, 20 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Wave_Surfing&amp;diff=13502</id>
		<title>Talk:Wave Surfing</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Wave_Surfing&amp;diff=13502"/>
		<updated>2009-10-17T19:43:57Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Questions */ not always, but most of the time&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Next Level ==&lt;br /&gt;
&lt;br /&gt;
Quite a while ago I had an idea that could bring Wave Surfing to a new level, but I never got around to implementing it. Since the wiki's been quiet the last few days, I thought perhaps something like this might provide a kick to get things rolling again. My idea is Wave Surfing with a twist: not only do you surf the wave(s) that have been fired, but you also take into consideration the waves that have not yet been fired. By predicting your movement, you can predict what the enemy will see, and thus by looking at your movement stats you can see where they are likely to fire. Now, for the interesting part: by varying where you go, not only do you vary what GFs you reach, but you also vary what the enemy sees, and thus where they shoot. Danger can be calculated not only as a low point on a graph, but also on the entropy of the enemy's firing stats when presented with this movement. The more peaked the profile, the better this movement option (provided we can get to a low point). A system like this could basically 'figure out' how to do a movement type like [[Stop And Go]], and probably other amazing types of movement we haven't thought of yet. There! How's that for some food for thought? =) --[[User:Skilgannon|Skilgannon]] 20:23, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Some interesting thoughts here. I'm initially skeptical (as usual =)) because it reminds me of the diminishing returns on surfing waves beyond the first couple. But ignoring that... One hurdle with this is that while you can predict your own movement, you can't (accurately) predict the enemy's movement, which also impacts what they &amp;quot;see&amp;quot; -- distance, lateral velocity, wall distance, etc. depend on enemy location as well as your own. It's a funny thought to use your gun to predict their movement to assist in your own movement. =)&lt;br /&gt;
&lt;br /&gt;
So let's say you can guesstimate the enemy movement -- and maybe the full range of their movement options are pretty similar for our purposes anyway. So for each of my movement options, I'd figure out if/when the enemy would fire (based on gun heat) during that prediction, check my stats of the enemy's bullets fired / bullets hit, factor in the precise max escape angle of that firing situation, and multiply the probability he would hit into the danger calculation. Kinda similar to how many of us factor in distance (and maybe instead of distance, since these two factors would not be independent). I'm still skeptical, but this sounds really interesting!&lt;br /&gt;
&lt;br /&gt;
Good to see I'm not the only one still pondering the next big thing. =) I still want to find a breakthrough in [[Anti-Surfer Targeting]]... I know it's there! &lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 20:52, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Gaff's anti-surfer score in the [[TC2K7]] isn't enough?  I have a dev. version that scores 82.93 against surfers (15 seasons) but worse overall once the random movers are averaged in.  If you create a new [[Anti-Surfing Challenge]] I'll be happy to keep looking for improvements.  =)  --[[User:Darkcanuck|Darkcanuck]] 21:49, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Hmm, those are some pretty sick scores. Besides the scores themselves, it's particularly impressive that you nail [[Shadow]] ''and'' [[RaikoMX]] so well with one gun. I'm guessing not by the description, but do you simulate enemy surf stats in any way? That's the main area where I think a breakthrough might await, but even my best efforts haven't yielded much. That Anti-Surfing Challenge sounds pretty appealing, actually, even if it will do squat in closing the gap to [[DrussGT]]. =) --[[User:Voidious|Voidious]] 00:34, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, I'm very pleased with that gun.  There's no simulation involved, besides a rough calculation of the min + max reachable GFs -- the rest is all NN magic.  I promise to write it up one of these days, I'd like to see what tangents others might take.  --[[User:Darkcanuck|Darkcanuck]] 03:58, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I was once tried simulating the surfer stats, but the result with normal bin smoother will have a load of empty bins that have no data. So you can't really decide where to fire unless, of course, you are simulating a surfer movement too. But next generation Go-To surfer can kill that instantly. Note the next generation go-to surfer is not this next generation wave surfer, it will be like when you may chose a point that close to you, and stay still until the last moment and move to that spot in time when the wave reach or something more that that.&lt;br /&gt;
:: We can have anti-surfer challenge in Challenge 2K9, I think we should have one. I'll continue working on Challenge 2K9 when I have time (October, when the school holiday arrive.) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 05:15, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Yep, you probably shouldn't use ''only'' enemy surf data to shoot at. But there's important data there that I really think can be factored into the gun. I'd definitely account for what GFs they can still reach on each wave (ie, the &amp;quot;simulate their movement&amp;quot; part). I don't think an Anti-Surfer Challenge needs to be a subchallenge of another challenge, since most of our movement and targeting challenges aim to gauge rumble performance, while this one clearly would not. --[[User:Voidious|Voidious]] 13:44, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: If you look closely, the Challenge 2K9 is main challenge plus a bunch of subchallenges. I think most Anti Surfer gun indirectly simulating enemy surf stats already. Since we usually reduce twice on hit, it would result like the simulated enemy surfing stats plus normal stats to decide where to shot in a load of empty bins. However, we can assume that the enemy will not changes its direction until one wave passed over. Then we may assume which direction the enemy will go next, etc. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 14:47, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Fiddlesticks, this was going to be my killer idea once I made a wavesurfing bot!...Creating misleading spikes--[[User:CrazyBassoonist|CrazyBassoonist]] 21:10, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Approaching this from a slightly different direction, you could &amp;quot;snap&amp;quot; your movement to certain points when you know they're about to fire, essentially reducing the resolution of their segmentation. In a single turn you can do that with velocity, snapping it to 8, 5, 2, 0, -2, -5, or -8. In two turns you can also keep acceleration constantly at 0. With a few more turns' warning you could limit velocity to even fewer values. This would be easiest against bots that fire slow, infrequent shots since your movement would be disrupted less often. -- [[User:Synapse|&amp;lt;font style=&amp;quot;font-size:0.8em;font-variant:small-caps;&amp;quot;&amp;gt;Synapse&amp;lt;/font&amp;gt;]] 23:29, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Interesting... for a simple movement (stop&amp;amp;go, flat, singlebuffer flattenerless wavesurf), it is possible to predict a reasonable accurate location in future. Thus it needs a lot of processing so I don't sure if it will run in time. But it may make up to 100 rounds to learn how they move. I never tried (but I'm writing a library that do this in past 2 months. It's call BattlePredictor, originally I will use it for melee)&lt;br /&gt;
&lt;br /&gt;
One thing that should be consider when creating a wave surfing robot that use this generation, it should be totally useless against a simple gun and probably loss score (I'm highly doubt that using this may lead to another performance enhancing bug). &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 01:28, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think you guys might have gone off on a tangent here... I don't think Skilgannon's idea really involves &amp;quot;creating misleading spikes&amp;quot; so much as factoring in which movement profile will be presented to the enemy and trying to choose an advantageous one. A best guess at the enemy's movement would be simple and might work well enough in most situations, so it need not be slow. It would be augmenting normal surfing instead of replacing it, so you shouldn't lose score against anyone. I like the idea of snapping velocity, Synapse; I think you might gain performance against simple learning guns but lose performance against bigger guns (which have fancier segments / attributes that could &amp;quot;see through&amp;quot; the trick). --[[User:Voidious|Voidious]] 13:44, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still if we augment it, not replace, the augmented result can make you drive into danger with some type of gun. I don't know that it will happen, but I highly doubt (with some hunch though) that this will not improved the score. But it doesn't mean that I'll not tried to do it. Synapse, if you limit the acceleration to zero, wouldn't it just goes back and forth? I know that velocity is the most popular segment, if distance isn't. But I don't think there is many guns that use ''n'' ticks acceleration (I know there is some bot use distance in last few/several turns). &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 14:47, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, the velocity and acceleration limitations would only be applied for two turns starting immediately before gunheat zero, so the enemy is forced to put all his battle data into a small number of segmentations. -- [[User:Synapse|&amp;lt;font style=&amp;quot;font-size:0.8em;font-variant:small-caps;&amp;quot;&amp;gt;Synapse&amp;lt;/font&amp;gt;]] 16:19, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
The reason I think this might be a big improvement over regular surfing is against the simple targeters: before we were just acting reactively, responding to the enemy bullets in the air, whereas now we could act pro-actively, by actually forcing bots to shoot where we want them to. This would eliminate all the 'lucky shots' that are the usual cause of being hit, due to not having enough room to manoeuvre (from walls) or being too close to dodge. Against other surfers, this bot could have a large advantage if it stayed at close distances, where it can still predict enemy shots a large number of ticks ahead, but the enemy would only have distance/bulletVelocity ticks to work with. Then there's the false spikes that were mentioned: I don't think these are really feasable, as the only way to make them is to create real spikes, and the more predictable stuff you do, the worse =) --[[User:Skilgannon|Skilgannon]] 16:15, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
:# I don't understand why you use the absolute bearing from two ticks ago. From what I could tell, an enemy fires the tick its energy drop, which is also the tick you detect it, so shouldn't you use the absolute bearing from one tick ago?&lt;br /&gt;
:# To compensate for the edges or not?&lt;br /&gt;
--[[User:Starrynte|Starrynte]] 05:11, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't quite understand the second question, but as number 1 goes. He fired one tick ago, you are right, but he aimed at you two (or even more if he waits the gun to align) ticks ago. Something like this.&lt;br /&gt;
:* Tick 0, enemy calculates an angle to aim (high chance of it being a GF anyway). Sets his gun to turn to that angle.&lt;br /&gt;
:* Tick 1, enemy's gun is now, ideally, aiming at his desired angle. Sets his gun to fire.&lt;br /&gt;
:* Tick 2, you detect enemy's energy drop. You know he fired from his last position, but aimed at you at least two ticks ago.&lt;br /&gt;
&lt;br /&gt;
: Hope it helps. --[[User:Zyx|zyx]] 05:43, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Also not sure what you mean by the second question, but to elaborate on Zyx's explaination: &lt;br /&gt;
:* Tick 0, enemy calculates an angle to aim (high chance of it being a GF anyway). Sets his gun to turn to that angle.&lt;br /&gt;
:* Tick 0-to-1 transition, Robocode engine runs. Moves the enemy and turns the enemy's gun.&lt;br /&gt;
:* Tick 1, enemy's gun is now, ideally, aiming at his desired angle. Sets his gun to fire.&lt;br /&gt;
:* Tick 1-to-2 transition, Robocode engine runs. Moves the enemy and fires.&lt;br /&gt;
:* Tick 2, you detect enemy's energy drop. You know he fired the position after the 1-to-2 transition, but aimed at you during tick 0 (using locations generated in the tick -1 to 0 transition) or earlier.&lt;br /&gt;
&lt;br /&gt;
: I personally find it sometimes helps to conceptualize it to also consider the transitions. Maybe I'm weird though --[[User:Rednaxela|Rednaxela]] 06:29, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
We should have this posted on the page. It is almost exactly the same I asked before. To Red, you are not weird, it helps me too. To make it exactly what most do:&lt;br /&gt;
&lt;br /&gt;
* Tick -2: Enemy aim his gun and call setFire();&lt;br /&gt;
* Transition: Gun is hot so it can't fire. Gun turned.&lt;br /&gt;
* Tick -1: Enemy aim again and call setFire();&lt;br /&gt;
* Transition: Gun is cool now. Robocode execute firing *before* gun turning. Enemy's energy drops.&lt;br /&gt;
* Tick 0: Energy drop detected.&lt;br /&gt;
&lt;br /&gt;
Don't know if it help, though. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 12:02, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand it now - when aiming, the enemy is always using the absolute bearing from the previous tick. Anyways, my second question was whether the fact that GF 1 and -1 have fewer neighbors affected surfing at all, and whether you should compensate for that. --[[User:Starrynte|Starrynte]] 15:43, 17 October 2009 (UTC)&lt;br /&gt;
* Also a third question - you only log a hit in the surfing stats when you are actually hit by a bullet, correct? --[[User:Starrynte|Starrynte]] 15:52, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't think anything is needed to compensate for edges like that. As far as when to log hits, normally you log when you're actually hit, many bots also log BulletHitBullet events since they also reveal where the opponant aimed. If you're making a flattener, the flattener will log every wave whether it hit or not. --[[User:Rednaxela|Rednaxela]] 16:22, 17 October 2009 (UTC)&lt;br /&gt;
* Aahh, finally I understand what a flattener is used for. But hey, I'm only a newcomer ;P --[[User:GrubbmGait|GrubbmGait]] 18:11, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm not sure if they ''always'' use the bearing from two ticks ago, there are bots that predict their and your position for the next tick, maybe some of them use that bearing for aiming, and some use an older bearing if they wait for the gun to align. But the bearing of two ticks ago seems like the most accurate if you have to settle for one of them, and most bots will actually use that one. --[[User:Zyx|zyx]] 19:43, 17 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Diamond/Version_History&amp;diff=13482</id>
		<title>Talk:Diamond/Version History</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Diamond/Version_History&amp;diff=13482"/>
		<updated>2009-10-17T05:53:32Z</updated>

		<summary type="html">&lt;p&gt;Zyx: good job and some distancing comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ELO inaccuracy ==&lt;br /&gt;
&lt;br /&gt;
About &amp;quot;Note: Despite lower ELO, was about .3% APS better than 1.0.&amp;quot;, that's not surprising to me at all. Glicko-2 seems to be far more true to a full-pairing APS than ELO was too. Things like this make me glad the new server doesn't just show ELO like the old one :) --[[User:Rednaxela|Rednaxela]] 22:02, 17 May 2009 (UTC)&lt;br /&gt;
: Although I had second thoughts about setting the APS as standard ranking decisor, I must agree that ELO is not as reliable as it was on the old server(s). Mind you that ELO is calculated slightly different on this server than on the old ones. --[[User:GrubbmGait|GrubbmGait]] 22:11, 17 May 2009 (UTC)&lt;br /&gt;
: ELO scores have recently taken a nosedive, for several reasons.  There has been a lot of new activity recently with lots of bots being updated and a few new ones added in -- that tends to shake things up.  Also, several long-running bots were removed within a short time period, notably pederson.Moron which once anchored the bottom end of the scale.  It's safer to compare APS instead of ELO, especially right now.  --[[User:Darkcanuck|Darkcanuck]] 15:18, 18 May 2009 (UTC)&lt;br /&gt;
: I only pulled Moron because it seemed fairly pointless.  I don't mind if he is returned to shore up a ratings slide, but that seems like giving a cancer patient a Band-Aid.  On a related note, a long time ago I got the notion that the average ELO rating of the old rating system was 1600.  I dropped the ratings list in Excel and confirmed that the ratings averaged to about 1600.  At the time, most people were wondering what I was smoking, dismissing 1600 as anything of relevance.  I recently did another averaging of the ratings and found ELO to average at 1413 and Glicko-2 averages 1608.  Dunno if it really means anything, but ELO certainly doesn't compare to the old ratings.--[[User:Pedersen|Martin]] 16:24, 18 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Avoiding recent enemy locations ==&lt;br /&gt;
&lt;br /&gt;
Well, I found a bug in my risk calculation for avoiding recent enemy locations (fixed but not tuned in 1.071). I really feel like this must be a good idea (because bullets are likely to be headed to those spots), but I hadn't found any rating boost from it yet. Hopefully I can find some points in a re-tuned, bug-free version of this... --[[User:Voidious|Voidious]] 17:25, 21 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== 1.11* bugs / fixes ==&lt;br /&gt;
&lt;br /&gt;
Man, this [[Performance Enhancing Bug]] really drove me nuts, especially since I have so much trouble testing such a little thing. I think I can live with a .15% APS drop in my &amp;quot;bug-free&amp;quot; 1.115 (versus the &amp;quot;buggy&amp;quot; 1.111). I'm sure I'll continue tuning the randomness of his movement in the future, anyway, and I know there are more performance gains to be had elsewhere. This is long and boring, but I feel compelled to write it out, even if just to have the info &amp;quot;out there&amp;quot; somewhere.&lt;br /&gt;
&lt;br /&gt;
The bug was with my random direction change timer. This timer influences the bot to reverse direction at a random interval (with a [[Minimum Risk Movement|risk]] added for disobeying the timer). If the timer trips while the bot is moving with negative velocity, there would be a risk associated with continuing in that direction, and the bot would soon change direction towards positive velocity. Before the timer trips, there's a risk associated with reversing direction.&lt;br /&gt;
&lt;br /&gt;
With the bug, once the velocity went from negative to zero (or positive), it mixed up its directions and thought that negative velocities were the safer direction. This was caused by two things: it always considered zero velocity to be the same as positive, and it was comparing the possible future heading to the heading from one tick ago (instead of heading from the current tick). So here's the problem scenario: &lt;br /&gt;
* Diamond is moving with negative velocity.&lt;br /&gt;
* The timer trips, so now there's a risk in continuing in this direction.&lt;br /&gt;
* He begins to change direction, eventually hitting zero velocity (or, rarely, as high as +1). &lt;br /&gt;
* He notices he's changed direction (because zero is the other direction) and resets the timer, meaning now there is a risk with changing direction.&lt;br /&gt;
* But he compares possible movement direction against that of one tick ago, which is a negative velocity, so he thinks that way is the &amp;quot;same&amp;quot; direction.&lt;br /&gt;
&lt;br /&gt;
In short, the direction changing worked fine when moving with positive velocity, but for negative velocity, it was more likely to just stop and then continue in that direction. At this point, I've just removed this timer and tuned the other randomizing factor (risk from recent locations) a bit more.&lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 15:32, 26 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== One thing at a time ==&lt;br /&gt;
&lt;br /&gt;
The changes in 1.12 and 1.121 are a great example of why you should follow the &amp;quot;one change at a time&amp;quot; dogma. From 1.072 (best version at the time) to 1.08, I removed one thing: risk from recent enemy locations, and added another: risk factor based on damage given to enemy. 1.08 went down 0.1% APS, so I thought, &amp;quot;well that's barely beyond the margin of error, I'll just leave it&amp;quot;. From 1.115 to 1.12, I restored the risk to recent enemy locations and saw a .25% APS drop. From 1.115 to 1.121, I removed the damage given risk factor and am seeing a .4% APS gain (pairings almost complete). Yay! --[[User:Voidious|Voidious]] 18:25, 27 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Bah, a few more battles and it's not even above 1.115. I guess I should be patient (still only at 1,000 battles). Oh well... =) --[[User:Voidious|Voidious]] 21:14, 27 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== One-on-one ==&lt;br /&gt;
&lt;br /&gt;
At least you start working with One-on-one! &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 14:49, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Just a little bit to keep myself sane. =) Melee is really hard. Spending a day on 1v1 is therapeutic because I actually know what I'm doing. =) --[[User:Voidious|Voidious]] 14:56, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Also, I know I've covered this topic ad nauseum already, but I just have to vent: [[Curve Flattening|flatteners]] are so evil!! They entice you with their 50+ scores against CC in the [[Movement Challenge 2K6|MC2K6]] and then they destroy your RoboRumble rating... =) --[[User:Voidious|Voidious]] 16:02, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Evil?!? Not if going for PL ;) --[[User:Rednaxela|Rednaxela]] 18:52, 1 June 2009 (UTC)&lt;br /&gt;
:: Yeah, yeah, that's what the devilish flattener always says! =) Just kidding, obviously I'll try to tune it better. But they sure are touchy buggers. --[[User:Voidious|Voidious]] 19:13, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Once you get them tuned they can actually give you points. I know on [[DrussGT]] the flattener gives a good 5 ELO points at least. The trick is putting your bot against the enemy with the lowest hitrate that you would want the flattener enabled against ([[Ascendant]] comes to mind) and then putting the threshold just a tiny bit below that. --[[User:Skilgannon|Skilgannon]] 19:56, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Yeah, I've tested removing the flattener from [[Dookious]] and it costs me points (I think it was about 5, too, not to mention killing PL score). The thresholds there are really well tuned and conservative. I'm just feeling greedy now. =) I think I'm going to try to come up with something more clever than just hit percentages (even my carefully normalized ones), like measuring the adaptation rate of the enemy gun, for enabling criteria. Turning the flattener back off when the enemy hit-% drops below the threshold (as I do in Dookious) seems silly from one perspective, because it could just mean the flattener's working, but I've always felt that permanently enabling it carried too much risk. --[[User:Voidious|Voidious]] 20:05, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Hmm... Normalized hitrates... I should compare those used in RougeDC's firepower selection with the ones you use for flattener enabling :) --[[User:Rednaxela|Rednaxela]] 01:10, 2 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: I tally bullets fired as normal, but bullet hits are weighted by distance and precise escape angle range. So a bullet hit from twice as far away or in a situation with twice as big a max escape angle would count as two hits. (''Edit: Oh yeah, I also subtract 1 from bullets fired for onBulletHitBullet.'') For my bullet power management experiment in Dookious 1.60, I normalized out the same stuff in a different way, but I didn't use precise max escape angles, because I was feeding the escape angle into a formula for testing 300 bullet powers each tick. =) --[[User:Voidious|Voidious]] 01:31, 2 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I've also been thinking about ways to make the flattener smarter, and one was by enabling it when entropy shows that it is predicting where they will shoot better than the regular hit surfing. I haven't tried it yet though. --[[User:Skilgannon|Skilgannon]] 20:33, 1 June 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, nearly 1% APS improvement with Dooki's gun, meaning more than half the difference between Diamond and Dookious lies in the gun. I guess the movement is already capable of some pretty nice PL performance, too. Exciting! --[[User:Voidious|Voidious]] 13:59, 13 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MeleeRumble cruelty ==&lt;br /&gt;
&lt;br /&gt;
So I feel 99% certain that 1.196 is functionally equivalent to 1.183, but that's a big discrepancy: [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=voidious.Diamond%201.196&amp;amp;vs=voidious.Diamond%201.183 1.196 vs 1.183]. I recompiled the source I had for 1.183 for a re-release, and it's coming in somewhere between: [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=voidious.Diamond%201.183b&amp;amp;vs=voidious.Diamond%201.183 1.183b vs 1.183]. A binary comparison of the .class files shows that they are all the same besides one which I never update, so I'm confident the source is right. The MeleeRumble is a cruel, frustrating beast... --[[User:Voidious|Voidious]] 16:02, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
It does make a big difference score to one robot if you fight it under a set of sample robot (which exist in melee) and a battle full of ABC's, rozu's and justin's robots. Although the difference you point isn't as much as I expected. Perhaps we should have a better way to control the melee score. Perhaps we need to weight the score base on the opponent level (which can take from the ranking). But it's a work. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 17:29, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Multiple gun waves experiment ==&lt;br /&gt;
&lt;br /&gt;
Well, I'm really surprised this worked, and now I'm wondering if anyone else has tried it before. Whenever I fire a gun wave in melee, I now fire an additional gun wave from the last known location of each (still living) enemy (besides the target). The idea is that I can easily collect gun data from the perspectives of all bots on the battle field, and that hopefully, I'll get a better/faster picture of the enemy movements this way.&lt;br /&gt;
&lt;br /&gt;
A couple bug fixes and a bit of polishing later, I had a 0.74% improvement in my test bed from the new gun waves, on top of a 0.14% improvement with the tweak to the &amp;quot;number of bots&amp;quot; weight (also in 1.283). I'm now looking at a ~0.6% APS improvement in the rumble for 1.284 over 1.282, and not too far behind [[Aleph]]. Yay!&lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 15:35, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I've thought about something similar before, but I've yet to build a real melee gun. Really nice stuff! What I wonder, is what the results would be like if you added other points like the corners to that list, since many bots move relative to the corners as well... --[[User:Rednaxela|Rednaxela]] 15:43, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Well, with the way my gun records and reconstructs firing angles, firing waves from the corners for that reason wouldn't have the same effect as if you were using GuessFactors. (The enemy movement isn't recorded relative to the wave source, but relative to the enemy's initial heading.) But indeed, firing waves from additional sources is a good idea to try, and you just gave me the idea to try a &amp;quot;heading relative to nearest corner&amp;quot; attribute... --[[User:Voidious|Voidious]] 16:03, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats, that's a huge and clever improvement! --[[User:Positive|Positive]] 15:58, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! Still a ways to go before I catch [[Aleph]] or [[Portia]] 1.13, and I don't even want to think about [[Shadow]] 3.83, but I'm very happy for now. =) --[[User:Voidious|Voidious]] 16:03, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very clever indeed! That kind of specific melee gun idea is exactly what made Shadow finally break away from Aleph in the rumble. You (and Positive) are not as far from Shadow as you might think, imo. --[[User:ABC|ABC]] 16:58, 24 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== MeleeRumble 2nd place ==&lt;br /&gt;
&lt;br /&gt;
It seems that no-one noticed, due to the ....Hawk hype, that Diamond passed [[Aleph]] and reached second place. Congratulations [[Voidious]]! And do I read the results of DiamondHawk correctly if I state that your movement is better than [[Shadow]]s, but your gun is holding you back?? --[[User:GrubbmGait|GrubbmGait]] 05:38, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks for noticing. =) However, [[Portia]] 1.13 actually still has 2nd place by a small margin if he were un-retired. I'm still pretty excited about passing Aleph, though! And yes, I'm surprised by how many points I have left in my gun (and working on it now =)). If the *Hawk results translate linearly, this would put Diamond's movement ahead of Shadow 3.84, which is really exciting (even to be close!), but still a little behind 3.83. --[[User:Voidious|Voidious]] 05:44, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: How about ask ABC to create Shadond? I'm curious if he will get to the throne (or even SHA3.83?) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 13:47, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Now you know what I meant by you and Positive being closer to Shadow than you thought ;). Shadow 3.83 melee movement is just a normal (and very old) Minimum Risk movement, the melee strategy page on this wiki has long contained all the tricks I use. Aleph's movement has probably always been slightly better than Shadow's, but my gun made the difference. At this time I suspect that the strongest combination would be my gun with Portia's movement. --[[User:ABC|ABC]] 15:00, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well, perhaps the very strongest combination would be... Shadow's gun, Portia's Melee movement, and Diamond's 1v1 movement, but the 1v1 part would only make a small difference I'm sure... :) --[[User:Rednaxela|Rednaxela]] 15:04, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Nah, DrussGT's movement is stronger than Diamond's 1v1. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 15:16, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
ShadowHawk and DiamondHawk gave me a pretty good idea where my gun and movement stand, so I don't feel a need to request Shadond. (That is a hilarious name, though.) I'm quite content to wait until I can challenge Shadow myself. =) ABC (or Positive) is free to make a hybrid if he likes - my code is very pluggable, as always. 1.30 is officially at #2 now, so maybe I'll focus on 1v1 for a bit. =) --[[User:Voidious|Voidious]] 15:21, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: The only obstacle is RWPCL. So unless you officially gave them permissions, they can't =) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 15:32, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Oh bah, the statement &amp;quot;ABC (or Positive) is free to&amp;quot; is good enough for all intents and purposes :) --[[User:Rednaxela|Rednaxela]] 15:47, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
(Edit conflict) Diamond 1.30 has definitely passed Portia 1.13 now, so congrats on reaching 2nd place! It's interesting to think about what combination would be best. I think Shadow's movement and gun are quite good for the first few turns of a 1v1 fight, because they don't wait for waves to reach the target (something GF-targeting does have to wait for). In melee, you often only get a few shots while down to 1v1, so it's extra important to have a quick start. --[[User:Positive|Positive]] 15:27, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! I don't understand, why would GF targeting have to wait for waves to reach the target before firing? Diamond sometimes stays still for a moment when it gets down to 1v1, but I'm not really sure why, actually... I should investigate that. --[[User:Voidious|Voidious]] 19:51, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: What I mean is that GF-guns can only use a simple targeting method to aim before they have any data, and they only have enough data to make an informed shot after a few waves have hit. A pattern matching can already detect and simulate movement (for example, stop 'n go) before its first waves hit. --[[User:Positive|Positive]] 21:45, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Oh, of course. But in a Melee battle, you can still use the targeting data you collected during Melee when it gets down to 1v1, right? I don't see why a GF gun can't use that Melee data (as I'm sure Shadow does). Shadow is an awesomely quick learner, though, there's no doubt about that. --[[User:Voidious|Voidious]] 21:56, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: That's true, you could use a combination of the melee data and new data. However, I think most advanced robots behave or will behave differently from melee in 1v1, so it will be or is better to use new data as fast as possible. Also, if you look at Shadow's debugging graphics, it seems like it doesn't use the melee data. :P --[[User:Positive|Positive]] 22:06, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::: Really? Interesting. Diamond uses &amp;quot;number of bots&amp;quot; as one of its gun dimensions, so 1v1 data is favored, but it uses whatever it has. If I were using GF + VCS, I would probably sum a lower-weighted buffer that doesn't segment on # of bots and a higher weighted one that does, so it would have something to work from before collecting the 1v1 waves. =) --[[User:Voidious|Voidious]] 22:11, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh, very nice - congrats!  Perhaps this will trigger the release of Shadow 3.85?  --[[User:Darkcanuck|Darkcanuck]] 15:56, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I sure hope not... =) --[[User:Voidious|Voidious]] 19:51, 28 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow, 1.31 is 0.4 APS from Shadow 3.84, congrats! Now I really have to see if I can squeeze some more points from Shadow's gun/movement. --[[User:ABC|ABC]] 12:30, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! =) Now that I've got it working, your Melee Gun design is so powerful, it almost feels dirty. Thanks for sharing. I'll probably focus on 1v1 for a bit now, anyway. And seeing as rating points are so much harder to find as you ascend towards #1, I think 3.83 still has a pretty solid lead over Diamond. --[[User:Voidious|Voidious]] 17:09, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I just noticed, you are now second in both melee and 1v1 =) Great work you've been doing on Diamond. I'm curious, how much do your melee and 1v1 code interact? For instance, at the end of a melee when there are only 2 bots left (1 being Diamond), does your 1v1 movement kick in with no values? Or does it have some sort of idea where the enemy will be aiming due to it's observations during the melee? --[[User:Skilgannon|Skilgannon]] 17:59, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! While there's nothing quite like being #1 ;), I'm really satisfied with Diamond's progress. It's also great fun having active competition from [[User:Positive|Positive]], [[User:ABC|ABC]], and [[User:Jlm0924|Justin]]... Hopefully, I can give you that &amp;quot;pleasure&amp;quot; on the 1v1 side sometime. =) I know it gets lonely up there. As to your question:&lt;br /&gt;
:* On the movement side, they are totally separate, much like you said. When it gets to 1v1, the surfing kicks in with preloaded [[Head-On Targeting|HOT]]-avoidance, not knowing anything from melee bullet hits. Of course it saves surf stats per-enemy across rounds, too. If I had some [[Portia]]-style melee bullet dodging, I'd surely try to integrate it more, but as of now, Diamond's melee movement doesn't even notice energy drop.&lt;br /&gt;
:* On the gun side, they are more integrated. One of the gun dimensions is number of bots alive, but it doesn't discard melee data for 1v1 scenarios or vice versa. Wall distance is calculated differently (though recorded in the same slot), I use different weights when aiming (including some dimensions being used in only 1v1 or melee), and now the melee gun uses the [[Shadow/Melee Gun]] technique.&lt;br /&gt;
: --[[User:Voidious|Voidious]] 19:10, 29 August 2009 (UTC)&lt;br /&gt;
:Hmm. So the gun works pretty optimally between melee/1v1 but the movement doesn't. The movement I've been working on expands seamlessly from 1v1 to melee, with full surfing capabilities, and full learning based not only on hits to yourself, but to all other bots that you can scan. The logic is amazingly complex, with decisions about bullet hits needing to be deferred until more data is collected and checked for bullet bonuses etc, but I see no reason (aside from CPU limits) why it isn't perfectly viable to learn how everybody is shooting all at once =) This is the main reason I haven't progressed that far with it - it's such a massive project that I'm not sure where to begin, and I'm also scared that I'll spend several hundred hours in development and then the whole thing will be a flop =) --[[User:Skilgannon|Skilgannon]] 20:35, 29 August 2009 (UTC)&lt;br /&gt;
: Sounds very cool, and very ambitious. =) I see how a lot can be approximated about enemy targeting during melee, I'm just very skeptical it can be precise enough to be useful for [[Wave Surfing]], which thrives on ultimate precision. But [[Portia]] has found a lot of success, ABC is trying likewise, and it sounds like Rednaxela has some good melee dodging now too, so maybe it's worth a shot. Good luck, in any case - it'd be way cool to see you enter the melee arena. --[[User:Voidious|Voidious]] 21:30, 29 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I just saw that Diamond 1.31 is PL king at the moment (100% Pairs won), congrats! --[[User:Positive|Positive]] 00:14, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks... Though the top bots are so always so close and I release so many versions, it was bound to happen eventually. =) Likewise, great work with Portia 1.19 - great way to start the semester, eh? Cheers, --[[User:Voidious|Voidious]] 02:30, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Performance Enhancing Bug in 1.32 ==&lt;br /&gt;
Hm, well it seems that the bug fixed in 1.323 was slightly performance enhancing, and thusly says to me that something isn't ideal about using inverse-distance weighting for scans... Hmm... --[[User:Rednaxela|Rednaxela]] 14:58, 31 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yeah, I don't know what's up with that. It's not that far beyond the margin of error, but still, I was hoping for a boost. I'm rewriting a lot of my data logging / danger projection into a bigger / badder system, anyway, so I actually don't care all that much. (It was actually while writing up my new system that I noticed this bug.) For what it's worth, in my experience, weighting scans by inverse distance is quite essential against simple targeters, where your most similar scans tell you exactly where the danger is and the rest are just noise. --[[User:Voidious|Voidious]] 15:30, 31 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well, I've found in various experiments over time that weighting scans some function of distance is essential indeed, but that a simple inverse is suboptimal. --[[User:Rednaxela|Rednaxela]] 16:07, 31 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
What, according to your experiments would be closer to optimal then? The inverse of some power of the distance perhaps?--[[User:Navajo|Navajo]] 22:01, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I'm also curious to hear what Rednaxela thinks... I used to use inverse square root of distance in [[Lukious]], and I think [[User:Skilgannon|Skilgannon]] tends to prefer inverse manhattan distance. Diamond is one of the strongest DC movements and is currently using a simple division by distance, for whatever that's worth. (In terms of rumble points, I think it just passed [[Hydra]] for the strongest DC movement.) &lt;br /&gt;
&lt;br /&gt;
Semi-off-topic ramblings: I think we end up tuning around a lot of arbitrary things in our very complex bots, so when we change something and lose points, we think the change was universally &amp;quot;bad&amp;quot;, when it really was just bad in our specific case. That's just a hunch, partially based on how often I and others tweak values that we've never tweaked and (seem to) find that our first instinct for that value cannot be improved upon.&lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 23:00, 1 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (OT) I was just thinking the same -- 99% of my tweaks end up with similar or slightly worse performance, it's usually the bigger changes that yield results. --[[User:Darkcanuck|Darkcanuck]] 03:41, 2 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes, sometimes I make a change that when tested with several seasons yields some APS gain and I never upload a version of YersiniaPestis (after 1.3.7) that is not able to beat all my test bed bots on average, but on the rumble luck plays a huge role. Right now version 3.0 loses to Locke, and I haven't tested against him, but I'm most confident that if they fight some more times that would change, the only reason I haven't really cared about that is because Shadow is currently losing to two bots :). --[[User:Zyx|zyx]] 04:09, 2 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well, I had the most success with things like 1/distance^n or 1/n^distance type things for some magic tweaked value of n. What I found most interesting of all though, was that the best values were '''highly''' specific to the dimensions and surfing algorithm in question. When I said that I found simple inverse to be suboptimal, I didn't really have anything very specific in mind that I expected to be better for Diamond, but I had a doubt reinforced by this PerformanceEnhancingBug, that it was quite unlikely that a plain inverse was being truly optimal --[[User:Rednaxela|Rednaxela]] 05:59, 2 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Wavesurfing Views ==&lt;br /&gt;
&lt;br /&gt;
I'm curious... what do you mean by wavesurfing views? Multiple kd-tree weightings, the results of which are composition into an overall profile perhaps? --[[User:Rednaxela|Rednaxela]] 14:40, 3 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Yeah, basically. I had trouble coming up with a word for it. A &amp;quot;view&amp;quot; consists of a distancing function, attribute weights, cluster size, max size (before cycling out old points), its own tree, and some other stuff like enablement criteria (hit percentage threshold, flattener mode). I already had some of this stuff in my movement, but it was hard-coded. Now it's easy for me to add/remove/change these multiple views. And yes, I now have a bunch more of them weighted and layered at all times. --[[User:Voidious|Voidious]] 14:55, 3 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Diamond 1.392 ==&lt;br /&gt;
&lt;br /&gt;
'''Wow!''' Diamond 1.392 is doing great so far! Looks like it will take the throne! I really wonder how DiamondHawk would score with those tweaks... and I'm really surprised you never waited till aimed before --[[User:Rednaxela|Rednaxela]] 00:56, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks. =) Still quite a few battles to go, but my fingers are crossed. Before, I'd wait for the gun to be turned only when it got down to 4 bots or less. Maybe ignoring it very early in the round is still a good idea, but I guess that was way too late... Assuming these 700 battles aren't a fluke, I'll post an updated DiamondHawk tomorrow. --[[User:Voidious|Voidious]] 01:05, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: 425 battles to go and Diamond holds the top spot with a narrow 0.2% APS margin...  --[[User:Darkcanuck|Darkcanuck]] 04:36, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: At least it doesn't have to fight mini/microbattles ;-)  Congrats man, seems that you have acheived the impossible. --[[User:GrubbmGait|GrubbmGait]] 06:02, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Congrats! It's amazing how such a simple change codewise can make such a large difference. I'm definitely going to try to catch up. :) --[[User:Positive|Positive]] 10:03, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congratulations, you did it! So much time wishing for some melee competition, I finally got what I asked for ;). Now you defend that throne the best you can, there are other very strong contenders coming for it. --[[User:ABC|ABC]] 10:45, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats. Updating [[wikipedia:Robocode|Wikipedia]] page, but still leave best overall megabot to Shadow. &amp;amp;raquo; [[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] &amp;amp;raquo; 11:15, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks guys! I still feel [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=voidious.Diamond%201.392&amp;amp;vs=abc.Shadow%203.83 Diamond 1.392 vs Shadow 3.83] is a bit too close to call, but even a draw makes me pretty ecstatic. =) --[[User:Voidious|Voidious]] 12:51, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Information on the wikipedia is current meleerumble kings so it is Diamond. &amp;amp;raquo; [[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] &amp;amp;raquo; 13:18, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, but I still feel free to have my own view of things. =) --[[User:Voidious|Voidious]] 13:21, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Great work on Diamond. I just have to hope you don't make a similar push in 1v1 =) --[[User:Skilgannon|Skilgannon]] 14:30, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Congrats on your new shiny crown. --[[User:Zyx|zyx]] 14:37, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I didn't thik anyone would beat Shadow this soon, but you did it, congratulations, it is great. --[[User:Navajo|Navajo]] 20:47, 21 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Well then, it also seems that you've stolen my recently obtained title of &amp;quot;Strongest Melee Gun&amp;quot; from me with this tweak... I may have to delay the full release of Glacier further than I had initially planned in order to fix this... :) --[[User:Rednaxela|Rednaxela]] 00:15, 22 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I noticed some bugs in my melee bullet power selection code and I've been obsessing over it since. It's there in 1.392 and since 1.382. The most glaring one is setting bulletpower=2.999 ''if enemiesAlive &amp;lt;= 7'', instead of &amp;gt;= 7. Attempts to fix/update bullet power have all lost points, but leaving the silly logic doesn't sit well with me. 1.393 and 1.395 both showed improvement in my test bed over a significant number of seasons, but lost points in the rumble. Argh, maybe I'll just leave it for now... it's not the most exciting thing to work on. --[[User:Voidious|Voidious]] 13:09, 23 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't think that setting should result badly per se. At the start of the game robots move a lot (go to corners, etc.), so they might be harder hit with slow bullets. Somewhat later they settle in more static positions when bots aren't constantly dying. With Portia I tried to avoid using 3.0 bullets as much as possible, and made it use 2.5 bullets for that reason. By the way, I have a similar 'bug' in Portia's targeting: it prefers using the first few results of the KdTree search, but those results aren't ordered on lowest error. 'Fixing' it causes point loss, and I have no idea why. --[[User:Positive|Positive]] 15:39, 23 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== BulletPower ==&lt;br /&gt;
&lt;br /&gt;
Hmm... 1.40 seems to be performing ''almost'' as good as 1.392, though not quite. Hooray for PerformanceEnhancingBugs. I've lately found that even seemingly minor/improving BulletPower tweaks can cause nightmarish (IMO) score drops in melee rumble. By the way, mind if I test out Diamond 1.40's bulletPower choosing in a GlacialHawk 1.11 release? (and as an aside, it seems that GlacialHawk 1.10 has [http://darkcanuck.net/rumble/RatingsCompare?game=meleerumble&amp;amp;name=ags.muse.GlacialHawk%201.10&amp;amp;vs=wiki.DiamondHawk%201.02 stolen] the 'Strongest Melee Gun' back, even if only by a small margin :)) --[[User:Rednaxela|Rednaxela]] 17:40, 24 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I noticed, congrats. =) Feel free to borrow the bullet power - I'm curious too. I'm chalking up 1.392 and 1.40 as equal, as it's pretty close, so I can rest easily again. (1.40's Wave Surfing is also slightly weaker, but not sure it's enough to matter in melee.) --[[User:Voidious|Voidious]] 17:50, 24 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hmm... seems that GlacialHawk's bulletPower calculation is stronger in melee rumble overall, but weaker in battles with the stronger bots. Actually, it's just a very slightly modified HawkOnFire bulletPower calculation, which is far slimmer in code, but seems well-tuned overall for melee. As a side note, I find it somewhat amusing how Hypothermia is stronger in melee, yet is less than 1/4th of DiamondFist's code even when only stripping out the non-melee and anti-surfer modes :) --[[User:Rednaxela|Rednaxela]] 15:16, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: [Edit conflict] You do know that size doesn't matter ?  ;) Personally I have never found it worth the effort to investigate different bulletpower schemes, so I still fire full-power at close range, 1.9 at medium and peas at large distances. --[[User:GrubbmGait|GrubbmGait]] 15:32, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I know size doesn't matter. I'm interested in simplicity, not code size. :) --[[User:Rednaxela|Rednaxela]] 15:57, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I must say, it's nice to see you don't have lots of points in a simple bullet power tweak. :-P DiamondFist definitely has some bloat right now from recent gun experiments, but I don't obsess much over code size, anyway... And I'm not sure I agree with your measurement: it looks like GlacialHawk 1.11 is just over 50% the code size of DiamondHawk 1.02 (12302 vs 23435). --[[User:Voidious|Voidious]] 15:30, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Well, I once compared lines of code between the core functionality of each gun, rather than codesize. I suspect the discrepency is due to things like 1) Enemy status/history storage is more seperated from the gun in Glacier, 2) Both including significant amounts of code that are not a core part of gun functionality, and 3) Different code style. I think comparing the gun package only would make GlacialHawk appear much leaner (not that the other parts don't matter equally) --[[User:Rednaxela|Rednaxela]] 15:57, 25 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Rating order ==&lt;br /&gt;
&lt;br /&gt;
It would be good if you keep your rating order the same. I mean, sometimes you put MeleeRumble first but sometimes you put RoboRumble rating first. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 14:57, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I do mean to put MeleeRumble first always, but I did a bunch of them at once and used the wrong order, apparently... Thanks for the heads up. --[[User:Voidious|Voidious]] 14:58, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== DV vs GF ==&lt;br /&gt;
&lt;br /&gt;
I wonder what if you switch Diamond's kNN 1v1 gun to GF, how much will you gain? Because you say that the performance of TripHammer increased a lot when you switched to GF from DV. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:10, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think it would gain some in the TC, but not much in the rumble. Even when TripHammer was at 90.56 in TCRM vs Diamond's Main Gun at 89.85, using TripHammer in the rumble gained me almost nothing. Also, since TripHammer and Diamond share a ton of code, the TripHammer KNN test that got 91.20 in the TCRM could just as well be called Diamond + GF + different cluster size + TripHammer's kernel density. --[[User:Voidious|Voidious]] 15:18, 1 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Diamond 1.461 ==&lt;br /&gt;
&lt;br /&gt;
Congrats on passing Dookious! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:03, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks, I'm pretty stoked! =) On the other hand, I could try rolling those changes back into Dookious, too... --[[User:Voidious|Voidious]] 15:06, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Wow! Interesting that it increased your score so much, in [[DrussGT]] I settled on a 'best distance' of 500 but I never really experimented with it beyond the [[MC2K7]]. --[[User:Skilgannon|Skilgannon]] 16:30, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'm surprised, too. The first change I tested was to 450, but the score dropped so much in my test bed that I tried the opposite =), and saw a nice improvement. The attack angle changes came out even in my test bed, but I prefer one mode to two. --[[User:Voidious|Voidious]] 17:18, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Congrats, I would have to test something like that, but the best desired distance for [[YersiniaPestis]] so far is 400, I set it to 450 and it already drops a lot of score (especially PL wise). But I've always though is because my gun is pretty bad compared to top guns, and the movement is what gives me the edge, so being relatively close allows me to increase my hit rate without being hit that much. If I set it to ~370, it crushes [[Shadow]], about 60% on average, but [[Dookious]] and [[DrustGT]] feast on him. --[[User:Zyx|zyx]] 05:53, 17 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Wave_Surfing&amp;diff=13481</id>
		<title>Talk:Wave Surfing</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Wave_Surfing&amp;diff=13481"/>
		<updated>2009-10-17T05:43:56Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Questions */ answer to question 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== The Next Level ==&lt;br /&gt;
&lt;br /&gt;
Quite a while ago I had an idea that could bring Wave Surfing to a new level, but I never got around to implementing it. Since the wiki's been quiet the last few days, I thought perhaps something like this might provide a kick to get things rolling again. My idea is Wave Surfing with a twist: not only do you surf the wave(s) that have been fired, but you also take into consideration the waves that have not yet been fired. By predicting your movement, you can predict what the enemy will see, and thus by looking at your movement stats you can see where they are likely to fire. Now, for the interesting part: by varying where you go, not only do you vary what GFs you reach, but you also vary what the enemy sees, and thus where they shoot. Danger can be calculated not only as a low point on a graph, but also on the entropy of the enemy's firing stats when presented with this movement. The more peaked the profile, the better this movement option (provided we can get to a low point). A system like this could basically 'figure out' how to do a movement type like [[Stop And Go]], and probably other amazing types of movement we haven't thought of yet. There! How's that for some food for thought? =) --[[User:Skilgannon|Skilgannon]] 20:23, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Some interesting thoughts here. I'm initially skeptical (as usual =)) because it reminds me of the diminishing returns on surfing waves beyond the first couple. But ignoring that... One hurdle with this is that while you can predict your own movement, you can't (accurately) predict the enemy's movement, which also impacts what they &amp;quot;see&amp;quot; -- distance, lateral velocity, wall distance, etc. depend on enemy location as well as your own. It's a funny thought to use your gun to predict their movement to assist in your own movement. =)&lt;br /&gt;
&lt;br /&gt;
So let's say you can guesstimate the enemy movement -- and maybe the full range of their movement options are pretty similar for our purposes anyway. So for each of my movement options, I'd figure out if/when the enemy would fire (based on gun heat) during that prediction, check my stats of the enemy's bullets fired / bullets hit, factor in the precise max escape angle of that firing situation, and multiply the probability he would hit into the danger calculation. Kinda similar to how many of us factor in distance (and maybe instead of distance, since these two factors would not be independent). I'm still skeptical, but this sounds really interesting!&lt;br /&gt;
&lt;br /&gt;
Good to see I'm not the only one still pondering the next big thing. =) I still want to find a breakthrough in [[Anti-Surfer Targeting]]... I know it's there! &lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 20:52, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Gaff's anti-surfer score in the [[TC2K7]] isn't enough?  I have a dev. version that scores 82.93 against surfers (15 seasons) but worse overall once the random movers are averaged in.  If you create a new [[Anti-Surfing Challenge]] I'll be happy to keep looking for improvements.  =)  --[[User:Darkcanuck|Darkcanuck]] 21:49, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Hmm, those are some pretty sick scores. Besides the scores themselves, it's particularly impressive that you nail [[Shadow]] ''and'' [[RaikoMX]] so well with one gun. I'm guessing not by the description, but do you simulate enemy surf stats in any way? That's the main area where I think a breakthrough might await, but even my best efforts haven't yielded much. That Anti-Surfing Challenge sounds pretty appealing, actually, even if it will do squat in closing the gap to [[DrussGT]]. =) --[[User:Voidious|Voidious]] 00:34, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks, I'm very pleased with that gun.  There's no simulation involved, besides a rough calculation of the min + max reachable GFs -- the rest is all NN magic.  I promise to write it up one of these days, I'd like to see what tangents others might take.  --[[User:Darkcanuck|Darkcanuck]] 03:58, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I was once tried simulating the surfer stats, but the result with normal bin smoother will have a load of empty bins that have no data. So you can't really decide where to fire unless, of course, you are simulating a surfer movement too. But next generation Go-To surfer can kill that instantly. Note the next generation go-to surfer is not this next generation wave surfer, it will be like when you may chose a point that close to you, and stay still until the last moment and move to that spot in time when the wave reach or something more that that.&lt;br /&gt;
:: We can have anti-surfer challenge in Challenge 2K9, I think we should have one. I'll continue working on Challenge 2K9 when I have time (October, when the school holiday arrive.) &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 05:15, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Yep, you probably shouldn't use ''only'' enemy surf data to shoot at. But there's important data there that I really think can be factored into the gun. I'd definitely account for what GFs they can still reach on each wave (ie, the &amp;quot;simulate their movement&amp;quot; part). I don't think an Anti-Surfer Challenge needs to be a subchallenge of another challenge, since most of our movement and targeting challenges aim to gauge rumble performance, while this one clearly would not. --[[User:Voidious|Voidious]] 13:44, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: If you look closely, the Challenge 2K9 is main challenge plus a bunch of subchallenges. I think most Anti Surfer gun indirectly simulating enemy surf stats already. Since we usually reduce twice on hit, it would result like the simulated enemy surfing stats plus normal stats to decide where to shot in a load of empty bins. However, we can assume that the enemy will not changes its direction until one wave passed over. Then we may assume which direction the enemy will go next, etc. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 14:47, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Fiddlesticks, this was going to be my killer idea once I made a wavesurfing bot!...Creating misleading spikes--[[User:CrazyBassoonist|CrazyBassoonist]] 21:10, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Approaching this from a slightly different direction, you could &amp;quot;snap&amp;quot; your movement to certain points when you know they're about to fire, essentially reducing the resolution of their segmentation. In a single turn you can do that with velocity, snapping it to 8, 5, 2, 0, -2, -5, or -8. In two turns you can also keep acceleration constantly at 0. With a few more turns' warning you could limit velocity to even fewer values. This would be easiest against bots that fire slow, infrequent shots since your movement would be disrupted less often. -- [[User:Synapse|&amp;lt;font style=&amp;quot;font-size:0.8em;font-variant:small-caps;&amp;quot;&amp;gt;Synapse&amp;lt;/font&amp;gt;]] 23:29, 9 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Interesting... for a simple movement (stop&amp;amp;go, flat, singlebuffer flattenerless wavesurf), it is possible to predict a reasonable accurate location in future. Thus it needs a lot of processing so I don't sure if it will run in time. But it may make up to 100 rounds to learn how they move. I never tried (but I'm writing a library that do this in past 2 months. It's call BattlePredictor, originally I will use it for melee)&lt;br /&gt;
&lt;br /&gt;
One thing that should be consider when creating a wave surfing robot that use this generation, it should be totally useless against a simple gun and probably loss score (I'm highly doubt that using this may lead to another performance enhancing bug). &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 01:28, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I think you guys might have gone off on a tangent here... I don't think Skilgannon's idea really involves &amp;quot;creating misleading spikes&amp;quot; so much as factoring in which movement profile will be presented to the enemy and trying to choose an advantageous one. A best guess at the enemy's movement would be simple and might work well enough in most situations, so it need not be slow. It would be augmenting normal surfing instead of replacing it, so you shouldn't lose score against anyone. I like the idea of snapping velocity, Synapse; I think you might gain performance against simple learning guns but lose performance against bigger guns (which have fancier segments / attributes that could &amp;quot;see through&amp;quot; the trick). --[[User:Voidious|Voidious]] 13:44, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Still if we augment it, not replace, the augmented result can make you drive into danger with some type of gun. I don't know that it will happen, but I highly doubt (with some hunch though) that this will not improved the score. But it doesn't mean that I'll not tried to do it. Synapse, if you limit the acceleration to zero, wouldn't it just goes back and forth? I know that velocity is the most popular segment, if distance isn't. But I don't think there is many guns that use ''n'' ticks acceleration (I know there is some bot use distance in last few/several turns). &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 14:47, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, the velocity and acceleration limitations would only be applied for two turns starting immediately before gunheat zero, so the enemy is forced to put all his battle data into a small number of segmentations. -- [[User:Synapse|&amp;lt;font style=&amp;quot;font-size:0.8em;font-variant:small-caps;&amp;quot;&amp;gt;Synapse&amp;lt;/font&amp;gt;]] 16:19, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
The reason I think this might be a big improvement over regular surfing is against the simple targeters: before we were just acting reactively, responding to the enemy bullets in the air, whereas now we could act pro-actively, by actually forcing bots to shoot where we want them to. This would eliminate all the 'lucky shots' that are the usual cause of being hit, due to not having enough room to manoeuvre (from walls) or being too close to dodge. Against other surfers, this bot could have a large advantage if it stayed at close distances, where it can still predict enemy shots a large number of ticks ahead, but the enemy would only have distance/bulletVelocity ticks to work with. Then there's the false spikes that were mentioned: I don't think these are really feasable, as the only way to make them is to create real spikes, and the more predictable stuff you do, the worse =) --[[User:Skilgannon|Skilgannon]] 16:15, 10 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
==Questions==&lt;br /&gt;
:# I don't understand why you use the absolute bearing from two ticks ago. From what I could tell, an enemy fires the tick its energy drop, which is also the tick you detect it, so shouldn't you use the absolute bearing from one tick ago?&lt;br /&gt;
:# To compensate for the edges or not?&lt;br /&gt;
--[[User:Starrynte|Starrynte]] 05:11, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't quite understand the second question, but as number 1 goes. He fired one tick ago, you are right, but he aimed at you two (or even more if he waits the gun to align) ticks ago. Something like this.&lt;br /&gt;
:* Tick 0, enemy calculates an angle to aim (high chance of it being a GF anyway). Sets his gun to turn to that angle.&lt;br /&gt;
:* Tick 1, enemy's gun is now, ideally, aiming at his desired angle. Sets his gun to fire.&lt;br /&gt;
:* Tick 2, you detect enemy's energy drop. You know he fired from his last position, but aimed at you at least two ticks ago.&lt;br /&gt;
&lt;br /&gt;
: Hope it helps. --[[User:Zyx|zyx]] 05:43, 17 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=User_talk:Zyx/Radar_Widest_Area_Angle&amp;diff=13480</id>
		<title>User talk:Zyx/Radar Widest Area Angle</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User_talk:Zyx/Radar_Widest_Area_Angle&amp;diff=13480"/>
		<updated>2009-10-17T05:37:17Z</updated>

		<summary type="html">&lt;p&gt;Zyx: almost sure is the same thing, one very rare corner case to account for&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In one of my melee bots (now retired), I set the radar, gun, and robot to turn towards the center, and not to adjust gun and radar for robot turn until after 3 ticks. Not sure if this would have a similar effect --[[User:Starrynte|Starrynte]] 01:10, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Is disabling 'adjust xxx for yyy turn' really needed? I wouldn't expect it to be needed... hmm --[[User:Rednaxela|Rednaxela]] 02:43, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hmm... well, I may be mistaken... but thinking this over, I'm pretty sure turning the radar towards the center will always do the same as this 'widest area angle' indeed... --[[User:Rednaxela|Rednaxela]] 01:53, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I will add small check to see if turning to the center gives the same result as this code, but I think you are both right, intuitively it seems to have the same output and code is so much simpler :-/. About not adjusting, I call the adjust method in the onScannedRobot event and at the beginning I set to turn radar, gun and bot. But that is for 1v1 and not melee. --[[User:Zyx|zyx]] 05:08, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
My code, and turning to the center gave the exact same answer for over 2000 tests. That's not a formal proof, but is enough for me to think that [[Starrynte]]'s method gives the exact same result using roughly 1/90 lines of code :-).&lt;br /&gt;
&lt;br /&gt;
The only case I can think of were turning to the center fails, is if the bot is spawn facing exactly (to Java's double precision) to the center, so the angle is an exact 0 (very very rare). But it shouldn't be hard to check for this very unlikely, but somewhat possible, situation and turn whatever side you prefer in such a case as the probability is 1/2 for each side.&lt;br /&gt;
&lt;br /&gt;
But thanks to [[Starrynte]] for simplifying my radar code to almost non existent again --[[User:Zyx|zyx]] 05:37, 17 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=User_talk:Zyx/Radar_Widest_Area_Angle&amp;diff=13478</id>
		<title>User talk:Zyx/Radar Widest Area Angle</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User_talk:Zyx/Radar_Widest_Area_Angle&amp;diff=13478"/>
		<updated>2009-10-17T05:08:00Z</updated>

		<summary type="html">&lt;p&gt;Zyx: I think you are right&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;In one of my melee bots (now retired), I set the radar, gun, and robot to turn towards the center, and not to adjust gun and radar for robot turn until after 3 ticks. Not sure if this would have a similar effect --[[User:Starrynte|Starrynte]] 01:10, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Is disabling 'adjust xxx for yyy turn' really needed? I wouldn't expect it to be needed... hmm --[[User:Rednaxela|Rednaxela]] 02:43, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hmm... well, I may be mistaken... but thinking this over, I'm pretty sure turning the radar towards the center will always do the same as this 'widest area angle' indeed... --[[User:Rednaxela|Rednaxela]] 01:53, 17 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I will add small check to see if turning to the center gives the same result as this code, but I think you are both right, intuitively it seems to have the same output and code is so much simpler :-/. About not adjusting, I call the adjust method in the onScannedRobot event and at the beginning I set to turn radar, gun and bot. But that is for 1v1 and not melee. --[[User:Zyx|zyx]] 05:08, 17 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=User:Zyx/Radar_Widest_Area_Angle&amp;diff=13468</id>
		<title>User:Zyx/Radar Widest Area Angle</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=User:Zyx/Radar_Widest_Area_Angle&amp;diff=13468"/>
		<updated>2009-10-17T00:55:32Z</updated>

		<summary type="html">&lt;p&gt;Zyx: best angle to start turning the radar&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Motivation ==&lt;br /&gt;
&lt;br /&gt;
Many bots, including top bots, when a round starts they simply set their radar to turn, in a somewhat arbitrary way (most turn it right). But there is a relatively easy way to decide the best way to turn it, to minimize the expected number of ticks needed to find your opponent. Turning in the best way will most likely have a very marginal improvement if any, but either way it can't harm the normal behavior.&lt;br /&gt;
&lt;br /&gt;
== Idea ==&lt;br /&gt;
The following code divides the battle field into two areas, the one bounded by the current radar heading turning it right Math.PI radians, and the one doing the same to the left. If the area to the right is bigger then it returns Double.POSITIVE_INFINITY and Double.NEGATIVE_INFINITY otherwise.&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Change the usual&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if ( getRadarTurnRemainingRadians() == 0 ) setTurnRadarRightRadians(Double.POSITIVE_INFINITY);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
for&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if ( getRadarTurnRemainingRadians() == 0 ) setTurnRadarRightRadians(zyx.mega.radar.Radar.getWidestAreaAngle(this));&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Code ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package zyx.mega.radar;&lt;br /&gt;
import static java.lang.Double.NEGATIVE_INFINITY;&lt;br /&gt;
import static java.lang.Double.POSITIVE_INFINITY;&lt;br /&gt;
import static java.lang.Math.PI;&lt;br /&gt;
import static java.lang.Math.abs;&lt;br /&gt;
import static java.lang.Math.atan2;&lt;br /&gt;
import static java.lang.Math.cos;&lt;br /&gt;
import static java.lang.Math.max;&lt;br /&gt;
import static java.lang.Math.min;&lt;br /&gt;
import static java.lang.Math.signum;&lt;br /&gt;
import static java.lang.Math.sin;&lt;br /&gt;
import static robocode.util.Utils.normalRelativeAngle;&lt;br /&gt;
import java.awt.geom.Point2D;&lt;br /&gt;
import robocode.AdvancedRobot;&lt;br /&gt;
public class Radar {&lt;br /&gt;
  public static double getWidestAreaAngle(AdvancedRobot robot) {&lt;br /&gt;
    double X[] = { 0, robot.getBattleFieldWidth() };&lt;br /&gt;
    double Y[] = { 0, robot.getBattleFieldHeight() };&lt;br /&gt;
    Point2D me = new Point2D.Double(robot.getX(), robot.getY());&lt;br /&gt;
    int corner_count[] = {0, 0};&lt;br /&gt;
    Point2D right[] = new Point2D[2];&lt;br /&gt;
    double righta[] = new double[2];&lt;br /&gt;
    for ( double x : X ) for ( double y : Y ) {&lt;br /&gt;
      double a = normalRelativeAngle(atan2(x - me.getX(), y - me.getY()) - robot.getRadarHeadingRadians());&lt;br /&gt;
      double tt = signum(a);&lt;br /&gt;
      if ( tt &amp;lt; 0 ) {&lt;br /&gt;
        if ( ++corner_count[0] &amp;gt; 2 ) return NEGATIVE_INFINITY;&lt;br /&gt;
      } else {&lt;br /&gt;
        if ( corner_count[1] == 2 ) return POSITIVE_INFINITY;&lt;br /&gt;
        righta[corner_count[1]] = abs(a);&lt;br /&gt;
        right[corner_count[1]++] = new Point2D.Double(x, y);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    double length = X[1] * Y[1] * 2;&lt;br /&gt;
    LineEQ ray1 = new LineEQ(me, Project(me, robot.getRadarHeadingRadians(), length));&lt;br /&gt;
    LineEQ ray2 = new LineEQ(me, Project(me, robot.getRadarHeadingRadians() + PI, length));&lt;br /&gt;
    LineEQ test[] = {&lt;br /&gt;
        new LineEQ(new Point2D.Double(0,0), new Point2D.Double(X[1], 0)),&lt;br /&gt;
        new LineEQ(new Point2D.Double(X[1],0), new Point2D.Double(X[1], Y[1])),&lt;br /&gt;
        new LineEQ(new Point2D.Double(X[1], Y[1]), new Point2D.Double(0,Y[1])),&lt;br /&gt;
        new LineEQ(new Point2D.Double(0, Y[1]), new Point2D.Double(0,0)),&lt;br /&gt;
    };&lt;br /&gt;
    Point2D x = new Point2D.Double();&lt;br /&gt;
    double area_right = Area(me, right[0], right[1]);&lt;br /&gt;
    for ( LineEQ li : test ) {&lt;br /&gt;
      if ( Intersect(ray1, li, x) ) {&lt;br /&gt;
        Point2D y = right[0];&lt;br /&gt;
        if ( righta[0] &amp;gt; righta[1] ) y = right[1];&lt;br /&gt;
        area_right += Area(me, x, y);&lt;br /&gt;
      }&lt;br /&gt;
      if ( Intersect(ray2, li, x) ) {&lt;br /&gt;
        Point2D y = right[1];&lt;br /&gt;
        if ( righta[0] &amp;gt; righta[1] ) y = right[0];&lt;br /&gt;
        area_right += Area(me, x, y);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    System.out.printf(&amp;quot;%.4f %.4f\n&amp;quot;, area_right, X[1] * Y[1] - area_right);&lt;br /&gt;
    return X[1] * Y[1] - area_right &amp;lt; area_right ? POSITIVE_INFINITY : NEGATIVE_INFINITY;&lt;br /&gt;
  }&lt;br /&gt;
  private static Point2D Project(Point2D start, double bearing, double distance) {&lt;br /&gt;
    return new Point2D.Double(start.getX() + sin(bearing) * distance,&lt;br /&gt;
        start.getY() + cos(bearing) * distance);&lt;br /&gt;
  }&lt;br /&gt;
  private static class LineEQ {&lt;br /&gt;
    double A, B, C;&lt;br /&gt;
    Point2D pmin, pmax;&lt;br /&gt;
    public LineEQ(Point2D p1, Point2D p2) {&lt;br /&gt;
      A = p2.getY() - p1.getY();&lt;br /&gt;
      B = p1.getX() - p2.getX();&lt;br /&gt;
      C = A * p1.getX() + B * p1.getY();&lt;br /&gt;
      pmin = new Point2D.Double(min(p1.getX(), p2.getX()), min(p1.getY(), p2.getY()));&lt;br /&gt;
      pmax = new Point2D.Double(max(p1.getX(), p2.getX()), max(p1.getY(), p2.getY()));&lt;br /&gt;
    }&lt;br /&gt;
  };&lt;br /&gt;
  private static boolean Intersect(LineEQ line1, LineEQ line2, Point2D p) {&lt;br /&gt;
    double det = line1.A * line2.B - line2.A * line1.B;&lt;br /&gt;
    if ( abs(det) &amp;lt; 1e-5 ) return false;&lt;br /&gt;
    p.setLocation((line2.B * line1.C - line1.B * line2.C) / det, (line1.A * line2.C - line2.A * line1.C) / det);&lt;br /&gt;
    return &lt;br /&gt;
    p.getX() + 1e-9 &amp;gt; line1.pmin.getX() &amp;amp;&amp;amp; p.getX()- 1e-9 &amp;lt; line1.pmax.getX() &amp;amp;&amp;amp;&lt;br /&gt;
    p.getY() + 1e-9 &amp;gt; line1.pmin.getY() &amp;amp;&amp;amp; p.getY()- 1e-9 &amp;lt; line1.pmax.getY() &amp;amp;&amp;amp;&lt;br /&gt;
    p.getX() + 1e-9 &amp;gt; line2.pmin.getX() &amp;amp;&amp;amp; p.getX()- 1e-9 &amp;lt; line2.pmax.getX() &amp;amp;&amp;amp;&lt;br /&gt;
    p.getY() + 1e-9 &amp;gt; line2.pmin.getY() &amp;amp;&amp;amp; p.getY()- 1e-9 &amp;lt; line2.pmax.getY();&lt;br /&gt;
  }&lt;br /&gt;
  private static double Area(Point2D origin, Point2D v1, Point2D v2) {&lt;br /&gt;
    return abs((v1.getX() - origin.getX()) * (v2.getY() - origin.getY()) - (v1.getY() - origin.getY()) * (v2.getX() - origin.getX())) / 2;    &lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Pattern_Matcher_Challenge&amp;diff=13454</id>
		<title>Talk:Pattern Matcher Challenge</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Pattern_Matcher_Challenge&amp;diff=13454"/>
		<updated>2009-10-16T05:35:51Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Sequential Prediction */ heap instead of sort&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;; &amp;lt;nowiki&amp;gt;Archived Talk:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
: '''[[/Archived Talk 20091015]]'''&lt;br /&gt;
&lt;br /&gt;
== Sequential Prediction ==&lt;br /&gt;
&lt;br /&gt;
I saw that there was a lot of discussion over at [[Sequential Prediction]] and thought I'd migrate this page to see some results compared to some of the originals. Also wanted to show off the score of my new [[Pattern Matching|Pattern Matcher]]... :-) --[[User:KID|KID]] 01:54, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'd like to try, but can't get a hold of PatternBot's jar...  My simple implementation of seq-pred scores about 65% vs Shadow but that's all I've tested to date. --[[User:Darkcanuck|Darkcanuck]] 02:21, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Nevermind, I got it -- repository must have been offline, I'll put a copy on my server to save others this frustration! --[[User:Darkcanuck|Darkcanuck]] 03:02, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I've been planning to migrate this page(s) for the same reason, but never got the time to do it. Thanks. --[[User:Zyx|zyx]] 04:35, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Those are some really nice results you've both posted!  My implementation isn't so good, it starts off well but then ends up skipping too many turns -- probably from sorting the ever-increasing number of matches in the histogram.  --[[User:Darkcanuck|Darkcanuck]] 05:05, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have a heap that stores the N best matches, 31 at most, then I keep the best &amp;lt;code&amp;gt;ceil(N / 3)&amp;lt;/code&amp;gt; that stay inside the field and weight them by match length. Hope it helps somehow.&lt;br /&gt;
&lt;br /&gt;
: On another note, I currently have a better scoring version (over 102%) but I don't know if it is cheating. I started tweaking how to find pattern bot faster, so I turn to the best angle, but I also turn the gun and the bot so it turns faster. I'm not sure if turning the bot is allowed, I'm currently testing a version that doesn't turn the bot and see if is enough to get the first place. If not I will only post the results as information. And as soon as I have a fully functional bot in the rumble, I will release the side version tweaked towards this challenge as well. --[[User:Zyx|zyx]] 05:35, 16 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Pattern_Matcher_Challenge&amp;diff=13452</id>
		<title>Talk:Pattern Matcher Challenge</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Pattern_Matcher_Challenge&amp;diff=13452"/>
		<updated>2009-10-16T04:35:15Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Sequential Prediction */ thanks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;; &amp;lt;nowiki&amp;gt;Archived Talk:&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
: '''[[/Archived Talk 20091015]]'''&lt;br /&gt;
&lt;br /&gt;
== Sequential Prediction ==&lt;br /&gt;
&lt;br /&gt;
I saw that there was a lot of discussion over at [[Sequential Prediction]] and thought I'd migrate this page to see some results compared to some of the originals. Also wanted to show off the score of my new [[Pattern Matching|Pattern Matcher]]... :-) --[[User:KID|KID]] 01:54, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I'd like to try, but can't get a hold of PatternBot's jar...  My simple implementation of seq-pred scores about 65% vs Shadow but that's all I've tested to date. --[[User:Darkcanuck|Darkcanuck]] 02:21, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Nevermind, I got it -- repository must have been offline, I'll put a copy on my server to save others this frustration! --[[User:Darkcanuck|Darkcanuck]] 03:02, 16 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I've been planning to migrate this page(s) for the same reason, but never got the time to do it. Thanks. --[[User:Zyx|zyx]] 04:35, 16 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Pattern_Matcher_Challenge/Results&amp;diff=13451</id>
		<title>Pattern Matcher Challenge/Results</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Pattern_Matcher_Challenge/Results&amp;diff=13451"/>
		<updated>2009-10-16T04:28:26Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Sila results&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Navbox small&lt;br /&gt;
| title        = PMC Sub-pages&lt;br /&gt;
| parent       = Pattern Matcher Challenge&lt;br /&gt;
| page1        = Pattern Bot&lt;br /&gt;
| page3        = Results&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse; font-size: 85%; color: black&amp;quot;&lt;br /&gt;
|align=&amp;quot;left&amp;quot;|'''Bot'''&lt;br /&gt;
|align=&amp;quot;left&amp;quot;|'''Author'''&lt;br /&gt;
|align=&amp;quot;left&amp;quot;|'''Index'''&lt;br /&gt;
|align=&amp;quot;left&amp;quot;|'''Date of Victory / Comment'''&lt;br /&gt;
|-&lt;br /&gt;
|[[EnderPMC]] 1.3&lt;br /&gt;
|[[Vic Stewart]]&lt;br /&gt;
|101.75 %&lt;br /&gt;
|jun 17 2003 / Using deltaheading and deltavelocity for matching. Improved heading prediction and initial damage.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[WeeklongObsession]]&lt;br /&gt;
|[[Simonton]]&lt;br /&gt;
|101.61 %&lt;br /&gt;
|jan 4 2007 / Using the pattern matcher described on my page.  Cheated a little by increasing my bot's delta-heading segments for the challenge :). (It scored 101.07 before that, though)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Sila]] pmc.1.0&lt;br /&gt;
|[[Zyx]]&lt;br /&gt;
|101.38 %&lt;br /&gt;
|Oct 16 2009 / 4 seasons. [[Sequential Prediction]] on rotation, velocity and acceleration, 16, 16 and 3 symbols respectively.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[LeachPMC]] 1.1.10&lt;br /&gt;
|[[PEZ]]&lt;br /&gt;
|101.15 %&lt;br /&gt;
|Jun 19 2003 / Variable length search vector using heading delta and velocity for matching and the same for projection (see its page for more info and progress)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[GlowBlowPMC]]&lt;br /&gt;
|[[Rozu]]&lt;br /&gt;
|101.08 %&lt;br /&gt;
|jun 15 2003 / Using headingchange and velocity for matching (does account for discontinuity between two rounds)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Nibbler/NibblerPMC]]&lt;br /&gt;
|[[Crippa]]&lt;br /&gt;
|100.87 %&lt;br /&gt;
|jun 17 2003 / Using deltaheading and velocity for matching. Tweeked to get less skipped events.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Toa]] dev&lt;br /&gt;
|[[User:KID]]&lt;br /&gt;
|100.80 %&lt;br /&gt;
|20091019 / [[Sequential Prediction]] and [[Folded Pattern Matcher]]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|MicroAspidPMC&lt;br /&gt;
|[[Albert]]&lt;br /&gt;
|100.50 %&lt;br /&gt;
|jun 17 2003 / Variable window lenght pattern matcher using velocity &amp;amp; heading (without low pass filter). Considers beginning and end of rounds  &lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Parakeet|ParakeetPMC]]&lt;br /&gt;
|[[Dummy]]&lt;br /&gt;
|100.14 %&lt;br /&gt;
|Using sampled displacement for matching (sampletime=4 ticks,search vector consists of 8 samples)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Pytko&lt;br /&gt;
|[[Chase]]&lt;br /&gt;
|100.08%&lt;br /&gt;
|I was bored enough to test it..&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|RooseveltPMC&lt;br /&gt;
|[[Brainfade]]&lt;br /&gt;
|100.04%&lt;br /&gt;
|Just found a bug....&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|...............&lt;br /&gt;
|...............&lt;br /&gt;
|...............&lt;br /&gt;
|...............&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Chase-san/PatternBot]]&lt;br /&gt;
|[[Chase-san]]&lt;br /&gt;
|099.32%&lt;br /&gt;
|Just your ol' fashioned pattern matcher (500:100000:PI/128:.25)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[TeancumPMC]]&lt;br /&gt;
|[[Kawigi]]&lt;br /&gt;
|098.55%&lt;br /&gt;
|Using lateral and advancing velocity for matching and projection, fixed length of 50 or 1/4 of the current round.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[WaylanderMicro]]&lt;br /&gt;
|[[Skilgannon]]&lt;br /&gt;
|095.98%&lt;br /&gt;
|Using  variable key length and decoupled delta heading and velocity to decrease learning time. No data saving between games. No PMC specific optimisations.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Aryary's Pattern Matching (Releasing Soon in  a MicroBot)&lt;br /&gt;
|[[Aryary]]&lt;br /&gt;
| 095.89%&lt;br /&gt;
| Matching Velocity and Delta Heading. (Fixed Some Bugs.)&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[Recrimpo]]'s future gun&lt;br /&gt;
|[[Tango]]&lt;br /&gt;
|083.97%&lt;br /&gt;
|Lots of work to do, yet.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[mini.FenrirPMC]] 0.33i&lt;br /&gt;
|[[Loki]]&lt;br /&gt;
|079.33 %&lt;br /&gt;
|Using lateral velocity and acceleration for matching, variable length pm&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|HeadOnTargeting&lt;br /&gt;
|&lt;br /&gt;
|034.22%&lt;br /&gt;
|Just for comparison (3248/9492)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Guns above the dotted line have completed the challenge and have beaten [[Pattern Matcher Challenge/Pattern Bot]].&lt;br /&gt;
&lt;br /&gt;
[[Category:Challenge Results]]&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Category_talk:Licenses&amp;diff=13423</id>
		<title>Category talk:Licenses</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Category_talk:Licenses&amp;diff=13423"/>
		<updated>2009-10-15T01:38:47Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* OSI Approved License */ no robowiki == no life&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== OSI Approved License ==&lt;br /&gt;
While I'm finding a good license for my next robot, I ran across [http://www.opensource.org/faq this page].&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;border:1px solid #000;background-color:#fff; padding: 1em&amp;quot;&amp;gt;&lt;br /&gt;
; Can I call my program &amp;quot;Open Source&amp;quot; even if I don't use an approved license?&lt;br /&gt;
: You can call you program &amp;quot;Bob&amp;quot; if you want, but if you call it &amp;quot;Open Source&amp;quot; without using an approved license, you will be confusing people. Please don't. Companies that confuse partners and potential customers tend to drive them away.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
And as far as I know, only robot that use OSI-Approved license is [[Glacier]]. (zlib/libpng license is OSI-Approved license) Hmm... maybe we should send [[RWPCL]] and [[RWLPCL]] for OSI to approve. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 11:17, 13 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: The RWLPCL always seemed kind of silly to me, to be honest. If the wiki ever goes offline, suddenly you can't use the code anymore! (Depending on your interpretation, that might mean that no one can use code from bots that were published under the RWLPCL on the old wiki.) It's possible to contrive similar issues with the RWPCL--e.g. someone publishes their bot without source but posts the code on the wiki, the wiki goes offline, suddenly distributing the bot is copyright infringement. The only reason I don't specify that my bots are under the MIT/X11 license is that I don't feel like pasting a big license block at the top of every one of my source files. « [[User:AaronR|AaronR]] « [[User talk:AaronR|Talk]] « 21:15, 13 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I also dislike the &amp;quot;credit on the wiki&amp;quot; clause in the RWLPCL. For the RWPCL case, though, IANAL, but it seems to me that if you ''did'' publish it on the wiki, that would have been enough to fulfill the obligation. Not sure why anyone wouldn't package it with the bot, though... --[[User:Voidious|Voidious]] 23:58, 13 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: You can past them on the main Robot's file and in other source just specify something like (I decided to use Eclipse Public License, which is supersede to Common Public License, which use in Robocode, after some hard decision among MIT, EPL and LGPL) this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Copyright (c) 2009 Nat Pavasant&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: Just as in Robocode's files. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 10:10, 14 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: You can submit them if you want, but personally, I don't feel I need approval to use the term &amp;quot;open source&amp;quot;. I believe those two licenses already comply with their [[wikipedia:Open Source Definition|definition]] of an open source license, and I've never heard of anyone being confused by our use of the term for our bots/licenses. --[[User:Voidious|Voidious]] 23:58, 13 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: My view is that the RWLPCL/RWPCL is that it's kind of silly for the same reasons as AaronR states. I see no reason to worry about the OSI either really. For a small in-community liscence it doesn't matter, besides, I don't think the RWLPCL/RWPCL are of high enough quality for them to approve even if it does comply. --[[User:Rednaxela|Rednaxela]] 00:44, 14 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I forgot the smiley, the &amp;quot;we should send [[RWPCL]] and [[RWLPCL]] for OSI to approve&amp;quot; is actually joking. I have read the definition of Open Source license on http://opensource.org/ (OSI) and, as Rednaxela and AaronR stated, the RW(L)?PCL license isn't true opensource. But as Voidious states, this is a small community. However I still feel that our RW licenses are not opensource licenses. Maybe it is just me being perfectionist... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 10:10, 14 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: What about them isn't &amp;quot;true&amp;quot; open source? I didn't think AaronR or Rednaxela said that about them. The RWPCL seems very similar to a stripped down GPL to me. --[[User:Voidious|Voidious]] 12:47, 14 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: 'If the wiki ever goes offline, suddenly you can't use the code anymore' seems to be 'not &amp;quot;true&amp;quot; open source' for me. But I agree that RWPCL and RWLPCL are like simplified version and RoboWiki-ize version of GPL and LGPL. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 14:59, 14 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If robowiki goes down, whether using or not the code in bots is allowed is irrelevant, as the sadness will crush us to death :-p. --[[User:Zyx|zyx]] 01:38, 15 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=13239</id>
		<title>RoboRumble/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=RoboRumble/Participants&amp;diff=13239"/>
		<updated>2009-10-10T05:17:44Z</updated>

		<summary type="html">&lt;p&gt;Zyx: del Ant 2.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{:RoboRumble/Navigation}}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Just add your bot name ('''as appears in the Robocode selector after packaging''', so including versionnumber) and the RobocodeRepository id number separated by &amp;quot;,&amp;quot; (there must be no space after the comma). Please, make sure your bot is not in the list before adding it, and delete the old version if you are adding a new one.&lt;br /&gt;
&lt;br /&gt;
The list is in '''alphabetical''' order. Add your bot in the right slot.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ab.DengerousRoBatra 1.3,http://www.robocoderepository.com/BotFiles/3664/ab.DengerousRoBatra_1.3.jar&lt;br /&gt;
abc.Shadow 3.83c,http://robocode.aclsi.pt/abc.Shadow_3.83c.jar&lt;br /&gt;
abc.tron3.Tron 3.11,http://www.robocoderepository.com/BotFiles/2205/abc.tron3.Tron_3.11.jar&lt;br /&gt;
abc.Tron 2.02,http://www.robocoderepository.com/BotFiles/241/abc.Tron_2.02.jar&lt;br /&gt;
abud.ThirdRobo 1.0,http://www.robocoderepository.com/BotFiles/2479/abud.ThirdRobo_1.0.jar&lt;br /&gt;
ad.last.Bottom 1.0,http://www.robocoderepository.com/BotFiles/1876/ad.last.Bottom_1.0.jar&lt;br /&gt;
ad.Quest 0.10,http://www.robocoderepository.com/BotFiles/1846/ad.Quest_0.10.jar&lt;br /&gt;
adt.Ar1 2.1,http://www.robocoderepository.com/BotFiles/2254/adt.Ar1_2.1.jar&lt;br /&gt;
adt.Ar2 1.0,http://www.robocoderepository.com/BotFiles/2303/adt.Ar2_1.0.jar&lt;br /&gt;
ag.Gir 0.99,http://www.robocoderepository.com/BotFiles/3065/ag.Gir_0.99.jar&lt;br /&gt;
agd.Mooserwirt2 2.7,http://www.glyndavies.org/robocode/agd.Mooserwirt2.jar&lt;br /&gt;
ags.micro.Carpet 1.1,http://homepages.ucalgary.ca/~agschult/robocode/ags.micro.Carpet_1.1.jar&lt;br /&gt;
ags.polished.PolishedRuby 1,http://homepages.ucalgary.ca/~agschult/robocode/ags.polished.PolishedRuby_1.jar&lt;br /&gt;
ags.rougedc.RougeDC willow,http://homepages.ucalgary.ca/~agschult/robocode/ags.rougedc.RougeDC_willow.jar&lt;br /&gt;
ahf.Acero 1.0,http://www.robocoderepository.com/BotFiles/2151/ahf.Acero_1.0.jar&lt;br /&gt;
ahf.NanoAndrew .4,http://www.robocoderepository.com/BotFiles/2002/ahf.NanoAndrew_.4.jar&lt;br /&gt;
ahf.r2d2.R2d2 0.86,http://www.robocoderepository.com/BotFiles/2035/ahf.r2d2.R2d2_0.86.jar&lt;br /&gt;
AIR.iRobot 1.0,http://www.robocoderepository.com/BotFiles/3205/AIR.iRobot_1.0.jar&lt;br /&gt;
ak.Fermat 2.0,http://www.robocoderepository.com/BotFiles/799/ak.Fermat_2.0.jar&lt;br /&gt;
alex.Diabolo5 1.1,http://darkcanuck.net/rumble/robots/alex.Diabolo5_1.1.jar&lt;br /&gt;
alk.lap.LoudAndProud 2.23,http://www.robocoderepository.com/BotFiles/3601/alk.lap.LoudAndProud_2.23.jar&lt;br /&gt;
altglass.Exterminans2oo8 alpha0328,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_alpha0328.jar&lt;br /&gt;
altglass.Exterminans2oo8 Build0411,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_Build0411.jar&lt;br /&gt;
am.Miedzix 2.0,http://www.robocoderepository.com/BotFiles/3383/am.Miedzix_2.0.jar&lt;br /&gt;
am.Miedzix 3.0,http://darkcanuck.net/rumble/robots/am.Miedzix_3.0.jar&lt;br /&gt;
amarok.Rookie 1.1,http://www.robocoderepository.com/BotFiles/422/amarok.Rookie_1.1.jar&lt;br /&gt;
amk.ChumbaMini 0.2,http://www.robocoderepository.com/BotFiles/2655/amk.ChumbaMini_0.2.jar&lt;br /&gt;
amk.ChumbaWumba 0.3,http://www.robocoderepository.com/BotFiles/2646/amk.ChumbaWumba_0.3.jar&lt;br /&gt;
amk.jointstrike.JointStrike 0.2,http://www.robocoderepository.com/BotFiles/2597/amk.jointstrike.JointStrike_0.2.jar&lt;br /&gt;
amk.ShizzleStiX.ShizzleStiX 0.6,http://www.robocoderepository.com/BotFiles/2603/amk.ShizzleStiX.ShizzleStiX_0.6.jar&lt;br /&gt;
amk.superstrike.SuperStrike 0.3,http://www.robocoderepository.com/BotFiles/2600/amk.superstrike.SuperStrike_0.3.jar&lt;br /&gt;
amk.Punbot.Punbot 0.01,http://www.robocoderepository.com/BotFiles/2604/amk.Punbot.Punbot_0.01.jar&lt;br /&gt;
ao.T100 0.9,http://www.robocoderepository.com/BotFiles/3385/ao.T100_0.9.jar&lt;br /&gt;
ap.Frederick 1.1,http://darkcanuck.net/rumble/robots/ap.Frederick_1.1.jar&lt;br /&gt;
apollokidd.ApolloKidd 0.9,http://www.robocoderepository.com/BotFiles/321/apollokidd.ApolloKidd_0.9.jar&lt;br /&gt;
apv.Aspid 1.7,http://www.robocoderepository.com/BotFiles/1412/apv.Aspid_1.7.jar&lt;br /&gt;
apv.AspidReloaded 0.6,http://www.robocoderepository.com/BotFiles/1985/apv.AspidReloaded_0.6.jar&lt;br /&gt;
apv.LauLectrik 1.2,http://www.robocoderepository.com/BotFiles/1300/apv.LauLectrik_1.2.jar&lt;br /&gt;
apv.MicroAspid 1.8,http://www.robocoderepository.com/BotFiles/2519/apv.MicroAspid_1.8.jar&lt;br /&gt;
apv.NanoLauLectrik 1.0,http://www.robocoderepository.com/BotFiles/1399/apv.NanoLauLectrik_1.0.jar&lt;br /&gt;
apv.NanoLauLectrikTheCannibal 1.1,http://www.robocoderepository.com/BotFiles/2147/apv.NanoLauLectrikTheCannibal_1.1.jar&lt;br /&gt;
apv.ScruchiPu 1.0,http://www.robocoderepository.com/BotFiles/1367/apv.ScruchiPu_1.0.jar&lt;br /&gt;
apv.test.Virus 0.6.1,http://www.robocoderepository.com/BotFiles/2645/apv.test.Virus_0.6.1.jar&lt;br /&gt;
apv.TheBrainPi 0.5fix,http://sites.google.com/site/zyxsite/robocode/apv.TheBrainPi_0.5fix.jar&lt;br /&gt;
ar.horizon.Horizon 1.1.1b,http://www.robocoderepository.com/BotFiles/3746/ar.horizon.Horizon_1.1.1b.jar&lt;br /&gt;
ar.horizon.Horizon 1.1.2a,http://www.robocoderepository.com/BotFiles/3286/ar.horizon.Horizon_1.1.2a.jar&lt;br /&gt;
ar.QuantumChromodynamics 1.2.1,http://www.robocoderepository.com/BotFiles/3220/ar.QuantumChromodynamics_1.2.1.jar&lt;br /&gt;
ar.TheoryOfEverything 1.2.1,http://www.robocoderepository.com/BotFiles/3221/ar.TheoryOfEverything_1.2.1.jar&lt;br /&gt;
ara.Shera 0.88,http://www.robocoderepository.com/BotFiles/1050/ara.Shera_0.88.jar&lt;br /&gt;
areb.Union 1.06,http://www.robocoderepository.com/BotFiles/2893/areb.Union_1.06.jar&lt;br /&gt;
arthord.micro.Apoptygma 0.4,http://www.robocoderepository.com/BotFiles/1688/arthord.micro.Apoptygma_0.4.jar&lt;br /&gt;
arthord.micro.Muffin 0.6.1,http://www.robocoderepository.com/BotFiles/1963/arthord.micro.Muffin_0.6.1.jar&lt;br /&gt;
arthord.KostyaTszyu Beta2,http://www.robocoderepository.com/BotFiles/2322/arthord.KostyaTszyu_Beta2.jar&lt;br /&gt;
arthord.MannyPacquiao Delta2,http://scoutery.awardspace.com/arthord.MannyPacquiao_Delta2.jar&lt;br /&gt;
arthord.NanoSatan Mu,http://www.robocoderepository.com/BotFiles/2157/arthord.NanoSatan_Mu.jar&lt;br /&gt;
arthord.NanoSatanMelee Beta,http://www.robocoderepository.com/BotFiles/2088/arthord.NanoSatanMelee_Beta.jar&lt;br /&gt;
ary.micro.Weak 1.2,http://www.robocoderepository.com/BotFiles/3433/ary.micro.Weak_1.2.jar&lt;br /&gt;
ary.mini.Nimi 1.0,http://www.robocoderepository.com/BotFiles/3397/ary.mini.Nimi_1.0.jar&lt;br /&gt;
ary.nano.AceSurf 1.2,http://www.robocoderepository.com/BotFiles/3352/ary.nano.AceSurf_1.2.jar&lt;br /&gt;
ary.nano.ColorNanoP 1.1,http://www.robocoderepository.com/BotFiles/3629/ary.nano.ColorNanoP_1.1.jar&lt;br /&gt;
ary.Crisis 1.0,http://www.robocoderepository.com/BotFiles/3495/ary.Crisis_1.0.jar&lt;br /&gt;
ary.Help 1.0,http://darkcanuck.net/rumble/robots/ary.Help_1.0.jar&lt;br /&gt;
ary.FourWD 1.3d,http://darkcanuck.net/rumble/robots/ary.FourWD_1.3d.jar&lt;br /&gt;
ary.SMG 1.01,http://ary-robocode.110mb.com/ary.SMG_1.01.jar&lt;br /&gt;
as.xbots 1.0,http://www.millerxbots.com/as.xbots_1.0.jar&lt;br /&gt;
asd.Cthulhu 1.2,http://robocode.ilbello.com/asd.Cthulhu_1.2.jar&lt;br /&gt;
asm.Statistas 0.1,http://www.robocoderepository.com/BotFiles/1989/asm.Statistas_0.1.jar&lt;br /&gt;
awesomeness.Elite 1.0,http://robocoderepository.com/BotFiles/3597/awesomeness.Elite.jar&lt;br /&gt;
axeBots.HataMoto 3.09,http://www.robocoderepository.com/BotFiles/1655/axeBots.HataMoto_3.09.jar&lt;br /&gt;
axeBots.Musashi 2.18,http://www.robocoderepository.com/BotFiles/1759/axeBots.Musashi_2.18.jar&lt;br /&gt;
axeBots.Okami 1.04,http://www.robocoderepository.com/BotFiles/2016/axeBots.Okami_1.04.jar&lt;br /&gt;
axeBots.SilverSurfer 2.53.33fix,http://homepages.ucalgary.ca/~agschult/robocode/axeBots.SilverSurfer_2.53.33fix.jar&lt;br /&gt;
baal.nano.N 1.42,http://webpages.charter.net/eleeleth/Robots/baal.nano.N_1.42.jar&lt;br /&gt;
banshee.mini.Nexus6 0.2.0,http://www.robocoderepository.com/BotFiles/3467/banshee.mini.Nexus6_0.2.0.jar&lt;br /&gt;
banshee.micro.Nexus6 0.3.0,http://www.robocoderepository.com/BotFiles/3473/banshee.micro.Nexus6_0.3.0.jar&lt;br /&gt;
bayen.nano.Squirrel 0.2,http://www.freewebs.com/bayen/files/bayen.nano.Squirrel_0.2.jar&lt;br /&gt;
bayen.nut.Squirrel 1.621,http://darkcanuck.net/rumble/robots/bayen.nut.Squirrel_1.621.jar&lt;br /&gt;
bayen.UbaMicro 1.4,http://www.robocoderepository.com/BotFiles/2830/bayen.UbaMicro_1.4.jar&lt;br /&gt;
bayen.UbaRamLT 1.0,http://www.robocoderepository.com/BotFiles/2868/bayen.UbaRamLT_1.0.jar&lt;br /&gt;
bbo.RamboT 0.3,http://www.robocoderepository.com/BotFiles/2210/bbo.RamboT_0.3.jar&lt;br /&gt;
bbo.TheRoof 1.4.3,http://www.robocoderepository.com/BotFiles/2179/bbo.TheRoof_1.4.3.jar&lt;br /&gt;
Bemo.Sweet30 1.6.1,http://www.stg-volleyball.de/images/Bemo.Sweet30_1.6.1.jar&lt;br /&gt;
benhorner.PureAggression 0.2.6,http://www.robocoderepository.com/BotFiles/3421/benhorner.PureAggression_0.2.6.jar&lt;br /&gt;
bh.PencilRain 0.01,http://www.robocoderepository.com/BotFiles/3670/bh.PencilRain-0.01.jar&lt;br /&gt;
bigpete.Stewie 1.0,http://www.robocoderepository.com/BotFiles/2927/bigpete.Stewie_1.0.jar&lt;br /&gt;
bing2.Melody 1.3.1,http://www.ccs.neu.edu/home/bing/robocode/bing2.Melody_1.3.1.jar&lt;br /&gt;
bjl.LoneDragon 0.5,http://www.robocoderepository.com/BotFiles/1929/bjl.LoneDragon_0.5.jar&lt;br /&gt;
bndl.LostLion 1.2,http://www.robocoderepository.com/BotFiles/1033/bndl.LostLion_1.2.jar&lt;br /&gt;
bons.NanoStalker 1.2,http://www.robocoderepository.com/BotFiles/1179/bons.NanoStalker_1.2.jar&lt;br /&gt;
bp.Kuma 1.0,http://www.robocoderepository.com/BotFiles/3238/bp.Kuma_1.0.jar&lt;br /&gt;
braaropolis.Abot 1.0,http://darkcanuck.net/rumble/robots/braaropolis.Abot_1.0.jar&lt;br /&gt;
brainfade.Fallen 0.63,http://www.robocoderepository.com/BotFiles/2250/brainfade.Fallen_0.63.jar&lt;br /&gt;
brainfade.melee.Dusk 0.44,http://www.robocoderepository.com/BotFiles/2518/brainfade.melee.Dusk_0.44.jar&lt;br /&gt;
bvh.fnr.Fenrir 0.36l,http://www.robocoderepository.com/BotFiles/1428/bvh.fnr.Fenrir_0.36l.jar&lt;br /&gt;
bvh.frg.Friga 0.112dev,http://darkcanuck.net/rumble/robots/bvh.frg.Friga_0.112dev.jar&lt;br /&gt;
bvh.fry.Freya 0.82,http://darkcanuck.net/rumble/robots/bvh.fry.Freya_0.82.jar&lt;br /&gt;
bvh.hdr.Hodur 0.4,http://www.robocoderepository.com/BotFiles/1954/bvh.hdr.Hodur_0.4.jar&lt;br /&gt;
bvh.loki.Loki 0.5,http://www.robocoderepository.com/BotFiles/885/bvh.loki.Loki_0.5.jar&lt;br /&gt;
bvh.micro.Freya 0.3,http://www.robocoderepository.com/BotFiles/2815/bvh.micro.Freya_0.3.jar&lt;br /&gt;
bvh.micro.Svadilfari 0.2,http://www.robocoderepository.com/BotFiles/1086/bvh.micro.Svadilfari_0.2.jar&lt;br /&gt;
bvh.mini.Fenrir 0.39,http://www.robocoderepository.com/BotFiles/1429/bvh.mini.Fenrir_0.39.jar&lt;br /&gt;
bvh.mini.Freya 0.55,http://darkcanuck.net/rumble/robots/bvh.mini.Freya_0.55.jar&lt;br /&gt;
bvh.mini.Mjolnir 0.3,http://www.robocoderepository.com/BotFiles/2220/bvh.mini.Mjolnir_0.3.jar&lt;br /&gt;
bvh.mini.Wodan 0.50,http://www.robocoderepository.com/BotFiles/2064/bvh.mini.Wodan_0.50.jar&lt;br /&gt;
bvh.tyr.Tyr 1.74,http://www.robocoderepository.com/BotFiles/886/bvh.tyr.Tyr_1.74.jar&lt;br /&gt;
bzdp.BoxCar 2.0,http://www.robocoderepository.com/BotFiles/3703/bzdp.BoxCar_2.0.jar&lt;br /&gt;
bzdp.Pansy 2.1,http://www.robocoderepository.com/BotFiles/3726/bzdp.Pansy_2.1.jar&lt;br /&gt;
caimano.Furia_Ceca 0.22,http://www.robocoderepository.com/BotFiles/1843/caimano.Furia_Ceca_0.22.jar&lt;br /&gt;
cbot.agile.Nibbler 0.2,http://www.robocoderepository.com/BotFiles/1537/cbot.agile.Nibbler_0.2.jar&lt;br /&gt;
cbot.cbot.CBot 0.8,http://www.robocoderepository.com/BotFiles/1375/cbot.cbot.CBot_0.8.jar&lt;br /&gt;
cf.mini.Chiva 1.0,http://www.robocoderepository.com/BotFiles/2331/cf.mini.Chiva_1.0.jar&lt;br /&gt;
cf.OldMan.OldManXP 0.1,http://www.robocoderepository.com/BotFiles/1968/cf.OldMan.OldManXP_0.1.jar&lt;br /&gt;
cf.proto.Shiva 2.2,http://www.robocoderepository.com/BotFiles/2409/cf.proto.Shiva_2.2.jar&lt;br /&gt;
cf.star.Star2 1.23,http://www.robocoderepository.com/BotFiles/2255/cf.star.Star2_1.23.jar&lt;br /&gt;
ch.rhj.rbc.RHJ1 1.0,http://www.robocoderepository.com/BotFiles/1879/ch.rhj.rbc.RHJ1_1.0.jar&lt;br /&gt;
CharlieN.Omega.Omega 1.03,http://www.robocoderepository.com/BotFiles/3503/CharlieN.Omega.Omega_1.03.jar&lt;br /&gt;
chase.c.Wristwatch 1.0,http://darkcanuck.net/rumble/robots/chase.c.Wristwatch_1.0.jar&lt;br /&gt;
chase.koho.Prototype 005S,http://darkcanuck.net/rumble/robots/chase.koho.Prototype_005S.jar&lt;br /&gt;
chase.g.Genesis Demo3,http://darkcanuck.net/rumble/robots/chase.g.Genesis_Demo3.jar&lt;br /&gt;
chase.na.Seraphim 0.052c,http://www.csdgn.org/robo/chase.na.Seraphim_0.052c.jar&lt;br /&gt;
chase.o.Orbit 0.1,http://darkcanuck.net/rumble/robots/chase.o.Orbit_0.1.jar&lt;br /&gt;
chase.pm.Pytko 1.0,http://darkcanuck.net/rumble/robots/chase.pm.Pytko_1.0.jar&lt;br /&gt;
chase.Velshea 1.2.0,http://darkcanuck.net/rumble/robots/chase.Velshea_1.2.0.jar&lt;br /&gt;
chickenfuego.UrChicken2 1.0,http://www.robocoderepository.com/BotFiles/3422/chickenfuego.UrChicken2_1.0.jar&lt;br /&gt;
cjk.Merkava 0.1.1,http://www.robocoderepository.com/BotFiles/2637/cjk.Merkava_0.1.1.jar&lt;br /&gt;
cjk.Merkava 0.2.0,http://www.robocoderepository.com/BotFiles/2640/cjk.Merkava_0.2.0.jar&lt;br /&gt;
cjk.Merkava 0.3.0,http://darkcanuck.net/rumble/robots/cjk.Merkava_0.3.0.jar&lt;br /&gt;
cjm.chalk.Chalk 2.6.Be,http://scatterbright.com/robots/cjm.chalk.Chalk_2.6.Be.jar&lt;br /&gt;
cjm.Charo 1.1,http://scatterbright.com/robots/cjm.Charo_1.1.jar&lt;br /&gt;
cjm.Che 1.2,http://www.robocoderepository.com/BotFiles/2703/cjm.Che_1.2.jar&lt;br /&gt;
cjm.Chomsky 1.5,http://scatterbright.com/robots/cjm.Chomsky_1.5.jar&lt;br /&gt;
codemojo.nano.Woot 1.0,http://darkcanuck.net/rumble/robots/codemojo.nano.Woot_1.0.jar&lt;br /&gt;
csm.NthGeneration 0.04,http://www.robocoderepository.com/BotFiles/1214/csm.NthGeneration_0.04.jar&lt;br /&gt;
csp.Eagle 3.30,http://www.robocoderepository.com/BotFiles/2436/csp.Eagle_3.30.jar&lt;br /&gt;
css.Delitioner 0.11,http://darkcanuck.net/rumble/robots/css.Delitioner_0.11.jar&lt;br /&gt;
cx.BlestPain 1.41,http://www.robocoderepository.com/BotFiles/1671/cx.BlestPain_1.41.jar&lt;br /&gt;
cx.CigaretBH 1.03,http://www.robocoderepository.com/BotFiles/1414/cx.CigaretBH_1.03.jar&lt;br /&gt;
cx.Lacrimas 1.36,http://www.robocoderepository.com/BotFiles/1820/cx.Lacrimas_1.36.jar&lt;br /&gt;
cx.micro.Blur 0.2,http://www.robocoderepository.com/BotFiles/2447/cx.micro.Blur_0.2.jar&lt;br /&gt;
cx.micro.Smoke 0.96,http://www.robocoderepository.com/BotFiles/1037/cx.micro.Smoke_0.96.jar&lt;br /&gt;
cx.micro.Spark 0.6,http://www.robocoderepository.com/BotFiles/1320/cx.micro.Spark_0.6.jar&lt;br /&gt;
cx.mini.BlackSwans 0.60,http://www.robocoderepository.com/BotFiles/1158/cx.mini.BlackSwans_0.60.jar&lt;br /&gt;
cx.mini.Cigaret 1.31,http://www.robocoderepository.com/BotFiles/1152/cx.mini.Cigaret_1.31.jar&lt;br /&gt;
cx.mini.Nimrod 0.55,http://www.robocoderepository.com/BotFiles/1236/cx.mini.Nimrod_0.55.jar&lt;br /&gt;
cx.nano.Smog 2.6,http://www.robocoderepository.com/BotFiles/1036/cx.nano.Smog_2.6.jar&lt;br /&gt;
cx.Princess 1.0,http://www.robocoderepository.com/BotFiles/1343/cx.Princess_1.0.jar&lt;br /&gt;
da.NewBGank 1.4,http://www.robocoderepository.com/BotFiles/3312/da.NewBGank_1.4.jar&lt;br /&gt;
dam.MogBot 2.9,http://www.robocoderepository.com/BotFiles/555/dam.MogBot_2.9.jar&lt;br /&gt;
dans.Cinnamon 1.2,http://www.robocoderepository.com/BotFiles/1976/dans.Cinnamon_1.2.jar&lt;br /&gt;
darkcanuck.Gaff 1.50,http://darkcanuck.net/rumble/robots/darkcanuck.Gaff_1.50.jar&lt;br /&gt;
darkcanuck.Holden 1.13a,http://darkcanuck.net/rumble/robots/darkcanuck.Holden_1.13a.jar&lt;br /&gt;
darkcanuck.Pris 0.88,http://darkcanuck.net/rumble/robots/darkcanuck.Pris_0.88.jar&lt;br /&gt;
davidalves.Firebird 0.25,http://davidalves.net/robocode/robots/davidalves.Firebird_0.25.jar&lt;br /&gt;
davidalves.Phoenix 1.02,http://davidalves.net/robocode/robots/davidalves.Phoenix_1.02.jar&lt;br /&gt;
davidalves.PhoenixOS 1.1,http://davidalves.net/robocode/robots/davidalves.PhoenixOS_1.1.jar&lt;br /&gt;
davidalves.net.Duelist 0.1.6src,http://www.robocoderepository.com/BotFiles/1000/davidalves.net.Duelist_0.1.6src.jar&lt;br /&gt;
davidalves.net.DuelistMicro 1.22,http://www.robocoderepository.com/BotFiles/1144/davidalves.net.DuelistMicro_1.22.jar&lt;br /&gt;
davidalves.net.DuelistMicroMkII 1.1,http://www.robocoderepository.com/BotFiles/1281/davidalves.net.DuelistMicroMkII_1.1.jar&lt;br /&gt;
davidalves.net.DuelistMini 1.1,http://www.robocoderepository.com/BotFiles/1181/davidalves.net.DuelistMini_1.1.jar&lt;br /&gt;
davidalves.net.DuelistNano 1.0,http://www.robocoderepository.com/BotFiles/1272/davidalves.net.DuelistNano_1.0.jar&lt;br /&gt;
dcs.Eater_of_Worlds 1.1.3-A,http://www.robocoderepository.com/BotFiles/2578/dcs.Eater_of_Worlds_1.1.3-A.jar&lt;br /&gt;
dcs.Eater_of_Worlds_Mini 1.0,http://www.robocoderepository.com/BotFiles/2850/dcs.Eater_of_Worlds_Mini_1.0.jar&lt;br /&gt;
dcs.PM.Eater_of_Worlds_PM 1.2,http://www.robocoderepository.com/BotFiles/2856/dcs.PM.Eater_of_Worlds_PM_1.2.jar&lt;br /&gt;
de.erdega.robocode.Polyphemos 0.4,http://darkcanuck.net/rumble/robots/de.erdega.robocode.Polyphemos_0.4.jar&lt;br /&gt;
deewiant.Anomaly 0.2,http://www.iki.fi/~deewiant/files/deewiant.Anomaly_0.2.jar&lt;br /&gt;
deith.Czolgzilla 0.11,http://www.robocoderepository.com/BotFiles/3256/deith.Czolgzilla_0.11.jar&lt;br /&gt;
demetrix.ForceMajeure 0.75,http://ever-rage.narod.ru/robowiki/demetrix.ForceMajeure_0.75.jar&lt;br /&gt;
demetrix.nano.Neutrino 0.27,http://ever-rage.narod.ru/robowiki/demetrix.nano.Neutrino_0.27.jar&lt;br /&gt;
demetrix.nano.SledgeHammer 0.22,http://ever-rage.narod.ru/robowiki/demetrix.nano.SledgeHammer_0.22.jar&lt;br /&gt;
deo.CloudBot 1.3,http://robocoderepository.com/BotFiles/3644/deo.CloudBot_1.3.jar&lt;br /&gt;
deo.FlowerBot 1.0,http://robocoderepository.com/BotFiles/3683/deo.FlowerBot_1.0.jar&lt;br /&gt;
deo.virtual.RainbowBot 1.0,http://robocoderepository.com/BotFiles/3694/deo.virtual.RainbowBot_1.0.jar&lt;br /&gt;
dft.Calliope 5.6,http://www.robocoderepository.com/BotFiles/237/dft.Calliope_5.6.jar&lt;br /&gt;
dft.Cyanide 1.90,http://darkcanuck.net/rumble/robots/dft.Cyanide_1.90.jar&lt;br /&gt;
dft.Cyprus 3.0,http://www.robocoderepository.com/BotFiles/377/dft.Cyprus_3.0.jar&lt;br /&gt;
dft.Freddie 1.32,http://darkcanuck.net/rumble/robots/dft.Freddie_1.32.jar&lt;br /&gt;
dft.Guppy 1.0,http://darkcanuck.net/rumble/robots/dft.Guppy_1.0.jar&lt;br /&gt;
dft.Immortal 1.40,http://darkcanuck.net/rumble/robots/dft.Immortal_1.40.jar&lt;br /&gt;
dft.Krazy 1.5,http://www.robocoderepository.com/BotFiles/2099/dft.Krazy_1.5.jar&lt;br /&gt;
dft.Virgin 1.25,http://www.robocoderepository.com/BotFiles/1447/dft.Virgin_1.25.jar&lt;br /&gt;
dggp.haiku.gpBot_0 1.1,http://www.robocoderepository.com/BotFiles/3154/dggp.haiku.gpBot_0_1.1.jar&lt;br /&gt;
dittman.BlindSquirl Retired,http://home.comcast.net/~kokyunage/robocode/ugluk/dittman.BlindSquirl_Retired.jar&lt;br /&gt;
djc.Aardvark 0.3.6,http://www.robocoderepository.com/BotFiles/652/djc.Aardvark_0.3.6.jar&lt;br /&gt;
djdjdj.NanoSkunk10 1.0,http://davidjoerg.com/robocode/djdjdj.NanoSkunk10_1.0.jar&lt;br /&gt;
dk.stable.Gorgatron 1.1,http://www.robocoderepository.com/BotFiles/2112/dk.stable.Gorgatron_1.1.jar&lt;br /&gt;
dks.MicroDanMK2 1.0,http://darkcanuck.net/rumble/robots/dks.MicroDanMK2_1.0.jar&lt;br /&gt;
DM.Capriite 3.7.2,http://www.robocoderepository.com/BotFiles/2989/DM.Capriite_3.7.2.jar&lt;br /&gt;
DM.Chicken 4.0,http://www.robocoderepository.com/BotFiles/3020/DM.Chicken_4.0.jar&lt;br /&gt;
DM.Mijit .3,http://www.robocoderepository.com/BotFiles/3043/DM.Mijit_.3.jar&lt;br /&gt;
dmp.micro.Aurora 1.41,http://www.robocoderepository.com/BotFiles/853/dmp.micro.Aurora_1.41.jar&lt;br /&gt;
dmp.nano.Eve 3.41,http://www.robocoderepository.com/BotFiles/842/dmp.nano.Eve_3.41.jar&lt;br /&gt;
donjezza.Jezza 1.0,http://www.robocoderepository.com/BotFiles/3385/donjezza.Jezza_1.0.jar&lt;br /&gt;
donjezza.Muncho 1.0,http://www.robocoderepository.com/BotFiles/3384/donjezza.Muncho_1.0.jar&lt;br /&gt;
drm.CobraBora 1.12,http://www.robocoderepository.com/BotFiles/1146/drm.CobraBora_1.12.jar&lt;br /&gt;
drm.Magazine 0.39,http://www.robocoderepository.com/BotFiles/989/drm.Magazine_0.39.jar&lt;br /&gt;
ds.OoV4 0.3b,http://www.robocoderepository.com/BotFiles/2851/ds.OoV4_0.3b.jar&lt;br /&gt;
dsw.StaticD 1.0,http://darkcanuck.net/rumble/robots/dsw.StaticD_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3a 1.0,http://darkcanuck.net/rumble/robots/dsx724.VSAB_EP3a_1.0.jar&lt;br /&gt;
dsx724.VSAB_EP3_ATR 1.1,http://www.robocoderepository.com/BotFiles/3432/dsx724.VSAB_EP3_ATR_1.1.jar&lt;br /&gt;
dukie.Ambassador 1.0,http://www.robocoderepository.com/BotFiles/2845/dukie.Ambassador_1.0.jar&lt;br /&gt;
dummy.micro.HummingBird 2.14,http://www.robocoderepository.com/BotFiles/369/dummy.micro.HummingBird_2.14.jar&lt;br /&gt;
dummy.micro.Sparrow 2.5,http://www.robocoderepository.com/BotFiles/484/dummy.micro.Sparrow_2.5.jar&lt;br /&gt;
dummy.mini.Parakeet 2.40,http://www.robocoderepository.com/BotFiles/400/dummy.mini.Parakeet_2.40.jar&lt;br /&gt;
dvogon.GangBang 1.0,http://www.robocoderepository.com/BotFiles/3193/dvogon.GangBang_1.0.jar&lt;br /&gt;
dy.LevelOne 2.0,http://www.robocoderepository.com/BotFiles/3452/dy.LevelOne_2.0.jar&lt;br /&gt;
dz.Caedo 1.4,http://www.robocoderepository.com/BotFiles/1044/dz.Caedo_1.4.jar&lt;br /&gt;
dz.GalbaMicro 0.11,http://www.robocoderepository.com/BotFiles/2482/dz.GalbaMicro_0.11.jar&lt;br /&gt;
dz.GalbaMini 0.121,http://www.geocities.com/rationalinsanity_0t7/dz.GalbaMini_0.121.jar&lt;br /&gt;
dz.MostlyHarmlessNano 2.1,http://www.robocoderepository.com/BotFiles/2166/dz.MostlyHarmlessNano_2.1.jar&lt;br /&gt;
dz.OthoMicro 0.12,http://www.robocoderepository.com/BotFiles/2198/dz.OthoMicro_0.12.jar&lt;br /&gt;
dz.OthoMini 0.15,http://www.robocoderepository.com/BotFiles/2221/dz.OthoMini_0.15.jar&lt;br /&gt;
eat.HumblePieLite 1.0,http://www.robocoderepository.com/BotFiles/1088/eat.HumblePieLite_1.0.jar&lt;br /&gt;
ebo.Sparse 0.02,http://www.4geeks.de/files/ebo.Sparse_0.02.jar&lt;br /&gt;
ebo.Tahoe 1.1.79,http://www.4geeks.de/files/ebo.Tahoe_1.1.79.jar&lt;br /&gt;
el.Attackr 0.1,http://darkcanuck.net/rumble/robots/el.Attackr_0.1.jar&lt;br /&gt;
el.JumpShoot 0.2,http://www.robocoderepository.com/BotFiles/3360/el.JumpShoot_0.2.jar&lt;br /&gt;
el33t.EL33tGangstarr2 2.0,http://www.robocoderepository.com/BotFiles/2069/el33t.EL33tGangstarr2_2.0.jar&lt;br /&gt;
eld.Hmm 1.0,http://darkcanuck.net/rumble/robots/eld.Hmm_1.0.jar&lt;br /&gt;
element.Earth 1.1,http://www.robocoderepository.com/BotFiles/3587/element.Earth_1.1.jar&lt;br /&gt;
elloco.Flower 0.1r1,http://www.robocoderepository.com/BotFiles/3242/elloco.Flower_0.1r1.jar&lt;br /&gt;
elloco.Kabuto 0.2r,http://www.robocoderepository.com/BotFiles/3229/elloco.Kabuto_0.2r.jar&lt;br /&gt;
elvbot.ElverionBot 0.3,http://www.robocoderepository.com/BotFiles/3541/elvbot.ElverionBot_0.3.jar&lt;br /&gt;
emp.Yngwie 1.11,http://www.robocoderepository.com/BotFiles/1928/emp.Yngwie_1.11.jar&lt;br /&gt;
erdnis.Rover 0.3,http://www.free-games-fun.com/erdnis.Rover_0.3.jar&lt;br /&gt;
et.Predator 1.8,http://www.robocoderepository.com/BotFiles/668/et.Predator_1.8.jar&lt;br /&gt;
ethdsy.Malacka 2.4,http://www.robocoderepository.com/BotFiles/1159/ethdsy.Malacka_2.4.jar&lt;br /&gt;
evd.X1 0.01,http://www.robocoderepository.com/BotFiles/3503/evd.X1_0.01.jar&lt;br /&gt;
fala.robocode.FalaRobot 1.0,http://www.robocoderepository.com/BotFiles/3474/fala.robocode.FalaRobot_1.0.jar&lt;br /&gt;
fcr.First 1.0,http://www.robocoderepository.com/BotFiles/3362/fcr.First_1.0.jar&lt;br /&gt;
Fenix.FenixTrack 1.0,http://www.robocoderepository.com/BotFiles/1627/Fenix.FenixTrack_1.0.jar&lt;br /&gt;
florent.FloatingTadpole 1.2.6,http://www.robocoderepository.com/BotFiles/2675/florent.FloatingTadpole_1.2.6.jar&lt;br /&gt;
florent.small.LittleAngel 1.8,http://www.robocoderepository.com/BotFiles/2917/florent.small.LittleAngel_1.8.jar&lt;br /&gt;
florent.test.Toad 0.14t,http://wesley3.free.fr/florent.test.Toad_0.14t.jar&lt;br /&gt;
florent.XSeries.X2 0.17,http://wesley3.free.fr/florent.XSeries.X2_0.17.jar&lt;br /&gt;
fm.claire 1.7,http://www.robocoderepository.com/BotFiles/2251/fm.claire_1.7.jar&lt;br /&gt;
fm.mammillarias 1.3,http://www.robocoderepository.com/BotFiles/2238/fm.mammillarias_1.3.jar&lt;br /&gt;
fnc.bandit.Bandit 5.2.0,http://www.robocoderepository.com/BotFiles/2155/fnc.bandit.Bandit_5.2.0.jar&lt;br /&gt;
fnc.bandit2002.Bandit2002 4.0.2,http://www.robocoderepository.com/BotFiles/2202/fnc.bandit2002.Bandit2002_4.0.2.jar&lt;br /&gt;
frag.FragBot 1.0,http://darkcanuck.net/rumble/robots/frag.FragBot_1.0.jar&lt;br /&gt;
franzor.Lizt 1.3.1,http://pages.prodigy.net/franz1/house/franzor.Lizt_1.3.1.jar&lt;br /&gt;
fromHell.general.guinness.Guinness 0.1.2,http://www.robocoderepository.com/BotFiles/3804/FromHell.Guinness_0.1.2.jar&lt;br /&gt;
fullsail.LaxativeTeaTwo 1.0,http://www.robocoderepository.com/BotFiles/3403/fullsail.LaxativeTeaTwo_1.0.jar&lt;br /&gt;
fullsail.TimbotNoPrediction 1.0,http://darkcanuck.net/rumble/robots/fullsail.TimbotNoPrediction_1.0.jar&lt;br /&gt;
fullsail.SweetTea 1.1,http://darkcanuck.net/rumble/robots/fullsail.SweetTea_1.1.jar&lt;br /&gt;
fushi.PvP1.PvP1 2004-02-16,http://www.robocoderepository.com/BotFiles/2023/fushi.PvP1.PvP1_2004-02-16.jar&lt;br /&gt;
fw.Number1 1.0b,http://www.dijitari.com/void/robocode/fw.Number1_1.0b.jar&lt;br /&gt;
gadsky.Gadsky 1.01,http://www.robocoderepository.com/BotFiles/3595/gadsky.Gadsky_1.01.jar&lt;br /&gt;
geep.mini.GPBotA 1.0,http://www.robocoderepository.com/BotFiles/2361/geep.mini.GPBotA_1.0.jar&lt;br /&gt;
geep.mini.GPBotB 1.1,http://www.robocoderepository.com/BotFiles/2363/geep.mini.GPBotB_1.1.jar&lt;br /&gt;
germ.TheMind .2,http://www.robocoderepository.com/BotFiles/2525/germ.TheMind_.2.jar&lt;br /&gt;
gg.Squaraus 0.6,http://www.robocoderepository.com/BotFiles/1788/gg.Squaraus_0.6.jar&lt;br /&gt;
gg.Wolverine 2.0,http://darkcanuck.net/rumble/robots/gg.Wolverine_2.0.jar&lt;br /&gt;
gh.GresSuffurd 0.2.17,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GresSuffurd_0.2.17.jar&lt;br /&gt;
gh.GrubbmGrb 1.2.4,http://home.versatel.nl/gheijenk/robocode/jarfiles/gh.GrubbmGrb_1.2.4.jar&lt;br /&gt;
gh.GrypRepetyf 0.13,http://www.robocoderepository.com/BotFiles/2650/gh.GrypRepetyf_0.13.jar&lt;br /&gt;
gh.micro.Grinnik 0.7,http://www.robocoderepository.com/BotFiles/3208/gh.micro.Grinnik_0.7.jar&lt;br /&gt;
gh.micro.GrubbmThree 0.9,http://www.robocoderepository.com/BotFiles/2444/gh.micro.GrubbmThree_0.9.jar&lt;br /&gt;
gh.mini.GrubbmOne 1.0,http://www.robocoderepository.com/BotFiles/2395/gh.mini.GrubbmOne_1.0.jar&lt;br /&gt;
gh.mini.Gruwel 0.9,http://www.robocoderepository.com/BotFiles/2511/gh.mini.Gruwel_0.9.jar&lt;br /&gt;
gh.nano.Grofvuil 0.2,http://www.robocoderepository.com/BotFiles/2553/gh.nano.Grofvuil_0.2.jar&lt;br /&gt;
gimp.GimpBot 0.1,http://www.robocoderepository.com/BotFiles/2434/gimp.GimpBot_0.1.jar&lt;br /&gt;
gio.RealGioBot 1.0,http://www.robocoderepository.com/BotFiles/2521/gio.RealGioBot_1.0.jar&lt;br /&gt;
gjr.Cephalosporin 0.2,http://www.robocoderepository.com/BotFiles/2240/gjr.Cephalosporin_0.2.jar&lt;br /&gt;
gm.GaetanoA 2.15,http://www.robocoderepository.com/BotFiles/2188/gm.GaetanoA_2.15.jar&lt;br /&gt;
goblin.Bender 2.4,http://www.robocoderepository.com/BotFiles/1871/goblin.Bender_2.4.jar&lt;br /&gt;
grybgoofy.GoofyBot 0.10,http://www.robocoderepository.com/BotFiles/2196/grybgoofy.GoofyBot_0.10.jar&lt;br /&gt;
gu.MicroScoob 1.3,http://www.robocoderepository.com/BotFiles/2086/gu.MicroScoob_1.3.jar&lt;br /&gt;
hamilton.Hamilton 1.0,http://www.robocoderepository.com/BotFiles/1408/hamilton.Hamilton_1.0.jar&lt;br /&gt;
hirataatsushi.Neo 1.6,http://www.robocoderepository.com/BotFiles/1081/hirataatsushi.Neo_1.6.jar&lt;br /&gt;
hirataatsushi.Trinity 0.003,http://www.robocoderepository.com/BotFiles/1145/hirataatsushi.Trinity_0.003.jar&lt;br /&gt;
Homer.Barney 1.0,http://www.robocoderepository.com/BotFiles/1932/Homer.Barney_1.0.jar&lt;br /&gt;
homerbots.h1 1.0,http://www.robocoderepository.com/BotFiles/2999/homerbots.h1_1.0.jar&lt;br /&gt;
hp.Athena 0.1,http://www.robocoderepository.com/BotFiles/3415/hp.Athena_0.1.jar&lt;br /&gt;
ins.MobyNano 0.8,http://www.robocoderepository.com/BotFiles/939/ins.MobyNano_0.8.jar&lt;br /&gt;
intruder.PrairieWolf 2.61,http://darkcanuck.net/rumble/robots/intruder.PrairieWolf_2.61.jar&lt;br /&gt;
jaara.LambdaBot 1.1,http://www.robocoderepository.com/BotFiles/3514/jaara.LambdaBot_1.1.jar&lt;br /&gt;
jab.avk.ManuelGallegus 0.6,http://www.freewebs.com/robocode/bots/Tests/jab.avk.ManuelGallegus_0.6.jar&lt;br /&gt;
jab.DiamondStealer 5,http://www.freewebs.com/robocode/bots/DiamondStealers/jab.DiamondStealers_5.jar&lt;br /&gt;
jab.micro.Sanguijuela 0.8,http://www.freewebs.com/robocode/bots/Sanguijuela/jab.micro.Sanguijuela_0.8.jar&lt;br /&gt;
janm.Jammy 1.0,http://www.robocoderepository.com/BotFiles/3543/janm.Jammy_1.0.jar&lt;br /&gt;
jam.micro.RaikoMicro 1.44,http://www.robocoderepository.com/BotFiles/1983/jam.micro.RaikoMicro_1.44.jar&lt;br /&gt;
jam.mini.Raiko 0.43,http://www.robocoderepository.com/BotFiles/1922/jam.mini.Raiko_0.43.jar&lt;br /&gt;
jam.RaikoMX 0.32,http://www.robocoderepository.com/BotFiles/1961/jam.RaikoMX_0.32.jar&lt;br /&gt;
japs.Serenity 1.0,http://www.robocoderepository.com/BotFiles/2217/japs.Serenity_1.0.jar&lt;br /&gt;
japs.Sjonniebot 0.9.1,http://www.robocoderepository.com/BotFiles/2203/japs.Sjonniebot_0.9.1.jar&lt;br /&gt;
jasolo.Sonda 0.55,http://www.robocoderepository.com/BotFiles/1534/jasolo.Sonda_0.55.jar&lt;br /&gt;
jaw.Mouse 0.11,http://www.robocoderepository.com/BotFiles/2472/jaw.Mouse_0.11.jar&lt;br /&gt;
jaw.KarenCain 0.11,http://www.robocoderepository.com/BotFiles/2474/jaw.KarenCain_0.11.jar&lt;br /&gt;
jaybot.adv.bots.JayBot 2.0,http://darkcanuck.net/rumble/robots/jaybot.adv.bots.JayBot_2.0.jar&lt;br /&gt;
jaybot.bots.Oddball 4.0,http://darkcanuck.net/rumble/robots/jaybot.bots.Oddball_4.0.jar&lt;br /&gt;
jbot.Rabbit2 1.1,http://darkcanuck.net/rumble/robots/jbot.Rabbit2_1.1.jar&lt;br /&gt;
jcs.AutoBot 4.2.1,http://www.robocoderepository.com/BotFiles/2616/jcs.AutoBot_4.2.1.jar&lt;br /&gt;
jcs.Decepticon 2.5.3,http://www.robocoderepository.com/BotFiles/2620/jcs.Decepticon_2.5.3.jar&lt;br /&gt;
jcs.Megatron 1.2,http://www.robocoderepository.com/BotFiles/2632/jcs.Megatron_1.2.jar&lt;br /&gt;
jcs.Seth 1.8,http://darkcanuck.net/rumble/robots/jcs.Seth_1.8.jar&lt;br /&gt;
jcw.ArcherOne 1.0,http://www.geocities.com/vaguelight/jcw.ArcherOne_1.0.jar&lt;br /&gt;
jekl.DarkHallow .90.9,http://www.robocoderepository.com/BotFiles/2296/jekl.DarkHallow_.90.9.jar&lt;br /&gt;
jekl.Jekyl .70,http://www.robocoderepository.com/BotFiles/1837/jekl.Jekyl_.70.jar&lt;br /&gt;
jekl.mini.BlackPearl .91,http://www.robocoderepository.com/BotFiles/1875/jekl.mini.BlackPearl_.91.jar&lt;br /&gt;
jep.nano.Hawkwing 0.4.1,http://www.robocoderepository.com/BotFiles/1561/jep.nano.Hawkwing_0.4.1.jar&lt;br /&gt;
jep.nano.Hotspur 0.1,http://www.robocoderepository.com/BotFiles/1877/jep.nano.Hotspur_0.1.jar&lt;br /&gt;
jep.Terrible 0.4.1,http://www.robocoderepository.com/BotFiles/1536/jep.Terrible_0.4.1.jar&lt;br /&gt;
jgap.JGAP12584 1.0,http://www.robocoderepository.com/BotFiles/3383/jgap.JGAP12584_1.0.jar&lt;br /&gt;
jgap.JGAP130166 1.0,http://www.robocoderepository.com/BotFiles/3371/jgap.JGAP130166_1.0.jar&lt;br /&gt;
jgap.JGAP23423 1.0,http://www.robocoderepository.com/BotFiles/3378/jgap.JGAP23423_1.0.jar&lt;br /&gt;
jgap.JGAP6139 1.0,http://www.robocoderepository.com/BotFiles/3372/jgap.JGAP6139_1.0.jar&lt;br /&gt;
jgap.JGAP7247_2 1.0,http://www.robocoderepository.com/BotFiles/3382/jgap.JGAP7247_2_1.0.jar&lt;br /&gt;
jgap.JGAP7958 1.0,http://www.robocoderepository.com/BotFiles/3373/jgap.JGAP7958_1.0.jar&lt;br /&gt;
jje.BagPuss 1.2,http://darkcanuck.net/rumble/robots/jje.BagPuss_1.2.jar&lt;br /&gt;
jk.mega.DrussGT 1.3.17,http://www.minifly.rchomepage.com/robocode/jk.mega.DrussGT_1.3.17.jar&lt;br /&gt;
jk.micro.Toorkild 0.1.3,http://www.minifly.rchomepage.com/robocode/jk.micro.Toorkild_0.1.3.jar&lt;br /&gt;
jk.mini.CunobelinDC 0.4CT,http://www.minifly.rchomepage.com/robocode/jk.mini.CunobelinDC_0.4CT.jar&lt;br /&gt;
jk.precise.Wintermute 0.7,http://www.minifly.rchomepage.com/robocode/jk.precise.Wintermute_0.7.jar&lt;br /&gt;
jmcd.BeoWulf 2.8,http://www.robocoderepository.com/BotFiles/1377/jmcd.BeoWulf_2.8.jar&lt;br /&gt;
joe.ADinosaur 1.0,http://www.robocoderepository.com/BotFiles/2822/joe.ADinosaur_1.0.jar&lt;br /&gt;
jp.Perpy 16.0,http://www.robocoderepository.com/BotFiles/3001/jp.Perpy_16.0.jar&lt;br /&gt;
jp.SineWall 1.0,http://www.robocoderepository.com/BotFiles/2968/jp.SineWall_1.0.jar&lt;br /&gt;
jrm.Test0 1.0,http://www.robocoderepository.com/BotFiles/3636/jrm.Test0_1.0.jar&lt;br /&gt;
js.PinBall 1.6,http://www.robocoderepository.com/BotFiles/684/js.PinBall_1.6.jar&lt;br /&gt;
jsal.Jsalbot 1.0,http://jeremybubs.googlepages.com/jsal.Jsalbot_1.0.jar&lt;br /&gt;
jt.SpearmintCT Alpha,http://www.robocoderepository.com/BotFiles/2164/jt.SpearmintCT_Alpha.jar&lt;br /&gt;
jw.Booring 1.11,http://www.robocoderepository.com/BotFiles/1250/jw.Booring_1.11.jar&lt;br /&gt;
jwst.DAD.DarkAndDarker 1.1,http://darkcanuck.net/rumble/robots/jwst.DAD.DarkAndDarker_1.1.jar&lt;br /&gt;
kanishk.Fr0z3n 1.1,http://darkcanuck.net/rumble/robots/kanishk.Fr0z3n_1.1.jar&lt;br /&gt;
kano.gamma.KanoGamma 1.8,http://www.robocoderepository.com/BotFiles/1098/kano.gamma.KanoGamma_1.8.jar&lt;br /&gt;
kawam.kmBot9 1.0,http://www.robocoderepository.com/BotFiles/967/kawam.kmBot9_1.0.jar&lt;br /&gt;
kawigi.f.FhqwhgadsMicro 1.0,http://www.robocoderepository.com/BotFiles/1673/kawigi.f.FhqwhgadsMicro_1.0.jar&lt;br /&gt;
kawigi.micro.Shiz 1.1,http://www.robocoderepository.com/BotFiles/2007/kawigi.micro.Shiz_1.1.jar&lt;br /&gt;
kawigi.mini.Coriantumr 1.1,http://www.robocoderepository.com/BotFiles/1988/kawigi.mini.Coriantumr_1.1.jar&lt;br /&gt;
kawigi.mini.Fhqwhgads 1.1,http://www.robocoderepository.com/BotFiles/1604/kawigi.mini.Fhqwhgads_1.1.jar&lt;br /&gt;
kawigi.nano.FunkyChicken 1.1,http://www.robocoderepository.com/BotFiles/1512/kawigi.nano.FunkyChicken_1.1.jar&lt;br /&gt;
kawigi.nano.ThnikkaBot 0.9,http://www.robocoderepository.com/BotFiles/2059/kawigi.nano.ThnikkaBot_0.9.jar&lt;br /&gt;
kawigi.robot.Girl 1.2,http://www.robocoderepository.com/BotFiles/2124/kawigi.robot.Girl_1.2.jar&lt;br /&gt;
kawigi.sbf.Barracuda 1.0,http://www.robocoderepository.com/BotFiles/1535/kawigi.sbf.Barracuda_1.0.jar&lt;br /&gt;
kawigi.sbf.FloodHT 0.9.2,http://www.robocoderepository.com/BotFiles/1552/kawigi.sbf.FloodHT_0.9.2.jar&lt;br /&gt;
kawigi.sbf.FloodMicro 1.5,http://www.robocoderepository.com/BotFiles/1381/kawigi.sbf.FloodMicro_1.5.jar&lt;br /&gt;
kawigi.sbf.FloodMini 1.4,http://www.robocoderepository.com/BotFiles/1462/kawigi.sbf.FloodMini_1.4.jar&lt;br /&gt;
kawigi.sbf.FloodNano 1.2,http://www.robocoderepository.com/BotFiles/1421/kawigi.sbf.FloodNano_1.2.jar&lt;br /&gt;
kawigi.sbf.FloodSonnet 0.9,http://www.robocoderepository.com/BotFiles/1779/kawigi.sbf.FloodSonnet_0.9.jar&lt;br /&gt;
kawigi.sbf.Teancum 1.3,http://www.robocoderepository.com/BotFiles/1470/kawigi.sbf.Teancum_1.3.jar&lt;br /&gt;
kawigi.spare.SpareParts 0.7.6nosnd,http://www.robocoderepository.com/BotFiles/1335/kawigi.spare.SpareParts_0.7.6nosnd.jar&lt;br /&gt;
kc.micro.Needle 0.101,http://www.robocoderepository.com/BotFiles/3379/kc.micro.Needle_0.101.jar&lt;br /&gt;
kc.micro.Thorn 1.22,http://www.robocoderepository.com/BotFiles/3806/kc.micro.Thorn_1.22.jar&lt;br /&gt;
kc.micro.WaveShark 0.3,http://darkcanuck.net/rumble/robots/kc.micro.WaveShark_0.3.jar&lt;br /&gt;
kc.mini.Vyper 0.311,http://darkcanuck.net/rumble/robots/kc.mini.Vyper_0.311.jar&lt;br /&gt;
kc.nano.Splinter 1.2,http://darkcanuck.net/rumble/robots/kc.nano.Splinter_1.2.jar&lt;br /&gt;
kc.serpent.Hydra 0.21,http://darkcanuck.net/rumble/robots/kc.serpent.Hydra_0.21.jar&lt;br /&gt;
kc.serpent.WaveSerpent 2.0,http://www.robocoderepository.com/BotFiles/2915/kc.serpent.WaveSerpent_2.0.jar&lt;br /&gt;
kcn.percept.PerceptBot 2.3,http://www.robocoderepository.com/BotFiles/1075/kcn.percept.PerceptBot_2.3.jar&lt;br /&gt;
kcn.unnamed.Unnamed 1.21,http://www.robocoderepository.com/BotFiles/1969/kcn.unnamed.Unnamed_1.21.jar&lt;br /&gt;
kid.Gladiator .7.2,http://www.citlink.net/~normanp/robocode/gladiator/kid.Gladiator_.7.2.jar&lt;br /&gt;
kid.Toa .0.3,http://bnhome.hopto.org/robocode/kid.Toa_.0.3.jar&lt;br /&gt;
kinsen.melee.Angsaichmophobia 1.8c,http://sites.google.com/site/dcvqksyb/robocode/kinsen.melee.Angsaichmophobia_1.8c.jar&lt;br /&gt;
kinsen.nano.Hoplomachy 1.6,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Hoplomachy_1.6.jar&lt;br /&gt;
kinsen.nano.Quarrelet 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Quarrelet_1.0.jar&lt;br /&gt;
kinsen.nano.Senticous 1.0,http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.Senticous_1.0.jar&lt;br /&gt;
kjc.etc.Dharok 1.0,http://www.robocoderepository.com/BotFiles/3293/kjc.etc.Dharok_1.0.jar&lt;br /&gt;
kjc.MailManX 2.0,http://www.robocoderepository.com/BotFiles/3288/kjc.MailManX_2.0.jar&lt;br /&gt;
kjc.Karaykan 1.0,http://www.robocoderepository.com/BotFiles/3289/kjc.Karaykan_1.0.jar&lt;br /&gt;
klein.GottesKrieger 1.1,http://www.robocoderepository.com/BotFiles/3258/klein.GottesKrieger_1.1.jar&lt;br /&gt;
Krabb.fe4r.Fe4r 0.4,http://www.robocoderepository.com/BotFiles/2766/Krabb.fe4r.Fe4r_0.4.jar&lt;br /&gt;
Krabb.sliNk.Garm 0.9z,http://designnj.de/roboking/Krabb.sliNk.Garm_0.9z.jar&lt;br /&gt;
Krabb.krabby.Krabby 1.18b,http://darkcanuck.net/rumble/robots/Krabb.krabby.Krabby_1.18b.jar&lt;br /&gt;
Krabb.krabby2.Krabby2 1.9o,http://darkcanuck.net/rumble/robots/Krabb.krabby2.Krabby2_1.9o.jar&lt;br /&gt;
krillr.mini.JointStrike 2.0.0,http://darkcanuck.net/rumble/robots/krillr.mini.JointStrike_2.0.0.jar&lt;br /&gt;
krillr.mega.Psyche 0.0.3,http://darkcanuck.net/rumble/robots/krillr.mega.Psyche_0.0.3.jar&lt;br /&gt;
krzysiek.robbo2.Robbo 1.0.0,http://darkcanuck.net/rumble/robots/krzysiek.robbo2.Robbo_1.0.0.jar&lt;br /&gt;
kurios.DOSexe .9a,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9a.jar&lt;br /&gt;
kurios.DOSexe .9b,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9b.jar&lt;br /&gt;
kvk.HebusLeTroll 0.41,http://www.robocoderepository.com/BotFiles/2125/kvk.HebusLeTroll_0.41.jar&lt;br /&gt;
labg.Cataclysm 2.05,http://www.robocoderepository.com/BotFiles/2399/labg.Cataclysm_2.05.jar&lt;br /&gt;
leb.ShootAnArrow 0.1,http://www.robocoderepository.com/BotFiles/2648/leb.ShootAnArrow_0.1.jar&lt;br /&gt;
lechu.Ala 0.0.4,http://www.robocoderepository.com/BotFiles/3497/lechu.Ala_0.0.4.jar&lt;br /&gt;
lechu.Lechu 1.1,http://www.robocoderepository.com/BotFiles/3480/lechu.Lechu_1.1.jar&lt;br /&gt;
lion.Kresnanano 1.0,http://www.robocoderepository.com/BotFiles/2295/lion.Kresnanano_1.0.jar&lt;br /&gt;
lk.nano.Avesnar 1.1,http://www.robocoderepository.com/BotFiles/1597/lk.nano.Avesnar_1.1.jar&lt;br /&gt;
lorneswork.Predator 1.0,http://www.robocoderepository.com/BotFiles/2609/lorneswork.Predator_1.0.jar&lt;br /&gt;
lrem.Spectre 0.4.4,http://www.robocoderepository.com/BotFiles/2253/lrem.Spectre_0.4.4.jar&lt;br /&gt;
lrem.magic.TormentedAngel Alpha,http://maxnet.org.pl/~lrem/lrem.magic.TormentedAngel_Alpha.jar&lt;br /&gt;
lrem.micro.MoggFanatic 0.2,http://www.robocoderepository.com/BotFiles/2639/lrem.micro.MoggFanatic_0.2.jar&lt;br /&gt;
lrem.micro.FalseProphet Alpha,http://www.robocoderepository.com/BotFiles/2415/lrem.micro.FalseProphet_Alpha.jar&lt;br /&gt;
lrem.quickhack.QuickHack 1.0,http://www.robocoderepository.com/BotFiles/2555/lrem.quickhack.QuickHack_1.0.jar&lt;br /&gt;
lunchie.Lunchbox 0.93,http://darkcanuck.net/rumble/robots/lunchie.Lunchbox_0.93.jar&lt;br /&gt;
lw.LuthersTest 0.1,http://www.citlink.net/~normanp/robocode/luther/lw.LuthersTest_0.1.jar&lt;br /&gt;
m3thos.Eva00 1.1,http://escher.ist.utl.pt/miguel/robocode/m3thos.Eva00_1.1.jar&lt;br /&gt;
m3thos.Eva02 0.7.1,http://escher.ist.utl.pt/miguel/robocode/m3thos.Eva02_0.7.1.jar&lt;br /&gt;
m3thos.mini.Eva01 0.5.5,http://escher.ist.utl.pt/miguel/robocode/m3thos.mini.Eva01_0.5.5.jar&lt;br /&gt;
madmath.Cow 0.1.1,http://www.robocoderepository.com/BotFiles/3476/madmath.Cow_0.1.1.jar&lt;br /&gt;
marcinek.TopGun 1.3,http://www.robocoderepository.com/BotFiles/3458/marcinek.TopGun_1.3.jar&lt;br /&gt;
marksteam.Phoenix 1.0,http://www.robocoderepository.com/BotFiles/2749/marksteam.Phoenix_1.0.jar&lt;br /&gt;
matt.advanced.Katana 1.0,http://www.robocoderepository.com/BotFiles/2498/matt.advanced.Katana_1.0.jar&lt;br /&gt;
matt.BlueMind 0.8.00,http://www.robocoderepository.com/BotFiles/2685/matt.BlueMind_0.8.00.jar&lt;br /&gt;
matt.UnderDark3 2.4.34,http://www.robocoderepository.com/BotFiles/2485/matt.UnderDark3_2.4.34.jar&lt;br /&gt;
matt.UnderDark4 0.4.00,http://www.robocoderepository.com/BotFiles/2644/matt.UnderDark4_0.4.00.jar&lt;br /&gt;
mbh.Mbh 0.1,http://www.robocoderepository.com/BotFiles/3365/mbh.Mbh_0.1.jar&lt;br /&gt;
mbro.BelajarBot 0.0.3,http://www.robocoderepository.com/BotFiles/2471/mbro.BelajarBot_0.0.3.jar&lt;br /&gt;
mbro.Detektor3 0.1.1,http://www.robocoderepository.com/BotFiles/2478/mbro.Detektor3_0.1.1.jar&lt;br /&gt;
mc.Messapia 0.1.8,http://www.robocoderepository.com/BotFiles/2223/mc.Messapia_0.1.8.jar&lt;br /&gt;
mcb.Audace 1.3,http://www.robocoderepository.com/BotFiles/3424/mcb.Audace_1.3.jar&lt;br /&gt;
md.November 1.0,http://www.robocoderepository.com/BotFiles/1004/md.November_1.0.jar&lt;br /&gt;
md.Pasta 1.1,http://www.robocoderepository.com/BotFiles/1014/md.Pasta_1.1.jar&lt;br /&gt;
md.VelociRaptor 1.3,http://www.robocoderepository.com/BotFiles/232/md.VelociRaptor_1.3.jar&lt;br /&gt;
mdouet.BotKicker 2.0,http://www.robocoderepository.com/BotFiles/1478/mdouet.BotKicker_2.0.jar&lt;br /&gt;
metal.small.MCool 1.21,http://www.robocoderepository.com/BotFiles/1698/metal.small.MCool_1.21.jar&lt;br /&gt;
metal.small.dna2.MCoolDNA 1.5,http://www.robocoderepository.com/BotFiles/2354/metal.small.dna2.MCoolDNA_1.5.jar&lt;br /&gt;
mk.Alpha 0.2.1,http://darkcanuck.net/rumble/robots/mk.Alpha_0.2.1.jar&lt;br /&gt;
mladjo.AIR 0.7,http://www.robocoderepository.com/BotFiles/3187/mladjo.AIR_0.7.jar&lt;br /&gt;
mladjo.GnuKlub 0.1,http://darkcanuck.net/rumble/robots/mladjo.GnuKlub_0.1.jar&lt;br /&gt;
mladjo.Grrrrr 0.9,http://www.robocoderepository.com/BotFiles/3189/mladjo.Grrrrr_0.9.jar&lt;br /&gt;
mladjo.iRobot 0.3,http://www.robocoderepository.com/BotFiles/3149/mladjo.iRobot_0.3.jar&lt;br /&gt;
mladjo.Startko 1.0,http://www.robocoderepository.com/BotFiles/3186/mladjo.Startko_1.0.jar&lt;br /&gt;
mld.DustBunny 3.8,http://www.robocoderepository.com/BotFiles/3650/mld.DustBunny_3.8.jar&lt;br /&gt;
mld.Infinity 2.2,http://www.robocoderepository.com/BotFiles/3591/mld.Infinity_2.2.jar&lt;br /&gt;
mld.LittleBlackBook 1.53,http://www.robocoderepository.com/BotFiles/3695/mld.LittleBlackBook_1.53.jar&lt;br /&gt;
mld.Moebius 2.9.3,http://www.robocoderepository.com/BotFiles/3634/mld.Moebius_2.9.3.jar&lt;br /&gt;
mld.Tide 1.2,http://www.robocoderepository.com/BotFiles/3639/mld.Tide_1.2.jar&lt;br /&gt;
mld.Wisdom 1.0,http://www.robocoderepository.com/BotFiles/3640/mld.Wisdom_1.0.jar&lt;br /&gt;
mmb.Roskilde 0.4,http://www.robocoderepository.com/BotFiles/3787/mmb.Roskilde_0.4.jar&lt;br /&gt;
mme.NikeEnhanced 2.0,http://www.robocoderepository.com/BotFiles/2828/mme.NikeEnhanced_2.0.jar&lt;br /&gt;
mn.Combat 1.0,http://www.robocoderepository.com/BotFiles/2351/mn.Combat_1.0.jar&lt;br /&gt;
mn.WarMachine 1.1,http://www.robocoderepository.com/BotFiles/2574/mn.WarMachine_1.1.jar&lt;br /&gt;
mnt.AHEB 0.6a,http://www.robocoderepository.com/BotFiles/2417/mnt.AHEB_0.6a.jar&lt;br /&gt;
mnt.SurferBot 0.2.5,http://www.robocoderepository.com/BotFiles/2433/mnt.SurferBot_0.2.5.jar&lt;br /&gt;
morbid.MorbidPriest 1.0,http://www.robocoderepository.com/BotFiles/1758/morbid.MorbidPriest_1.0.jar&lt;br /&gt;
mrm.MightyMoose .2,http://darkcanuck.net/rumble/robots/mrm.MightyMoose_.2.jar&lt;br /&gt;
ms.Ares 0.19,http://www.robocoderepository.com/BotFiles/730/ms.Ares_0.19.jar&lt;br /&gt;
mue.Ascendant 1.2.27,http://mue.sonar-echo.de/robocode/mue.Ascendant_1.2.27.jar&lt;br /&gt;
mue.Hyperion 0.8,http://www.robocoderepository.com/BotFiles/2224/mue.Hyperion_0.8.jar&lt;br /&gt;
muf.CrazyKitten 0.9,http://www.robocoderepository.com/BotFiles/1946/muf.CrazyKitten_0.9.jar&lt;br /&gt;
mwj.A1176183 1.0,http://robocode.rleach.id.au/mwj.A1176183_1.0.jar&lt;br /&gt;
myl.micro.Avipes 1.00,http://www.robocoderepository.com/BotFiles/1347/myl.micro.Avipes_1.00.jar&lt;br /&gt;
myl.micro.NekoNinja 1.30,http://www.robocoderepository.com/BotFiles/944/myl.micro.NekoNinja_1.30.jar&lt;br /&gt;
myl.micro.Predator 1.50,http://www.robocoderepository.com/BotFiles/1097/myl.micro.Predator_1.50.jar&lt;br /&gt;
myl.micro.Troodon 1.10,http://www.robocoderepository.com/BotFiles/1226/myl.micro.Troodon_1.10.jar&lt;br /&gt;
myl.nano.Graviton 1.10,http://www.robocoderepository.com/BotFiles/770/myl.nano.Graviton_1.10.jar&lt;br /&gt;
myl.nano.Kakuru 1.20,http://www.robocoderepository.com/BotFiles/1330/myl.nano.Kakuru_1.20.jar&lt;br /&gt;
myl.nano.KomoriNinja 1.1,http://www.robocoderepository.com/BotFiles/978/myl.nano.KomoriNinja_1.1.jar&lt;br /&gt;
mz.Adept 2.65,http://www.robocoderepository.com/BotFiles/2090/mz.Adept_2.65.jar&lt;br /&gt;
mz.AdeptBSB 1.03,http://www.robocoderepository.com/BotFiles/2113/mz.AdeptBSB_1.03.jar&lt;br /&gt;
mz.Movement 1.8,http://www.robocoderepository.com/BotFiles/2145/mz.Movement_1.8.jar&lt;br /&gt;
mz.NanoDeath 2.56,http://www.robocoderepository.com/BotFiles/2010/mz.NanoDeath_2.56.jar&lt;br /&gt;
mz.NanoGod 2.02,http://www.robocoderepository.com/BotFiles/1996/mz.NanoGod_2.02.jar&lt;br /&gt;
nammyung.ModelT 0.23,http://www.robocoderepository.com/BotFiles/969/nammyung.ModelT_0.23.jar&lt;br /&gt;
nanoskank.NanoSkank 1.0,http://darkcanuck.net/rumble/robots/nanoskank.NanoSkank_1.0.jar&lt;br /&gt;
nat.atomic.AtomicMini 0.21,http://nat.robothai.net/robots/nat.atomic.AtomicMini_0.21.jar&lt;br /&gt;
nat.BlackHole 0.1.06,http://nat.robothai.net/robots/nat.BlackHole_0.1.06.jar&lt;br /&gt;
nat.micro.Hebe 0.1,http://nat.robothai.net/robots/nat.micro.Hebe_0.1.jar&lt;br /&gt;
nat.micro.NP 1.32,http://nat.robothai.net/robots/nat.micro.NP_1.32.jar&lt;br /&gt;
nat.nano.AW 1.0,http://nat.robothai.net/robots/nat.nano.AW_1.0.jar&lt;br /&gt;
nat.nano.Mysterious 1.0,http://nat.robothai.net/robots/nat.nano.Mysterious_1.0.jar&lt;br /&gt;
nat.nano.Ocnirp 1.73,http://nat.robothai.net/robots/nat.nano.Ocnirp_1.73.jar&lt;br /&gt;
nat.nano.OcnirpPM 1.0,http://nat.robothai.net/robots/nat.nano.OcnirpPM_1.0.jar&lt;br /&gt;
nat.nano.OcnirpSNG 1.0b,http://nat.robothai.net/robots/nat.nano.OcnirpSNG_1.0b.jar&lt;br /&gt;
nat.Samekh 0.3,http://nat.robothai.net/robots/nat.Samekh_0.3.jar&lt;br /&gt;
ndn.DyslexicMonkey 1.1,http://www.robocoderepository.com/BotFiles/1141/ndn.DyslexicMonkey_1.1.jar&lt;br /&gt;
ne.Chimera 1.2,http://www.robocoderepository.com/BotFiles/3276/ne.Chimera_1.2.jar&lt;br /&gt;
nexus.One 1.0,http://darkcanuck.net/rumble/robots/nexus.One_1.0.jar&lt;br /&gt;
nexus.Prototype 1.0,http://darkcanuck.net/rumble/robots/nexus.Prototype_1.0.jar&lt;br /&gt;
nic.Nicator 2.4,http://www.robocoderepository.com/BotFiles/193/nic.Nicator_2.4.jar&lt;br /&gt;
nic.SnippetBot 1.0,http://www.robocoderepository.com/BotFiles/286/nic.SnippetBot_1.0.jar&lt;br /&gt;
non.mega.NaN 0.1,http://www.robocoderepository.com/BotFiles/1960/non.mega.NaN_0.1.jar&lt;br /&gt;
non.mega.NoName 0.0,http://www.robocoderepository.com/BotFiles/1957/non.mega.NoName_0.0.jar&lt;br /&gt;
Noran.BitchingElk 0.054,http://www.robocoderepository.com/BotFiles/1855/Noran.BitchingElk_0.054.jar&lt;br /&gt;
Noran.RandomTargeting 0.02,http://www.robocoderepository.com/BotFiles/1849/Noran.RandomTargeting_0.02.jar&lt;br /&gt;
nova.Snow 1.0,http://www.robocoderepository.com/BotFiles/3623/nova.Snow_1.0.jar&lt;br /&gt;
ntc.Cannon 0.94,http://www.robocoderepository.com/BotFiles/3797/ntc.Cannon_0.94.jar&lt;br /&gt;
ntc.Evader 1.2,http://www.robocoderepository.com/BotFiles/3355/ntc.Evader_1.2.jar&lt;br /&gt;
ntc.Knowledge 1.1,http://www.robocoderepository.com/BotFiles/3354/ntc.Knowledge_1.1.jar&lt;br /&gt;
ntc.Lasers.Lasers 0.9,http://www.robocoderepository.com/BotFiles/3359/ntc.Lasers.Lasers_0.9.jar&lt;br /&gt;
ntc.Plains 0.9,http://www.robocoderepository.com/BotFiles/3381/ntc.Plains_0.9.jar&lt;br /&gt;
ntw.Sighup 1.5,http://darkcanuck.net/rumble/robots/ntw.Sighup_1.5.jar&lt;br /&gt;
ntw.Sigsys 1.6,http://darkcanuck.net/rumble/robots/ntw.Sigsys_1.6.jar&lt;br /&gt;
nz.jdc.micro.HedgehogGF 1.3,http://www.robocoderepository.com/BotFiles/3626/nz.jdc.micro.HedgehogGF_1.3.jar&lt;br /&gt;
nz.jdc.micro.HedgehogP 1.2,http://www.robocoderepository.com/BotFiles/3622/nz.jdc.micro.HedgehogP_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophytePattern 1.0,http://www.robocoderepository.com/BotFiles/3578/nz.jdc.nano.NeophytePattern_1.0.jar&lt;br /&gt;
nz.jdc.nano.NeophytePRAL 1.2,http://www.robocoderepository.com/BotFiles/3568/nz.jdc.nano.NeophytePRAL_1.2.jar&lt;br /&gt;
nz.jdc.nano.NeophyteSRAL 1.2,http://www.robocoderepository.com/BotFiles/3567/nz.jdc.nano.NeophyteSRAL_1.2.jar&lt;br /&gt;
oa.weak.BotherBot 0.1,http://www.robocoderepository.com/BotFiles/2956/oa.weak.BotherBot_0.1.jar&lt;br /&gt;
oa.weak.FlyMk1 0.1,http://www.robocoderepository.com/BotFiles/2958/oa.weak.FlyMk1_0.1.jar&lt;br /&gt;
ola.Puffin 1.0,http://www.robocoderepository.com/BotFiles/3380/ola.Puffin_1.0.jar&lt;br /&gt;
oog.melee.Capulet 0.1,http://www.robocoderepository.com/BotFiles/3765/oog.melee.Capulet_0.1.jar&lt;br /&gt;
oog.melee.StarLight 0.1,http://www.robocoderepository.com/BotFiles/3761/oog.melee.StarLight_0.1.jar&lt;br /&gt;
oog.micro.MagicD3 0.41,http://www.robocoderepository.com/BotFiles/3801/oog.micro.MagicD3_0.41.jar&lt;br /&gt;
oog.micro.Maui 1.1,http://www.robocoderepository.com/BotFiles/3779/oog.micro.Maui_1.1.jar&lt;br /&gt;
oog.micro.SavantMicro 0.31,http://www.robocoderepository.com/BotFiles/3747/oog.micro.SavantMicro_0.31.jar&lt;br /&gt;
oog.nano.Fuatisha 1.0,http://www.robocoderepository.com/BotFiles/3720/oog.nano.Fuatisha_1.0.jar&lt;br /&gt;
oog.nano.MagicD2 2.4,http://www.robocoderepository.com/BotFiles/3749/oog.nano.MagicD2_2.4.jar&lt;br /&gt;
oog.nano.SavantVS 1.1,http://www.robocoderepository.com/BotFiles/3714/oog.nano.SavantVS_1.1.jar&lt;br /&gt;
oog.nano.SavantWS 0.1,http://www.robocoderepository.com/BotFiles/3709/oog.nano.SavantWS_0.1.jar&lt;br /&gt;
pa.Improved 1.1,http://darkcanuck.net/rumble/robots/pa.Improved_1.1.jar&lt;br /&gt;
pak.JakeTheTestingRobot .1b,http://www.robocoderepository.com/BotFiles/3373/pak.JakeTheTestingRobot_.1b.jar&lt;br /&gt;
pak.Dargon 1.0b,http://www.robocoderepository.com/BotFiles/3388/pak.Dargon_1.0b.jar&lt;br /&gt;
pak.Dargon .2c,http://www.robocoderepository.com/BotFiles/3389/pak.Dargon_.2c.jar&lt;br /&gt;
paolord.TheHulk 1.0,http://www.robocoderepository.com/BotFiles/3595/paolord.TheHulk_1.0.jar&lt;br /&gt;
patson.PatsonTestBot 1.0,http://www.robocoderepository.com/BotFiles/3324/patson.PatsonTestBot_1.0.jar&lt;br /&gt;
paulk.PaulV3 1.7,http://www.robocoderepository.com/BotFiles/3502/paulk.PaulV3_1.7.jar&lt;br /&gt;
paulk.PaulV3 1.6,http://www.robocoderepository.com/BotFiles/3497/paulk.PaulV3_1.6.jar&lt;br /&gt;
paulk.PaulV3 1.5,http://www.robocoderepository.com/BotFiles/3496/paulk.PaulV3_1.5.jar&lt;br /&gt;
paulk.PaulV3 1.3,http://www.robocoderepository.com/BotFiles/3495/paulk.PaulV3_1.3.jar&lt;br /&gt;
pb.Oscillator 1.0,http://www.robocoderepository.com/BotFiles/2070/pb.Oscillator_1.0.jar&lt;br /&gt;
pe.mini.SandboxMini 1.2,http://www.robocoderepository.com/BotFiles/917/pe.mini.SandboxMini_1.2.jar&lt;br /&gt;
pe.minimelee.SandboxMiniMelee 1.1,http://www.robocoderepository.com/BotFiles/934/pe.minimelee.SandboxMiniMelee_1.1.jar&lt;br /&gt;
pe.SandboxDT 3.02,http://www.robocoderepository.com/BotFiles/793/pe.SandboxDT_3.02.jar&lt;br /&gt;
pe.SandboxLump 1.52,http://www.robocoderepository.com/BotFiles/731/pe.SandboxLump_1.52.jar&lt;br /&gt;
pedersen.Banzai beta.5,http://home.comcast.net/~kokyunage/robocode/hubris/pedersen.Banzai_beta.5.jar&lt;br /&gt;
pedersen.Hubris beta.7.1,http://home.comcast.net/~kokyunage/robocode/hubris/pedersen.Hubris_beta.7.1.jar&lt;br /&gt;
pedersen.Ugluk 1.0,http://home.comcast.net/~kokyunage/robocode/ugluk/pedersen.Ugluk_1.0.jar&lt;br /&gt;
pez.clean.Swiffer 0.2.9,http://www.robocoderepository.com/BotFiles/1883/pez.clean.Swiffer_0.2.9.jar&lt;br /&gt;
pez.frankie.Frankie 0.9.6.1,http://www.robocoderepository.com/BotFiles/1565/pez.frankie.Frankie_0.9.6.1.jar&lt;br /&gt;
pez.gloom.GloomyDark 0.9.2,http://www.robocoderepository.com/BotFiles/1741/pez.gloom.GloomyDark_0.9.2.jar&lt;br /&gt;
pez.mako.Mako 1.5,http://www.robocoderepository.com/BotFiles/1317/pez.mako.Mako_1.5.jar&lt;br /&gt;
pez.micro.Aristocles 0.3.7,http://www.robocoderepository.com/BotFiles/1923/pez.micro.Aristocles_0.3.7.jar&lt;br /&gt;
pez.mini.ChironexFleckeri 0.5,http://www.robocoderepository.com/BotFiles/2513/pez.mini.ChironexFleckeri_0.5.jar&lt;br /&gt;
pez.mini.Gouldingi 1.5,http://www.robocoderepository.com/BotFiles/1351/pez.mini.Gouldingi_1.5.jar&lt;br /&gt;
pez.mini.Pugilist 2.4.18,http://darkcanuck.net/rumble/robots/pez.mini.Pugilist_2.4.18.jar&lt;br /&gt;
pez.mini.Tityus 0.9.1,http://www.robocoderepository.com/BotFiles/1657/pez.mini.Tityus_0.9.1.jar&lt;br /&gt;
pez.mini.VertiLeach 0.4.0,http://www.robocoderepository.com/BotFiles/1744/pez.mini.VertiLeach_0.4.0.jar&lt;br /&gt;
pez.nano.Icarus 0.3,http://www.robocoderepository.com/BotFiles/2353/pez.nano.Icarus_0.3.jar&lt;br /&gt;
pez.nano.LittleEvilBrother 0.1,http://www.robocoderepository.com/BotFiles/2056/pez.nano.LittleEvilBrother_0.1.jar&lt;br /&gt;
pez.rumble.Ali 0.4.9,http://www.robocoderepository.com/BotFiles/2416/pez.rumble.Ali_0.4.9.jar&lt;br /&gt;
pez.rumble.CassiusClay 2rho.01b,http://www.dijitari.com/void/robocode/pez.rumble.CassiusClay_2rho.01b.jar&lt;br /&gt;
pfvicm.Sobieski 7.2.3b,http://www.robocoderepository.com/BotFiles/2911/pfvicm.Sobieski_7.2.3b.jar&lt;br /&gt;
ph.micro.Pikeman 0.4.5,http://www.robocoderepository.com/BotFiles/2364/ph.micro.Pikeman_0.4.5.jar&lt;br /&gt;
ph.mini.Archer 0.6.6,http://www.robocoderepository.com/BotFiles/2326/ph.mini.Archer_0.6.6.jar&lt;br /&gt;
ph.musketeer.Musketeer 0.6,http://www.robocoderepository.com/BotFiles/2281/ph.musketeer.Musketeer_0.6.jar&lt;br /&gt;
ph.Thinker 0.2.5,http://www.robocoderepository.com/BotFiles/2336/ph.Thinker_0.2.5.jar&lt;br /&gt;
pi.Dark 10,http://darkcanuck.net/rumble/robots/pi.Dark_10.jar&lt;br /&gt;
pl.Drum 0.1,http://darkcanuck.net/rumble/robots/pl.Drum_0.1.jar&lt;br /&gt;
pl.Patton.GeneralPatton 1.54,http://darkcanuck.net/rumble/robots/pl.Patton.GeneralPatton_1.54.jar&lt;br /&gt;
pla.Memnoch 0.5,http://www.robocoderepository.com/BotFiles/2211/pla.Memnoch_0.5.jar&lt;br /&gt;
PK.Twardy 0.4.2,http://www.robocoderepository.com/BotFiles/3272/PK.Twardy_0.4.2.jar&lt;br /&gt;
pkdeken.Paladin 1.0,http://www.robocoderepository.com/BotFiles/3556/pkdeken.Paladin_1.0.jar&lt;br /&gt;
PkKillers.PkAssassin 1.0,http://www.robocoderepository.com/BotFiles/3485/PkKillers.PkAssassin_1.0.jar&lt;br /&gt;
pmc.SniperBot 1.0,http://darkcanuck.net/rumble/robots/pmc.SniperBot_1.0.jar&lt;br /&gt;
positive.Portia 1.25f,http://www.robocoderepository.com/BotFiles/3807/positive.Portia_1.25f.jar&lt;br /&gt;
projectx.ProjectNano 2.0,http://darkcanuck.net/rumble/robots/projectx.ProjectNano_2.0.jar&lt;br /&gt;
projectx.TestNano 1.0,http://www.robocoderepository.com/BotFiles/3444/projectx.TestNano_1.0.jar&lt;br /&gt;
pulsar.PulsarMax 0.8.9,http://www.robocoderepository.com/BotFiles/2227/pulsar.PulsarMax_0.8.9.jar&lt;br /&gt;
pulsar.PulsarNano 0.2.4,http://www.robocoderepository.com/BotFiles/2335/pulsar.PulsarNano_0.2.4.jar&lt;br /&gt;
pulsar.Nanis 0.3,http://www.robocoderepository.com/BotFiles/2560/pulsar.Nanis_0.3.jar&lt;br /&gt;
qohnil.blot.BlotBot 3.61,http://www.robocoderepository.com/BotFiles/546/qohnil.blot.BlotBot_3.61.jar&lt;br /&gt;
Queens_teamrobot.UltraRazor 1.0,http://www.robocoderepository.com/BotFiles/2108/Queens_teamrobot.UltraRazor_1.0.jar&lt;br /&gt;
quietus.Invader 0.1,http://robocode.rleach.id.au/quietus.Invader_0.1.jar&lt;br /&gt;
quietus.NarrowRadar 0.1,http://robocode.rleach.id.au/quietus.NarrowRadar_0.1.jar&lt;br /&gt;
radnor.DoctorBob 1.42,http://www.robocoderepository.com/BotFiles/2133/radnor.DoctorBob_1.42.jar&lt;br /&gt;
radnor.RamRod 1.0,http://www.robocoderepository.com/BotFiles/2085/radnor.RamRod_1.0.jar&lt;br /&gt;
rampancy.Durandal 1.3d,http://robocoderepository.com/BotFiles/3728/rampancy.Durandal_1.3d.jar&lt;br /&gt;
rapture.Rapture 2.13,http://www.robocoderepository.com/BotFiles/15/rapture.Rapture_2.13.jar&lt;br /&gt;
ratosh.nano.Debo 1.36,http://www.robocoderepository.com/BotFiles/1702/ratosh.nano.Debo_1.36.jar&lt;br /&gt;
ratosh.Nobo 0.21,http://www.robocoderepository.com/BotFiles/1612/ratosh.Nobo_0.21.jar&lt;br /&gt;
ratosh.Wesco 1.4,http://www.robocoderepository.com/BotFiles/1914/ratosh.Wesco_1.4.jar&lt;br /&gt;
rc.yoda.Yoda 1.0.6c,http://www.robocoderepository.com/BotFiles/3260/rc.yoda.Yoda_1.0.6c.jar&lt;br /&gt;
rcb.Vanessa03 0,http://www.robocoderepository.com/BotFiles/1364/rcb.Vanessa03_0.jar&lt;br /&gt;
rcp.Kuramatron 1.0,http://www.robocoderepository.com/BotFiles/3307/rcp.Kuramatron_1.0.jar&lt;br /&gt;
rdt199.Warlord 0.73,http://www.robocoderepository.com/BotFiles/1130/rdt199.Warlord_0.73.jar&lt;br /&gt;
reaper.Reaper 1.1,http://www.robocoderepository.com/BotFiles/3412/reaper.Reaper_1.1.jar&lt;br /&gt;
repositorio.NanoStep 1.0,http://darkcanuck.net/rumble/robots/repositorio.NanoStep_1.0.jar&lt;br /&gt;
rfj.Sunburn 1.1,http://www.robocoderepository.com/BotFiles/1060/rfj.Sunburn_1.1.jar&lt;br /&gt;
rijteam.SmartDodge 1.1,http://www.robocoderepository.com/BotFiles/2959/rijteam.SmartDodge_1.1.jar&lt;br /&gt;
robar.haiku.Spike 1.0,http://invitel.hu/artrog/robar.haiku.Spike_1.0.jar&lt;br /&gt;
robar.micro.Gladius 1.15,http://invitel.hu/artrog/robar.micro.Gladius_1.15.jar&lt;br /&gt;
robar.micro.Kirbyi 1.0,http://hunrobar.freeblog.hu/files/myrobots/robar.micro.Kirbyi_1.0.jar&lt;br /&gt;
robar.micro.Topaz 0.25,http://invitel.hu/artrog/robar.micro.Topaz_0.25.jar&lt;br /&gt;
robar.nano.Assertive 0.3,http://invitel.hu/artrog/robar.nano.Assertive_0.3.jar&lt;br /&gt;
robar.nano.BlackWidow 1.3,http://www.robocoderepository.com/BotFiles/3574/robar.nano.BlackWidow_1.3.jar&lt;br /&gt;
robar.nano.Breeze 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Breeze_0.3.jar&lt;br /&gt;
robar.nano.Mosquito 1.1,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Mosquito_1.1.jar&lt;br /&gt;
robar.nano.MosquitoPM 1.0,http://www.robocoderepository.com/BotFiles/3559/robar.nano.MosquitoPM_1.0.jar&lt;br /&gt;
robar.nano.Prestige 1.0,http://www.robocoderepository.com/BotFiles/3507/robar.nano.Prestige_1.0.jar&lt;br /&gt;
robar.nano.Pugio 1.49,http://www.robocoderepository.com/BotFiles/3710/robar.nano.Pugio_1.49.jar&lt;br /&gt;
robar.nano.Scytodes 0.3,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Scytodes_0.3.jar&lt;br /&gt;
robar.nano.Vespa 0.95,http://hunrobar.freeblog.hu/files/myrobots/robar.nano.Vespa_0.95.jar&lt;br /&gt;
robo.PartsBot 1.1,http://www.hotlinkfiles.com/files/2573284_7vbeb/robo.PartsBot_1.1.jar&lt;br /&gt;
rsim.micro.uCatcher 0.1,http://sites.google.com/site/rsimander/robocode/rsim.micro.uCatcher_0.1.jar&lt;br /&gt;
rsim.mini.BulletCatcher 0.4,http://www.robocoderepository.com/BotFiles/3737/rsim.mini.BulletCatcher_0.4.jar&lt;br /&gt;
rsk1.RSK1 4.0,http://www.robocoderepository.com/BotFiles/3284/rsk1.RSK1_4.0.jar&lt;br /&gt;
ruc.nano.Zealot 0.2,http://www.robocoderepository.com/BotFiles/1229/ruc.nano.Zealot_0.2.jar&lt;br /&gt;
ry.LightningBug 1.0,http://www.robocoderepository.com/BotFiles/3472/ry.LightningBug_1.0.jar&lt;br /&gt;
ry.VirtualGunExperiment 1.2.0,http://www.robocoderepository.com/BotFiles/3662/ry.VirtualGunExperiment_1.2.0.jar&lt;br /&gt;
ry.Worst 1.0,http://www.robocoderepository.com/BotFiles/3645/ry.Worst_1.0.jar&lt;br /&gt;
rz.Aleph 0.34,http://www.robocoderepository.com/BotFiles/1993/rz.Aleph_0.34.jar&lt;br /&gt;
rz.Apollon 0.23,http://www.robocoderepository.com/BotFiles/2098/rz.Apollon_0.23.jar&lt;br /&gt;
rz.Artist 0.2,http://www.robocoderepository.com/BotFiles/2156/rz.Artist_0.2.jar&lt;br /&gt;
rz.GlowBlow 2.31,http://www.robocoderepository.com/BotFiles/1354/rz.GlowBlow_2.31.jar&lt;br /&gt;
rz.GlowBlowAPM 1.0,http://www.robocoderepository.com/BotFiles/1382/rz.GlowBlowAPM_1.0.jar&lt;br /&gt;
rz.GlowBlowMelee 1.4,http://www.robocoderepository.com/BotFiles/1436/rz.GlowBlowMelee_1.4.jar&lt;br /&gt;
rz.HawkOnFire 0.1,http://www.robocoderepository.com/BotFiles/1575/rz.HawkOnFire_0.1.jar&lt;br /&gt;
rz.SmallDevil 1.502,http://www.robocoderepository.com/BotFiles/1322/rz.SmallDevil_1.502.jar&lt;br /&gt;
sam.ChipmunkDuelist 1.0,http://www.robocoderepository.com/BotFiles/3094/sam.ChipmunkDuelist_1.0.jar&lt;br /&gt;
sam.Samspin 1.0,http://www.robocoderepository.com/BotFiles/2823/sam.Samspin_1.0.jar&lt;br /&gt;
sch.Simone 0.3d,http://www.robocoderepository.com/BotFiles/374/sch.Simone_0.3d.jar&lt;br /&gt;
serenity.moonlightBat 1.17,http://www.robocoderepository.com/BotFiles/2877/serenity.moonlightBat_1.17.jar&lt;br /&gt;
serenity.nonSense 1.39,http://www.robocoderepository.com/BotFiles/3586/serenity.nonSense_1.39.jar&lt;br /&gt;
serenity.serenityFire 1.29,http://www.robocoderepository.com/BotFiles/3071/serenity.serenityFire_1.29.jar&lt;br /&gt;
sgp.JollyNinja 3.53,http://www.robocoderepository.com/BotFiles/183/sgp.JollyNinja_3.53.jar&lt;br /&gt;
sgp.MadHatter 4.13,http://www.robocoderepository.com/BotFiles/156/sgp.MadHatter_4.13.jar&lt;br /&gt;
sgp.nano.FurryLeech 1.0,http://www.robocoderepository.com/BotFiles/802/sgp.nano.FurryLeech_1.0.jar&lt;br /&gt;
sgp.ShiningBeetle 1.1,http://www.robocoderepository.com/BotFiles/498/sgp.ShiningBeetle_1.1.jar&lt;br /&gt;
sgp.SleepingGoat 1.1,http://www.robocoderepository.com/BotFiles/500/sgp.SleepingGoat_1.1.jar&lt;br /&gt;
sgs.DogManSPE 1.1,http://www.robocoderepository.com/BotFiles/990/sgs.DogManSPE_1.1.jar&lt;br /&gt;
SHAM.WOW 1.4,http://darkcanuck.net/rumble/robots/SHAM.WOW_1.4.jar&lt;br /&gt;
shinh.Entangled 0.3,http://www.robocoderepository.com/BotFiles/1070/shinh.Entangled_0.3.jar&lt;br /&gt;
shrub.Silver v048,http://www.robocoderepository.com/BotFiles/449/shrub.Silver_v048.jar&lt;br /&gt;
shrub.Vapour v159,http://www.robocoderepository.com/BotFiles/2654/shrub.Vapour_v159.jar&lt;br /&gt;
shu.nitro.LENIN .T34,http://www.robocoderepository.com/BotFiles/1956/shu.nitro.LENIN_.T34.jar&lt;br /&gt;
sigterm.Sigterm 1.0,http://darkcanuck.net/rumble/robots/sigterm.Sigterm_1.0.jar&lt;br /&gt;
simonton.beta.LifelongObsession 0.5.1,http://www.robocoderepository.com/BotFiles/3195/simonton.beta.LifelongObsession_0.5.1.jar&lt;br /&gt;
simonton.GFNano_D 3.1b,http://www.robocoderepository.com/BotFiles/3114/simonton.GFNano_D_3.1b.jar&lt;br /&gt;
simonton.nano.WeekendObsession_S 1.7,http://www.robocoderepository.com/BotFiles/3117/simonton.nano.WeekendObsession_S_1.7.jar&lt;br /&gt;
simonton.mega.SniperFrog 1.0,http://upload.frozenonline.com/view/simonton/simonton.mega.SniperFrog_1.0.jar&lt;br /&gt;
simonton.micro.GFMicro 1.0,http://upload.frozenonline.com/view/simonton/simonton.micro.GFMicro_1.0.jar&lt;br /&gt;
simonton.micro.WeeklongObsession 3.4.1,http://upload.frozenonline.com/view/simonton/simonton.micro.WeeklongObsession_3.4.1.jar&lt;br /&gt;
simonton.mini.WeeksOnEnd 1.10.4,http://upload.frozenonline.com/view/simonton/simonton.mini.WeeksOnEnd_1.10.4.jar&lt;br /&gt;
skm.Ryubot 1.0,http://www.robocoderepository.com/BotFiles/3594/skm.Ryubot_1.0.jar&lt;br /&gt;
skm.PateranBotlock2 1.0,http://www.robocoderepository.com/BotFiles/3591/skm.PateranBotlock2_1.0.jar&lt;br /&gt;
sL300.Mozart life,http://www.robocoderepository.com/BotFiles/1992/sL300.Mozart_life.jar&lt;br /&gt;
sm.Devil 7.3,http://www.robocoderepository.com/BotFiles/1481/sm.Devil_7.3.jar&lt;br /&gt;
sng.arco.Arco 0.0,http://www.robocoderepository.com/BotFiles/3279/sng.arco.Arco_0.0.jar&lt;br /&gt;
sos.SOS 1.0,http://www.robocoderepository.com/BotFiles/3489/sos.SOS_1.0.jar&lt;br /&gt;
spinnercat.CopyKat 1.1,http://www.robocoderepository.com/BotFiles/3730/spinnercat.CopyKat_1.1.jar&lt;br /&gt;
spinnercat.Limit .01,http://www.robocoderepository.com/BotFiles/3659/spinnercat.Limit_.01.jar&lt;br /&gt;
spinnercat.Kitten 1.5,http://www.robocoderepository.com/BotFiles/3704/spinnercat.Kitten_1.5.jar&lt;br /&gt;
spinnercat.haiku.Refrigerator 1.1,http://www.robocoderepository.com/BotFiles/3688/spinnercat.haiku.Refrigerator_1.1.jar&lt;br /&gt;
spinnercat.mega.Tardis 1.2,http://www.robocoderepository.com/BotFiles/3692/spinnercat.mega.Tardis_1.2.jar&lt;br /&gt;
spinnercat.Robovirus 2.718,http://www.robocoderepository.com/BotFiles/3657/spinnercat.Robovirus_2.718.jar&lt;br /&gt;
sqTank.waveSurfing.LionWWSVMvoid 0.01,http://www.robocoderepository.com/BotFiles/3436/sqTank.waveSurfing.LionWWSVMvoid_0.01.jar&lt;br /&gt;
starpkg.StarViewerZ 1.26,http://www.robocoderepository.com/BotFiles/1931/starpkg.StarViewerZ_1.26.jar&lt;br /&gt;
stefw.Tigger 0.0.23,http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar&lt;br /&gt;
stelo.Chord 1.0,http://www.geocities.com/stelokim/robots/stelo.Chord_1.0.jar&lt;br /&gt;
stelo.FretNano 1.1,http://www.geocities.com/stelokim/robots/stelo.FretNano_1.1.jar&lt;br /&gt;
stelo.Lifestealer 1.0,http://www.robocoderepository.com/BotFiles/2987/stelo.Lifestealer_1.0.jar&lt;br /&gt;
stelo.MatchupMini 1.1,http://www.geocities.com/stelokim/robots/stelo.MatchupMini_1.1.jar&lt;br /&gt;
stelo.MatchupMicro 1.2,http://www.geocities.com/stelokim/robots/stelo.MatchupMicro_1.2.jar&lt;br /&gt;
stelo.MatchupAGF 1.1,http://www.geocities.com/stelokim/robots/stelo.MatchupAGF_1.1.jar&lt;br /&gt;
stelo.MatchupWS 1.2c,http://www.geocities.com/stelokim/robots/stelo.MatchupWS_1.2c.jar&lt;br /&gt;
stelo.Mirror 1.1,http://www.robocoderepository.com/BotFiles/3034/stelo.Mirror_1.1.jar&lt;br /&gt;
stelo.MirrorMicro 1.1,http://www.geocities.com/stelokim/robots/stelo.MirrorMicro_1.1.jar&lt;br /&gt;
stelo.MirrorNano 1.4,http://www.geocities.com/stelokim/robots/stelo.MirrorNano_1.4.jar&lt;br /&gt;
stelo.MoojukNano 1.2,http://www.geocities.com/stelokim/robots/stelo.MoojukNano_1.2.jar&lt;br /&gt;
stelo.PastFuture 1.2a,http://www.geocities.com/stelokim/robots/stelo.PastFuture_1.2a.jar&lt;br /&gt;
stelo.PatternRobot 1.0,http://www.robocoderepository.com/BotFiles/2995/stelo.PatternRobot_1.0.jar&lt;br /&gt;
stelo.PianistNano 1.3,http://www.geocities.com/stelokim/robots/stelo.PianistNano_1.3.jar&lt;br /&gt;
stelo.RamTrackSurfer 1.2,http://www.geocities.com/stelokim/robots/stelo.RamTrackSurfer_1.2.jar&lt;br /&gt;
stelo.Randomness 1.1,http://www.robocoderepository.com/BotFiles/3021/stelo.Randomness_1.1.jar&lt;br /&gt;
stelo.SteloTestNano 1.0,http://www.geocities.com/stelokim/robots/stelo.SteloTestNano_1.0.jar&lt;br /&gt;
stelo.UnfoolableNano 1.0,http://www.geocities.com/stelokim/robots/stelo.UnfoolableNano_1.0.jar&lt;br /&gt;
stelo.UntouchableNano 1.4,http://www.geocities.com/stelokim/robots/stelo.UntouchableNano_1.4.jar&lt;br /&gt;
step.nanoPri 1.0,http://www.robocoderepository.com/BotFiles/2996/step.nanoPri_1.0.jar&lt;br /&gt;
step.NanoBidu 1.0,http://www.robocoderepository.com/BotFiles/3014/step.NanoBidu_1.0.jar&lt;br /&gt;
stf.PanzerGeneral 0.1,http://www.robocoderepository.com/BotFiles/2233/stf.PanzerGeneral_0.1.jar&lt;br /&gt;
strider.Festis 1.2.1,http://www.robocoderepository.com/BotFiles/2355/strider.Festis_1.2.1.jar&lt;br /&gt;
strider.Mer 1.1.0,http://www.robocoderepository.com/BotFiles/2360/strider.Mer_1.1.0.jar&lt;br /&gt;
stuff.Vlad 0.1,http://www.robocoderepository.com/BotFiles/3701/stuff.Vlad_0.1.jar&lt;br /&gt;
sul.NanoR2 1.32,http://www.robocoderepository.com/BotFiles/3348/sul.NanoR2_1.32.jar&lt;br /&gt;
sul.Pinkbot 1.1,http://www.robocoderepository.com/BotFiles/3346/sul.Pinkbot_1.1.jar&lt;br /&gt;
sul.Bicephal 1.2,http://www.robocoderepository.com/BotFiles/3343/sul.Bicephal_1.2.jar&lt;br /&gt;
sul.BlueBot 1.0,http://www.robocoderepository.com/BotFiles/3347/sul.BlueBot_1.0.jar&lt;br /&gt;
syl.Centipede 0.5,http://www.robocoderepository.com/BotFiles/1254/syl.Centipede_0.5.jar&lt;br /&gt;
synapse.Geomancy 14,http://synapticflame.googlepages.com/synapse.Geomancy_14.jar&lt;br /&gt;
synapse.rsim.GeomancyBS 0.11,http://robocoderepository.com/BotFiles/3758/synapse.rsim.GeomancyBS_0.11.jar&lt;br /&gt;
synnalagma.NeuralPremier 0.51,http://www.robocoderepository.com/BotFiles/1557/synnalagma.NeuralPremier_0.51.jar&lt;br /&gt;
synnalagma.test.MiniNeural 1.1,http://www.robocoderepository.com/BotFiles/1754/synnalagma.test.MiniNeural_1.1.jar&lt;br /&gt;
tad.Dalek98 0.98,http://darkcanuck.net/rumble/robots/tad.Dalek98_0.98.jar&lt;br /&gt;
takeBot.SpinSpiral 1.2,http://www.robocoderepository.com/BotFiles/312/takeBot.SpinSpiral_1.2.jar&lt;br /&gt;
takeBot.SpiralCrash 1.0,http://www.robocoderepository.com/BotFiles/1013/takeBot.SpiralCrash_1.0.jar&lt;br /&gt;
takeBot.WeavingWiggle 1.1,http://www.robocoderepository.com/BotFiles/1012/takeBot.WeavingWiggle_1.1.jar&lt;br /&gt;
tango.Recrimpo 2.51,http://www.robocoderepository.com/BotFiles/2015/tango.Recrimpo_2.51.jar&lt;br /&gt;
taqho.taqbot 1.0,http://www.robocoderepository.com/BotFiles/1316/taqho.taqbot_1.0.jar&lt;br /&gt;
tcf.Drifter 29,http://www.7sun.com/robocode/robots/tcf.Drifter_29.jar&lt;br /&gt;
tcf.Repat3 2,http://www.robocoderepository.com/BotFiles/3328/tcf.Repat3_2.jar&lt;br /&gt;
techdude.kombat.FlamingKombat 1.5,http://www.robocoderepository.com/BotFiles/2810/techdude.kombat.FlamingKombat_1.5.jar&lt;br /&gt;
techdude.Carruthers 1.2.6,http://thekandieman.com/nfwu/alex/robocode/techdude.Carruthers_1.2.6.jar&lt;br /&gt;
techdude.Class2C.Class2C 0.1,http://www.robocoderepository.com/BotFiles/3078/techdude.Class2C.Class2C_0.1.jar&lt;br /&gt;
test.Podgy 4.0,http://www.robocoderepository.com/BotFiles/3214/test.Podgy_4.0.jar&lt;br /&gt;
test.Fuzzer 1.0.1,http://www.robocoderepository.com/BotFiles/3345/test.Fuzzer_1.0.1.jar&lt;br /&gt;
testantiswapgun.AntiSwap 1.0,http://www.robocode.ilbello.com/asd.AntiSwap_1.0.jar&lt;br /&gt;
throxbot.ThroxBot 0.1,http://www.robocoderepository.com/BotFiles/2548/throxbot.ThroxBot_0.1.jar&lt;br /&gt;
tide.pear.Pear 0.62.1,http://www.robocoderepository.com/BotFiles/2393/tide.pear.Pear_0.62.1.jar&lt;br /&gt;
timmit.micro.TimXJ 0.22,http://www.robocoderepository.com/BotFiles/1683/timmit.micro.TimXJ_0.22.jar&lt;br /&gt;
timmit.mini.TimVA 0.43,http://www.robocoderepository.com/BotFiles/1681/timmit.mini.TimVA_0.43.jar&lt;br /&gt;
timmit.nano.TimCat 0.13,http://www.robocoderepository.com/BotFiles/1600/timmit.nano.TimCat_0.13.jar&lt;br /&gt;
timmit.nano.TimDog 0.33,http://www.robocoderepository.com/BotFiles/1602/timmit.nano.TimDog_0.33.jar&lt;br /&gt;
timmit.TimmiT 0.22,http://www.robocoderepository.com/BotFiles/1468/timmit.TimmiT_0.22.jar&lt;br /&gt;
tlp.ThreeLeggedPig 1,http://pages.prodigy.net/franz1/house/tlp.ThreeLeggedPig_1.jar&lt;br /&gt;
tm.Yuugao 1.0,http://www.robocoderepository.com/BotFiles/1056/tm.Yuugao_1.0.jar&lt;br /&gt;
tobe.calypso.Calypso 4.1,http://www.robocoderepository.com/BotFiles/784/tobe.calypso.Calypso_4.1.jar&lt;br /&gt;
tobe.Fusion 1.0,http://www.robocoderepository.com/BotFiles/649/tobe.Fusion_1.0.jar&lt;br /&gt;
tobe.mini.Charon 0.9,http://www.robocoderepository.com/BotFiles/836/tobe.mini.Charon_0.9.jar&lt;br /&gt;
tobe.Relativity 3.9,http://www.robocoderepository.com/BotFiles/360/tobe.Relativity_3.9.jar&lt;br /&gt;
tobe.Saturn lambda,http://www.robocoderepository.com/BotFiles/685/tobe.Saturn_lambda.jar&lt;br /&gt;
tornyil.bottomup.BottomUp 1.05,http://www.alpha-consulting.hu/robo/tornyil.bottomup.BottomUp_1.05.jar&lt;br /&gt;
tornyil.Lajcsi2.Lajcsi2sm 1.0,http://www.alpha-consulting.hu/robo/tornyil.Lajcsi2.Lajcsi2sm_1.0.jar&lt;br /&gt;
toz.Gnome 1.1,http://darkcanuck.net/rumble/robots/toz.Gnome_1.1.jar&lt;br /&gt;
trab.Crusader 0.1.7,http://www.stud.ntnu.no/~grashei/bots/trab.Crusader_0.1.7.jar&lt;br /&gt;
trab.nano.AinippeNano 1.3,http://www.stud.ntnu.no/~grashei/bots/trab.nano.AinippeNano_1.3.jar&lt;br /&gt;
tw.Exterminator 1.0,http://www.robocoderepository.com/BotFiles/3607/tw.Exterminator_1.0.jar&lt;br /&gt;
tzu.TheArtOfWar 1.2,http://darkcanuck.net/rumble/robots/tzu.TheArtOfWar_1.2.jar&lt;br /&gt;
urdos.URDOS 1.3,http://darkcanuck.net/rumble/robots/urdos.URDOS_1.3.jar&lt;br /&gt;
usa.nano.Nemo 2.0,http://www.robocoderepository.com/BotFiles/2045/usa.nano.Nemo_2.0.jar&lt;br /&gt;
vic.Locke 0.7.5.5,http://www.robocoderepository.com/BotFiles/2115/vic.Locke_0.7.5.5.jar&lt;br /&gt;
vft.Valkyrie 1.0,http://www.robocoderepository.com/BotFiles/3009/vft.Valkyrie_1.0.jar&lt;br /&gt;
vft.Hrist 1.0,http://www.geocities.com/flarebringer/Robocode/vft.Hrist_1.0.jar&lt;br /&gt;
voidious.Diamond 1.444,http://www.dijitari.com/void/robocode/voidious.Diamond_1.444.jar&lt;br /&gt;
voidious.Dookious 1.573c,http://www.dijitari.com/void/robocode/voidious.Dookious_1.573c.jar&lt;br /&gt;
voidious.micro.Jen 1.11,http://www.dijitari.com/void/robocode/voidious.micro.Jen_1.11.jar&lt;br /&gt;
voidious.mini.Komarious 1.88,http://www.dijitari.com/void/robocode/voidious.mini.Komarious_1.88.jar&lt;br /&gt;
vuen.Fractal 0.55,http://www.robocoderepository.com/BotFiles/1579/vuen.Fractal_0.55.jar&lt;br /&gt;
wcsv.Engineer.Engineer 0.5.4,http://darkcanuck.net/rumble/robots/wcsv.Engineer.Engineer_0.5.4.jar&lt;br /&gt;
wcsv.PowerHouse.PowerHouse 1.7e3,http://darkcanuck.net/rumble/robots/wcsv.PowerHouse.PowerHouse_1.7e3.jar&lt;br /&gt;
wcsv.mega.PowerHouse2 0.2,http://darkcanuck.net/rumble/robots/wcsv.mega.PowerHouse2_0.2.jar&lt;br /&gt;
wcsv.Stampede 1.3.3,http://www.robocoderepository.com/BotFiles/2527/wcsv.Stampede_1.3.3.jar&lt;br /&gt;
wcsv.Stampede2.Stampede2 1.1.0,http://www.robocoderepository.com/BotFiles/2714/wcsv.Stampede2.Stampede2_1.1.0.jar&lt;br /&gt;
whind.Constitution 0.7.1,http://www.robocoderepository.com/BotFiles/2812/whind.Constitution_0.7.1.jar&lt;br /&gt;
whind.Strength 0.6.4,http://whindgames.50webs.com/otherstuff/whind.Strength_0.6.4.jar&lt;br /&gt;
whind.StrengthBee 0.6.4,http://whindgames.50webs.com/otherstuff/whind.StrengthBee_0.6.4.jar&lt;br /&gt;
whind.Wisdom 0.5.1,http://www.robocoderepository.com/BotFiles/2742/whind.Wisdom_0.5.1.jar&lt;br /&gt;
wiki.BasicGFSurfer 1.01,http://home.versatel.nl/gheijenk/robocode/jarfiles/wiki.BasicGFSurfer_1.01.jar&lt;br /&gt;
wiki.mako.MakoHT 1.2.2.1,http://www.robocoderepository.com/BotFiles/1374/wiki.mako.MakoHT_1.2.2.1.jar&lt;br /&gt;
wiki.mini.BlackDestroyer 0.9.0,http://www.robocoderepository.com/BotFiles/1927/wiki.mini.BlackDestroyer_0.9.0.jar&lt;br /&gt;
wiki.mini.GouldingiHT 1.0,http://www.robocoderepository.com/BotFiles/1383/wiki.mini.GouldingiHT_1.0.jar&lt;br /&gt;
wiki.mini.Griffon 0.1,http://www.robocoderepository.com/BotFiles/1774/wiki.mini.Griffon_0.1.jar&lt;br /&gt;
wiki.mini.Sedan 1.0,http://www.robocoderepository.com/BotFiles/1676/wiki.mini.Sedan_1.0.jar&lt;br /&gt;
wiki.nano.DevilFISH 1.0,http://www.robocoderepository.com/BotFiles/2235/wiki.nano.DevilFISH_1.0.jar&lt;br /&gt;
wiki.nano.RaikoNano 1.1,http://www.robocoderepository.com/BotFiles/2163/wiki.nano.RaikoNano_1.1.jar&lt;br /&gt;
wiki.WaveRammer 1.0,http://www.robocoderepository.com/BotFiles/3505/wiki.WaveRammer_1.0.jar&lt;br /&gt;
wiki.Wolverine 2.1,http://darkcanuck.net/rumble/robots/wiki.Wolverine_2.1.jar&lt;br /&gt;
wilson.Chameleon 0.91,http://www.robocoderepository.com/BotFiles/1608/wilson.Chameleon_0.91.jar&lt;br /&gt;
winamp32.micro.MicroMacro 1.0,http://www.robocoderepository.com/BotFiles/2891/winamp32.micro.MicroMacro_1.0.jar&lt;br /&gt;
wit.Chuliath 1.0,http://www.robocoderepository.com/BotFiles/2306/wit.Chuliath_1.0.jar&lt;br /&gt;
wit.Deep7 2.0,http://www.robocoderepository.com/BotFiles/2313/wit.Deep7_2.0.jar&lt;br /&gt;
xiongan.Xiongan 1.1,http://www.robocoderepository.com/BotFiles/3565/xiongan.Xiongan_1.1.jar&lt;br /&gt;
yarghard.Y101 1.0,http://sliwa.ws/RoboCode/yarghard.Y101_1.0.jar&lt;br /&gt;
yk.JahMicro 1.0,http://www.robocoderepository.com/BotFiles/3033/yk.JahMicro_1.0.jar&lt;br /&gt;
yk.JahRoslav 1.1,http://www.robocoderepository.com/BotFiles/3032/yk.JahRoslav_1.1.jar&lt;br /&gt;
zen.Lindada 0.2,http://www.robocoderepository.com/BotFiles/1679/zen.Lindada_0.2.jar&lt;br /&gt;
zeze2.OperatorZeze 1.05,http://www.robocoderepository.com/BotFiles/3330/zeze2.OperatorZeze_1.05.jar&lt;br /&gt;
zch.David 0.21,http://www.robocoderepository.com/BotFiles/3575/zch.David_0.21.jar&lt;br /&gt;
zch.Hirkan 0.11,http://www.robocoderepository.com/BotFiles/1288/zch.Hirkan_0.11.jar&lt;br /&gt;
zh.UnderDog 0.0.2,http://www.robocoderepository.com/BotFiles/3053/zh.UnderDog_0.0.2.jar&lt;br /&gt;
zyx.mega.YersiniaPestis 3.0,http://sites.google.com/site/zyxsite/robocode/zyx.mega.YersiniaPestis_3.0.jar&lt;br /&gt;
zyx.micro.Ant 1.1,http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar&lt;br /&gt;
zyx.nano.Ant 1.1,http://www.robocoderepository.com/BotFiles/3493/zyx.nano.Ant_1.1.jar&lt;br /&gt;
zyx.nano.EscherichiaColi 1.0,http://sites.google.com/site/zyxsite/robocode/zyx.nano.EscherichiaColi_1.0.jar&lt;br /&gt;
zyx.nano.RedBull 1.0,http://sites.google.com/site/zyxsite/robocode/zyx.nano.RedBull_1.0.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
'''''No chatting on this page. Use the /ParticipantsChat page for that.'''''&lt;br /&gt;
&lt;br /&gt;
Removed because the jarcontent/filename is not correct&amp;lt;br&amp;gt;&lt;br /&gt;
henriquevilela.TieFighter 0.1,3224&amp;lt;br&amp;gt;&lt;br /&gt;
jgap.Aspirant_13029_gen7 1.0,3553&amp;lt;br&amp;gt;&lt;br /&gt;
jgap.Aspirant_7980_gen7 1.0,3552&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Removed because the filename on RobocodeRepository contains spaces.&amp;lt;br&amp;gt;&lt;br /&gt;
as.xbots 1.0,3473&lt;br /&gt;
&lt;br /&gt;
Removed until file corruption is resolved:&lt;br /&gt;
&lt;br /&gt;
cas.CelsoKiller 1.0,3465&lt;br /&gt;
&lt;br /&gt;
Removed due to almost always giving '0' scores:&lt;br /&gt;
&lt;br /&gt;
com.syncleus.robocode.Dreadnaught 0.1,3426&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:RoboRumble/Participants&amp;diff=13238</id>
		<title>Talk:RoboRumble/Participants</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:RoboRumble/Participants&amp;diff=13238"/>
		<updated>2009-10-10T05:16:54Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Removing duplicates */ agree&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Why it still have &amp;quot;No chatting on this page. Use the /ParticipantsChat page for that.&amp;quot;? We can have ''this'' discussion page for chat. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 05:11, 27 April 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Entering rumble via infobox ==&lt;br /&gt;
&lt;br /&gt;
You know, it would be kinda cool if people could enter their robots in the rumble via [[Template:Infobox Robot]]. Just add the appropriate data to the box and an argument that says, effectively, &amp;quot;Yes, enter my bot in the rumble,&amp;quot; and boom, it gets picked up. [[User:RobertWalker|RobertWalker]] 19:10, 12 December 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thats sorta possible, if say, we added a category to the template then had it use that category and trace the link to the bots page and look for its jar. However thats a lot of extra skipping around, and its a realy strain on server resources to have to 'check' for these things. --[[User:Chase-san|Chase-san]] 20:07, 12 December 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
: A couple issues with that, though not show-stopping issues: one, we have bots in the rumble with no bot pages. (Vanessa, for instance.) Two, you don't always have your latest version in the rumble, or you have to post a temporary RRGC version or something like that. With all the little caveats, the Participants page might still be the most elegant solution. --[[User:Voidious|Voidious]] 20:13, 12 December 2007 (UTC)&lt;br /&gt;
&lt;br /&gt;
Is there a reason this list isn't being used for the rumble yet? Also, is there an updated zip of the rumble bots around? (Or could someone make it? :-D? I'd like to start running battles again. -- [[User:Alcatraz|Alcatraz]] 12:52, 8 December 2008 (EST)&lt;br /&gt;
&lt;br /&gt;
: robowiki.net is running again, but maybe is time to activate this participant list? --[[User:Lestofante|lestofante]] 13:40, 5 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Agree. Many down of the old wiki can make newbie like me try many new idea on rumble! --[[User:Nat|Nat]] 11:44, 6 January 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Anyone still interesting with this issue? This can accomplish via a bot. If we have property name rumbleLocation in infobox, and the template automatically put any robot with that parameter into some category, I can make my soon-created bot handler that, say once per hour? For special RRGC/WSGC or a bot without page, there can still use another participant list and it will be merged to another page when the bot run. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 09:35, 2 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Personally anyway, it seems that trying to make entry via infobox just overcomplicates things really. I'd much perfer there just be one simple way to do it: Add it to the participants page by hand. --[[User:Rednaxela|Rednaxela]] 14:33, 2 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I agree.  The only change that I'd like to see (eventually) is to have the server maintain the participants list and bot storage.  But I'm not ready to commit to programming that yet.  --[[User:Darkcanuck|Darkcanuck]] 17:25, 2 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Tigger ==&lt;br /&gt;
&lt;br /&gt;
Hey man, you don't need to remove Tigger, one of us would gladly host it. Darkcanuck has posted most rumble bots to his server already, so you can make it point here if you want: [http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar http://darkcanuck.net/rumble/robots/stefw.Tigger_0.0.23.jar]. Of course it's your call, but it seems a shame to remove such an old-school bot. --[[User:Voidious|Voidious]] 14:01, 14 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
* I wouldn't just call it an old-school bot, but also a very interesting one that gives a fair number of surfers some trouble if I remember right.. :) --[[User:Rednaxela|Rednaxela]] 14:54, 14 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:* Because its unique and only Tile Coding? &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 15:01, 14 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::* Well, it trounces Komarious, gives PulsarMax, Lukious, Engineer, and WinterMute a rather hard time... not sure if that's because of it's unique Tile Coding things, but it might well be --[[User:Rednaxela|Rednaxela]] 15:35, 14 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::* It could be its unique stats system. Since it's a reference bot for the TC2K6, the [[Targeting Challenge 2K6/Results]] give us at least some insight into its movement. Clearly, some top bots can really zero in on Tigger, but a lot of still very strong guns have some trouble with it. And the low scores against [[Linear Targeting]] and [[Circular Targeting]] seem odd, but might mean that he always enables a flattener, or just has some anomaly or bug that has a similar effect. --[[User:Voidious|Voidious]] 15:58, 14 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::::* Well, it's reference scores against linear/circular targeting don't look that weird to me. I mean, the only reference bots that do better against the simple targeting are either surfers or the tremendously well-tuned multi-mode known as GrubbmGrb --[[User:Rednaxela|Rednaxela]] 16:51, 14 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::::* Tigger is a surfer, though. :-P And his score against HoT is respectable. --[[User:Voidious|Voidious]] 17:17, 14 May 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Hey guys, should we re-enter Tigger? StefW's only reason given was about Geocities going down, so I say we do it. Any objections? --[[User:Voidious|Voidious]] 02:04, 20 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Agree. And the Geocities isn't going down till October, I can still access my webpage right now. But we can have the Darkcanucks' one. I think we usually grab it from the zip files, btw. &amp;amp;raquo; &amp;lt;span style=&amp;quot;font-size:0.9em;color:darkgreen;&amp;quot;&amp;gt;[[User:Nat|Nat]] | [[User_talk:Nat|Talk]]&amp;lt;/span&amp;gt; &amp;amp;raquo; 13:17, 20 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Re-enter it. It is a decent and quite unique bot and also away to honour StefW for his development of the initial onPaint. --[[User:GrubbmGait|GrubbmGait]] 22:03, 23 July 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Broken Links! ==&lt;br /&gt;
&lt;br /&gt;
I just fixed a ton of them! Also, thanks to Darkcanuck for the [http://darkcanuck.net/rumble/robots/ http://darkcanuck.net/rumble/robots/] hosting of them. Now.. I hope we can keep them more fixed than they have been, as that was rather tedious :P --[[User:Rednaxela|Rednaxela]] 00:25, 6 August 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== TheBrainPi fix ==&lt;br /&gt;
&lt;br /&gt;
I just added the fix version of TheBrainPi, I did some testing and it didn't seem to throw any exceptions. I uploaded it to my google site because roborepository would upload it as mine, and show Zyx as author and that didn't seem right, but I don't know if it is better if [[Darkcanuck]] can host it in his sever? All I changed in the code has a comment that contains the words ''Unofficial fix'' very close from which it can be easy to see the changes. --[[User:Zyx|zyx]] 01:21, 5 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Very cool of you to take care of that! Check out the comparison: [http://darkcanuck.net/rumble/RatingsCompare?game=roborumble&amp;amp;name=apv.TheBrainPi%200.5fix&amp;amp;vs=apv.TheBrainPi%200.5]. It's little things like this that make me appreciate what a great community we have here. --[[User:Voidious|Voidious]] 16:28, 5 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks just a very small retribution to [[Albert]]'s immense contributions. And you are right, this is a great community, I wish I had more time to help more. --[[User:Zyx|zyx]] 17:41, 5 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Ok, the fixed version is now on my server (along with all other current 1v1 and melee bots) so you can change the link if you like.  Thanks for doing this!  --[[User:Darkcanuck|Darkcanuck]] 19:51, 5 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Removing duplicates ==&lt;br /&gt;
&lt;br /&gt;
Wow, there are a lot more duplicates in the participants list than I realized. Any objections to me removing all but the highest ranking version of each of these bots?&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
altglass.Exterminans2oo8 alpha0328,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_alpha0328.jar&lt;br /&gt;
altglass.Exterminans2oo8 Build0411,http://d-gfx.kognetwork.ch/robocode/altglass.Exterminans2oo8_Build0411.jar&lt;br /&gt;
am.Miedzix 2.0,http://www.robocoderepository.com/BotFiles/3383/am.Miedzix_2.0.jar&lt;br /&gt;
am.Miedzix 3.0,http://darkcanuck.net/rumble/robots/am.Miedzix_3.0.jar&lt;br /&gt;
cjk.Merkava 0.1.1,http://www.robocoderepository.com/BotFiles/2637/cjk.Merkava_0.1.1.jar&lt;br /&gt;
cjk.Merkava 0.2.0,http://www.robocoderepository.com/BotFiles/2640/cjk.Merkava_0.2.0.jar&lt;br /&gt;
cjk.Merkava 0.3.0,http://darkcanuck.net/rumble/robots/cjk.Merkava_0.3.0.jar&lt;br /&gt;
kurios.DOSexe .9a,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9a.jar&lt;br /&gt;
kurios.DOSexe .9b,http://www.kuriosly.com/roborumble/kurios.DOSexe_.9b.jar&lt;br /&gt;
pak.Dargon 1.0b,http://www.robocoderepository.com/BotFiles/3388/pak.Dargon_1.0b.jar&lt;br /&gt;
pak.Dargon .2c,http://www.robocoderepository.com/BotFiles/3389/pak.Dargon_.2c.jar&lt;br /&gt;
paulk.PaulV3 1.7,http://www.robocoderepository.com/BotFiles/3502/paulk.PaulV3_1.7.jar&lt;br /&gt;
paulk.PaulV3 1.6,http://www.robocoderepository.com/BotFiles/3497/paulk.PaulV3_1.6.jar&lt;br /&gt;
paulk.PaulV3 1.5,http://www.robocoderepository.com/BotFiles/3496/paulk.PaulV3_1.5.jar&lt;br /&gt;
paulk.PaulV3 1.3,http://www.robocoderepository.com/BotFiles/3495/paulk.PaulV3_1.3.jar&lt;br /&gt;
zyx.micro.Ant 1.1,http://www.robocoderepository.com/BotFiles/3481/zyx.micro.Ant_1.1.jar&lt;br /&gt;
zyx.micro.Ant 2.1,http://sites.google.com/site/zyxsite/robocode/zyx.micro.Ant_2.1.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also planning to remove &amp;quot;whind.StrengthBee 0.6.4&amp;quot;, as that was just a test of [[Strength]] with [[CassiusClay/Bee]] gun. And is this &amp;quot;rule&amp;quot; actually written anywhere? (I know it's kind of a &amp;quot;soft rule&amp;quot;, but I still think it's a good one, in general.)&lt;br /&gt;
&lt;br /&gt;
--[[User:Voidious|Voidious]] 22:39, 9 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I don't think there is this rule written anywhere. But I think we should add the second rule to the RoboWiki: &amp;quot;Common sense is the rule&amp;quot; =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 04:38, 10 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
I agree with that, it is common sense. About micro.Ant, I didn't know there were two versions of it (in life not only in the rumble). I'm removing v2.1 but I think that maybe they only share the name, there is a good chance they have no code in common, it's been quite a while since I wrote that. --[[User:Zyx|zyx]]&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12964</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12964"/>
		<updated>2009-10-05T14:17:25Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Example? */ you should have one&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:31, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
There are several references here to ABC's fast PIF method, however, I couldn't find anything related to this on the wiki. What exactly is this method? --[[User:Navajo|Navajo]] 05:31, 4 October 2009 (UTC)&lt;br /&gt;
: I don't know where the original post is, but for now you can check [[User_talk:Nat#Fast_Play-it_forward_algorithm| Nat's talk page]]. There is some discussion, codes and a link to the oldwiki for [[Skilgannon]]'s code with some [[ABC]] code as well. I think from there you can get to the original post too, but I may delirious. --[[User:Zyx|zyx]] 07:15, 4 October 2009 (UTC)&lt;br /&gt;
: I believe the original post is at [[oldwiki:DCBot]] --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks!  Still wrapping my head around this...  The pseudocode seems to add some unexplained tricks and has two mysterious functions.  But let's see if I understand this: you're basically matching as you update.  So you can't really ask the algorithm for the best match to &amp;quot;X&amp;quot;, rather it gives you the best match for the newest data in the sequence.  I think that's where I was stuck.  In the naive implementation you would have to rescan the entire log (in reverse order) once to update the match lengths, correct?  I guess your pseudocode tries to speed up that process by remembering pointers into the log for each letter of the alphabet so you only have to scan those points.  This is fascinating, I'm going to have to make a simulator for it before trying it in-game... --[[User:Darkcanuck|Darkcanuck]] 01:48, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thats exactly what it does. More formally it finds all the substrings that match the current tail of the log. --[[User:Zyx|zyx]] 01:52, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if it is just me or not, but I understand algorithm better with code than with explanation (I understand Bucket PR k-d tree when I read Simonton's tree. I understand MR and GF when I read [[Coriantumr]]'s source. I understand DC when I read [[DrussGT]]'s source. I understand WS when I read [[BasicSurfer]]'s source. I understand PM when I read WeekendObsession and [[Waylander]]/[[Toorkild]] source. etc.) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:32, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Well source code is somewhat universal and unambiguous, so it helps a lot in understanding. But with the lack of some explanation, just reading code can become extremely hard to understand, even something you wrote yourself some years ago. Imagine reading BasicSurfer with absolutely no explanation, you can eventually figure it out (especially if you already know GF targeting) but I'm sure it will take many re-reads and a lot of time to do so. --[[User:Zyx|zyx]] 07:21, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Not for me. Actually I know WS before GF. I got headache trying to understand Wave Surfing tutorial, which I got nothing at all. Then I read BasicSurfer, which make me understand the concept of Wave Surfing finally. Even though I admit that the 'self-documentation' code and/or inline comments help a lot. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;&lt;br /&gt;
struct LittleSquares {&lt;br /&gt;
    template&amp;lt;class S&amp;gt;typeof*&amp;quot;&amp;quot;*winner(S s) {&lt;br /&gt;
        for ( ; i&amp;lt;s.size(); a?k^=a%2^'rf_H'/7&amp;gt;&amp;gt;x:j=!++++i )&lt;br /&gt;
            a=s[i][j]+s[i+1][j++], x-=a&amp;amp;8?3:x;&lt;br /&gt;
        return k&amp;amp;7 ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tell me what this code does ;-). If you want, assume is called with this parameter s = { &amp;quot;...#&amp;quot;, &amp;quot;..##&amp;quot; }. --[[User:Zyx|zyx]] 15:40, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: This code could be greatly improved with a few comments:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;      // integer values&lt;br /&gt;
struct LittleSquares {  // structure&lt;br /&gt;
    template&amp;lt;class S&amp;gt;typeof*&amp;quot;&amp;quot;*winner(S s) {   // template for S&lt;br /&gt;
        for ( ; i&amp;lt;s.size(); a?k^=a%2^'rf_H'/7&amp;gt;&amp;gt;x:j=!++++i )  // loop over i&lt;br /&gt;
            a=s[i][j]+s[i+1][j++], x-=a&amp;amp;8?3:x;   // a &amp;amp; x are integer results&lt;br /&gt;
        return k&amp;amp;7 ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;         // return &amp;quot;first&amp;quot; or &amp;quot;second&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: There, now its production-ready!  =)  --[[User:Darkcanuck|Darkcanuck]] 03:19, 5 October 2009 (UTC)&lt;br /&gt;
:: Thanks, that gave me a chuckle. =) I wish I could say I never come across comments like those... --[[User:Voidious|Voidious]] 13:06, 5 October 2009 (UTC)&lt;br /&gt;
::: Don't let PEZ read this, he would probably explode. [[oldwiki:WhyCommentsAreBad]] --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:36, 5 October 2009 (UTC)&lt;br /&gt;
:: Hehehe those comments really made it easy to understand :-). --[[User:Zyx|zyx]] 14:00, 5 October 2009 (UTC)&lt;br /&gt;
: I don't know C(++) very well...or whatever that language is, but it's definitely not Java --[[User:Starrynte|Starrynte]] 04:45, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
What I mean is regular code =) It is C++ I know, not that it help much. I only write plain old C. By the way, if I simplified correctly.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;      // integer values&lt;br /&gt;
struct LittleSquares {  // structure&lt;br /&gt;
    template&amp;lt;class S&amp;gt; typeof(*&amp;quot;&amp;quot;) *winner(S s) {   // template for S&lt;br /&gt;
        for ( ;&lt;br /&gt;
            i &amp;lt; s.size();&lt;br /&gt;
            (a != 0) ?&lt;br /&gt;
                // k = K XOR (a MOD 2) XOR (10 000 010 101 111 100 010 001 111 000 &amp;gt;&amp;gt; x)&lt;br /&gt;
                k ^= (a % 2) ^ (274187384&amp;gt;&amp;gt;x) : &lt;br /&gt;
                j = !++++i // j = 0, i += 2&lt;br /&gt;
        ) {  // loop over i&lt;br /&gt;
            a = s[i][j] + s[i+1][j];&lt;br /&gt;
            j++;&lt;br /&gt;
            x -= a == 8 ? 3 : x;&lt;br /&gt;
        }&lt;br /&gt;
		&lt;br /&gt;
        return (k == 7) ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case I would answer, this code didn't do anything since its lack of main() or WinMain() =) OK, seriously, since I work on g++, its result isn't predictable since all variable isn't initialized yet (unlike Java =)), or initialized at an unknown place. I don't know if all this things are on VC++ too. Lastly, I repeat my first sentence. Even decompiled obfuscated code are not as &amp;lt;s&amp;gt;f&amp;lt;censored&amp;gt;g&amp;lt;/s&amp;gt; mess as this. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 12:08, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I know that code is simple madness, but as unlikely as it may seem, that solves this relatively hard [http://www.topcoder.com/stat?c=problem_statement&amp;amp;pm=8543&amp;amp;rd=11123 topcoder problem]. --[[User:Zyx|zyx]] 13:57, 5 October 2009 (UTC)&lt;br /&gt;
:: No topcoder account. Perhaps some copy-over? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 14:02, 5 October 2009 (UTC)&lt;br /&gt;
::: You should open one, topcoder is a great place to learn improve programming skills. But here it is anyway:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote style=&amp;quot;background: white; border: 1px solid rgb(153, 153, 153); padding: 1em;&amp;quot;&amp;gt;&lt;br /&gt;
Two people are playing a game, taking turns filling in squares on a piece of graph paper. On each turn, they can either fill in a single empty square or fill in a 2x2 block of 4 empty squares. Once all the squares in the grid are filled, the last player to have filled in a square is the winner.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
The only restriction is that if we number the rows from top to bottom starting at zero, the top half of every 2x2 block that a player fills in during a turn must lie in an even-numbered row.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
The current state of the grid will be given as a string[] state. Each element of state will be one row of the grid, and each character of each element of state will represent one square in the row. A '.' (period) represents an empty square, and a '#' represents a filled-in square.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
From this current state, determine who can win the game assuming both people play optimally. If the next player to move can win return the String &amp;quot;first&amp;quot;, otherwise, return the String &amp;quot;second&amp;quot; (all quotes for clarity).&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
Definition:&amp;lt;BR&amp;gt;&lt;br /&gt;
Class:	LittleSquares&amp;lt;BR&amp;gt;&lt;br /&gt;
Method:	winner&amp;lt;BR&amp;gt;&lt;br /&gt;
Parameters:	String[]&amp;lt;BR&amp;gt;&lt;br /&gt;
Returns:	String&amp;lt;BR&amp;gt;&lt;br /&gt;
Method signature:	String winner(String[] state)&amp;lt;BR&amp;gt;&lt;br /&gt;
(be sure your method is public)&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
Constraints&amp;lt;BR&amp;gt;&lt;br /&gt;
-	states will contain an even number of elements, between 2 and 10, inclusive.&amp;lt;BR&amp;gt;&lt;br /&gt;
-	The length of each element of states will be even and between 2 and 10, inclusive.&amp;lt;BR&amp;gt;&lt;br /&gt;
-	The length of each element of states will be the same.&amp;lt;BR&amp;gt;&lt;br /&gt;
-	Each character in states will be '.' (period) or '#'.&amp;lt;BR&amp;gt;&amp;lt;BR&amp;gt;&lt;br /&gt;
This problem statement is the exclusive and proprietary property of TopCoder (c)2006, TopCoder, Inc. All rights reserved.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
That's about it. --[[User:Zyx|zyx]] 14:17, 5 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12962</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12962"/>
		<updated>2009-10-05T14:00:27Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Example? */ nice comments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:31, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
There are several references here to ABC's fast PIF method, however, I couldn't find anything related to this on the wiki. What exactly is this method? --[[User:Navajo|Navajo]] 05:31, 4 October 2009 (UTC)&lt;br /&gt;
: I don't know where the original post is, but for now you can check [[User_talk:Nat#Fast_Play-it_forward_algorithm| Nat's talk page]]. There is some discussion, codes and a link to the oldwiki for [[Skilgannon]]'s code with some [[ABC]] code as well. I think from there you can get to the original post too, but I may delirious. --[[User:Zyx|zyx]] 07:15, 4 October 2009 (UTC)&lt;br /&gt;
: I believe the original post is at [[oldwiki:DCBot]] --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks!  Still wrapping my head around this...  The pseudocode seems to add some unexplained tricks and has two mysterious functions.  But let's see if I understand this: you're basically matching as you update.  So you can't really ask the algorithm for the best match to &amp;quot;X&amp;quot;, rather it gives you the best match for the newest data in the sequence.  I think that's where I was stuck.  In the naive implementation you would have to rescan the entire log (in reverse order) once to update the match lengths, correct?  I guess your pseudocode tries to speed up that process by remembering pointers into the log for each letter of the alphabet so you only have to scan those points.  This is fascinating, I'm going to have to make a simulator for it before trying it in-game... --[[User:Darkcanuck|Darkcanuck]] 01:48, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thats exactly what it does. More formally it finds all the substrings that match the current tail of the log. --[[User:Zyx|zyx]] 01:52, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if it is just me or not, but I understand algorithm better with code than with explanation (I understand Bucket PR k-d tree when I read Simonton's tree. I understand MR and GF when I read [[Coriantumr]]'s source. I understand DC when I read [[DrussGT]]'s source. I understand WS when I read [[BasicSurfer]]'s source. I understand PM when I read WeekendObsession and [[Waylander]]/[[Toorkild]] source. etc.) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:32, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Well source code is somewhat universal and unambiguous, so it helps a lot in understanding. But with the lack of some explanation, just reading code can become extremely hard to understand, even something you wrote yourself some years ago. Imagine reading BasicSurfer with absolutely no explanation, you can eventually figure it out (especially if you already know GF targeting) but I'm sure it will take many re-reads and a lot of time to do so. --[[User:Zyx|zyx]] 07:21, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Not for me. Actually I know WS before GF. I got headache trying to understand Wave Surfing tutorial, which I got nothing at all. Then I read BasicSurfer, which make me understand the concept of Wave Surfing finally. Even though I admit that the 'self-documentation' code and/or inline comments help a lot. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;&lt;br /&gt;
struct LittleSquares {&lt;br /&gt;
    template&amp;lt;class S&amp;gt;typeof*&amp;quot;&amp;quot;*winner(S s) {&lt;br /&gt;
        for ( ; i&amp;lt;s.size(); a?k^=a%2^'rf_H'/7&amp;gt;&amp;gt;x:j=!++++i )&lt;br /&gt;
            a=s[i][j]+s[i+1][j++], x-=a&amp;amp;8?3:x;&lt;br /&gt;
        return k&amp;amp;7 ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tell me what this code does ;-). If you want, assume is called with this parameter s = { &amp;quot;...#&amp;quot;, &amp;quot;..##&amp;quot; }. --[[User:Zyx|zyx]] 15:40, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: This code could be greatly improved with a few comments:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;      // integer values&lt;br /&gt;
struct LittleSquares {  // structure&lt;br /&gt;
    template&amp;lt;class S&amp;gt;typeof*&amp;quot;&amp;quot;*winner(S s) {   // template for S&lt;br /&gt;
        for ( ; i&amp;lt;s.size(); a?k^=a%2^'rf_H'/7&amp;gt;&amp;gt;x:j=!++++i )  // loop over i&lt;br /&gt;
            a=s[i][j]+s[i+1][j++], x-=a&amp;amp;8?3:x;   // a &amp;amp; x are integer results&lt;br /&gt;
        return k&amp;amp;7 ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;         // return &amp;quot;first&amp;quot; or &amp;quot;second&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: There, now its production-ready!  =)  --[[User:Darkcanuck|Darkcanuck]] 03:19, 5 October 2009 (UTC)&lt;br /&gt;
:: Thanks, that gave me a chuckle. =) I wish I could say I never come across comments like those... --[[User:Voidious|Voidious]] 13:06, 5 October 2009 (UTC)&lt;br /&gt;
::: Don't let PEZ read this, he would probably explode. [[oldwiki:WhyCommentsAreBad]] --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:36, 5 October 2009 (UTC)&lt;br /&gt;
:: Hehehe those comments really made it easy to understand :-). --[[User:Zyx|zyx]] 14:00, 5 October 2009 (UTC)&lt;br /&gt;
: I don't know C(++) very well...or whatever that language is, but it's definitely not Java --[[User:Starrynte|Starrynte]] 04:45, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
What I mean is regular code =) It is C++ I know, not that it help much. I only write plain old C. By the way, if I simplified correctly.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;      // integer values&lt;br /&gt;
struct LittleSquares {  // structure&lt;br /&gt;
    template&amp;lt;class S&amp;gt; typeof(*&amp;quot;&amp;quot;) *winner(S s) {   // template for S&lt;br /&gt;
        for ( ;&lt;br /&gt;
            i &amp;lt; s.size();&lt;br /&gt;
            (a != 0) ?&lt;br /&gt;
                // k = K XOR (a MOD 2) XOR (10 000 010 101 111 100 010 001 111 000 &amp;gt;&amp;gt; x)&lt;br /&gt;
                k ^= (a % 2) ^ (274187384&amp;gt;&amp;gt;x) : &lt;br /&gt;
                j = !++++i // j = 0, i += 2&lt;br /&gt;
        ) {  // loop over i&lt;br /&gt;
            a = s[i][j] + s[i+1][j];&lt;br /&gt;
            j++;&lt;br /&gt;
            x -= a == 8 ? 3 : x;&lt;br /&gt;
        }&lt;br /&gt;
		&lt;br /&gt;
        return (k == 7) ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case I would answer, this code didn't do anything since its lack of main() or WinMain() =) OK, seriously, since I work on g++, its result isn't predictable since all variable isn't initialized yet (unlike Java =)), or initialized at an unknown place. I don't know if all this things are on VC++ too. Lastly, I repeat my first sentence. Even decompiled obfuscated code are not as &amp;lt;s&amp;gt;f&amp;lt;censored&amp;gt;g&amp;lt;/s&amp;gt; mess as this. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 12:08, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I know that code is simple madness, but as unlikely as it may seem, that solves this relatively hard [http://www.topcoder.com/stat?c=problem_statement&amp;amp;pm=8543&amp;amp;rd=11123 topcoder problem]. --[[User:Zyx|zyx]] 13:57, 5 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12961</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12961"/>
		<updated>2009-10-05T13:57:17Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Example? */ topcoder problem solution&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:31, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
There are several references here to ABC's fast PIF method, however, I couldn't find anything related to this on the wiki. What exactly is this method? --[[User:Navajo|Navajo]] 05:31, 4 October 2009 (UTC)&lt;br /&gt;
: I don't know where the original post is, but for now you can check [[User_talk:Nat#Fast_Play-it_forward_algorithm| Nat's talk page]]. There is some discussion, codes and a link to the oldwiki for [[Skilgannon]]'s code with some [[ABC]] code as well. I think from there you can get to the original post too, but I may delirious. --[[User:Zyx|zyx]] 07:15, 4 October 2009 (UTC)&lt;br /&gt;
: I believe the original post is at [[oldwiki:DCBot]] --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks!  Still wrapping my head around this...  The pseudocode seems to add some unexplained tricks and has two mysterious functions.  But let's see if I understand this: you're basically matching as you update.  So you can't really ask the algorithm for the best match to &amp;quot;X&amp;quot;, rather it gives you the best match for the newest data in the sequence.  I think that's where I was stuck.  In the naive implementation you would have to rescan the entire log (in reverse order) once to update the match lengths, correct?  I guess your pseudocode tries to speed up that process by remembering pointers into the log for each letter of the alphabet so you only have to scan those points.  This is fascinating, I'm going to have to make a simulator for it before trying it in-game... --[[User:Darkcanuck|Darkcanuck]] 01:48, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thats exactly what it does. More formally it finds all the substrings that match the current tail of the log. --[[User:Zyx|zyx]] 01:52, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if it is just me or not, but I understand algorithm better with code than with explanation (I understand Bucket PR k-d tree when I read Simonton's tree. I understand MR and GF when I read [[Coriantumr]]'s source. I understand DC when I read [[DrussGT]]'s source. I understand WS when I read [[BasicSurfer]]'s source. I understand PM when I read WeekendObsession and [[Waylander]]/[[Toorkild]] source. etc.) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:32, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Well source code is somewhat universal and unambiguous, so it helps a lot in understanding. But with the lack of some explanation, just reading code can become extremely hard to understand, even something you wrote yourself some years ago. Imagine reading BasicSurfer with absolutely no explanation, you can eventually figure it out (especially if you already know GF targeting) but I'm sure it will take many re-reads and a lot of time to do so. --[[User:Zyx|zyx]] 07:21, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Not for me. Actually I know WS before GF. I got headache trying to understand Wave Surfing tutorial, which I got nothing at all. Then I read BasicSurfer, which make me understand the concept of Wave Surfing finally. Even though I admit that the 'self-documentation' code and/or inline comments help a lot. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;&lt;br /&gt;
struct LittleSquares {&lt;br /&gt;
    template&amp;lt;class S&amp;gt;typeof*&amp;quot;&amp;quot;*winner(S s) {&lt;br /&gt;
        for ( ; i&amp;lt;s.size(); a?k^=a%2^'rf_H'/7&amp;gt;&amp;gt;x:j=!++++i )&lt;br /&gt;
            a=s[i][j]+s[i+1][j++], x-=a&amp;amp;8?3:x;&lt;br /&gt;
        return k&amp;amp;7 ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tell me what this code does ;-). If you want, assume is called with this parameter s = { &amp;quot;...#&amp;quot;, &amp;quot;..##&amp;quot; }. --[[User:Zyx|zyx]] 15:40, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: This code could be greatly improved with a few comments:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;      // integer values&lt;br /&gt;
struct LittleSquares {  // structure&lt;br /&gt;
    template&amp;lt;class S&amp;gt;typeof*&amp;quot;&amp;quot;*winner(S s) {   // template for S&lt;br /&gt;
        for ( ; i&amp;lt;s.size(); a?k^=a%2^'rf_H'/7&amp;gt;&amp;gt;x:j=!++++i )  // loop over i&lt;br /&gt;
            a=s[i][j]+s[i+1][j++], x-=a&amp;amp;8?3:x;   // a &amp;amp; x are integer results&lt;br /&gt;
        return k&amp;amp;7 ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;         // return &amp;quot;first&amp;quot; or &amp;quot;second&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
: There, now its production-ready!  =)  --[[User:Darkcanuck|Darkcanuck]] 03:19, 5 October 2009 (UTC)&lt;br /&gt;
:: Thanks, that gave me a chuckle. =) I wish I could say I never come across comments like those... --[[User:Voidious|Voidious]] 13:06, 5 October 2009 (UTC)&lt;br /&gt;
::: Don't let PEZ read this, he would probably explode. [[oldwiki:WhyCommentsAreBad]] --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:36, 5 October 2009 (UTC)&lt;br /&gt;
: I don't know C(++) very well...or whatever that language is, but it's definitely not Java --[[User:Starrynte|Starrynte]] 04:45, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
What I mean is regular code =) It is C++ I know, not that it help much. I only write plain old C. By the way, if I simplified correctly.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;      // integer values&lt;br /&gt;
struct LittleSquares {  // structure&lt;br /&gt;
    template&amp;lt;class S&amp;gt; typeof(*&amp;quot;&amp;quot;) *winner(S s) {   // template for S&lt;br /&gt;
        for ( ;&lt;br /&gt;
            i &amp;lt; s.size();&lt;br /&gt;
            (a != 0) ?&lt;br /&gt;
                // k = K XOR (a MOD 2) XOR (10 000 010 101 111 100 010 001 111 000 &amp;gt;&amp;gt; x)&lt;br /&gt;
                k ^= (a % 2) ^ (274187384&amp;gt;&amp;gt;x) : &lt;br /&gt;
                j = !++++i // j = 0, i += 2&lt;br /&gt;
        ) {  // loop over i&lt;br /&gt;
            a = s[i][j] + s[i+1][j];&lt;br /&gt;
            j++;&lt;br /&gt;
            x -= a == 8 ? 3 : x;&lt;br /&gt;
        }&lt;br /&gt;
		&lt;br /&gt;
        return (k == 7) ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this case I would answer, this code didn't do anything since its lack of main() or WinMain() =) OK, seriously, since I work on g++, its result isn't predictable since all variable isn't initialized yet (unlike Java =)), or initialized at an unknown place. I don't know if all this things are on VC++ too. Lastly, I repeat my first sentence. Even decompiled obfuscated code are not as &amp;lt;s&amp;gt;f&amp;lt;censored&amp;gt;g&amp;lt;/s&amp;gt; mess as this. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 12:08, 5 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I know that code is simple madness, but as unlikely as it may seem, that solves this relatively hard [http://www.topcoder.com/stat?c=problem_statement&amp;amp;pm=8543&amp;amp;rd=11123 topcoder problem]. --[[User:Zyx|zyx]] 13:57, 5 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12930</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12930"/>
		<updated>2009-10-04T15:40:07Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Example? */ what this code does?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:31, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
There are several references here to ABC's fast PIF method, however, I couldn't find anything related to this on the wiki. What exactly is this method? --[[User:Navajo|Navajo]] 05:31, 4 October 2009 (UTC)&lt;br /&gt;
: I don't know where the original post is, but for now you can check [[User_talk:Nat#Fast_Play-it_forward_algorithm| Nat's talk page]]. There is some discussion, codes and a link to the oldwiki for [[Skilgannon]]'s code with some [[ABC]] code as well. I think from there you can get to the original post too, but I may delirious. --[[User:Zyx|zyx]] 07:15, 4 October 2009 (UTC)&lt;br /&gt;
: I believe the original post is at [[oldwiki:DCBot]] --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks!  Still wrapping my head around this...  The pseudocode seems to add some unexplained tricks and has two mysterious functions.  But let's see if I understand this: you're basically matching as you update.  So you can't really ask the algorithm for the best match to &amp;quot;X&amp;quot;, rather it gives you the best match for the newest data in the sequence.  I think that's where I was stuck.  In the naive implementation you would have to rescan the entire log (in reverse order) once to update the match lengths, correct?  I guess your pseudocode tries to speed up that process by remembering pointers into the log for each letter of the alphabet so you only have to scan those points.  This is fascinating, I'm going to have to make a simulator for it before trying it in-game... --[[User:Darkcanuck|Darkcanuck]] 01:48, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thats exactly what it does. More formally it finds all the substrings that match the current tail of the log. --[[User:Zyx|zyx]] 01:52, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if it is just me or not, but I understand algorithm better with code than with explanation (I understand Bucket PR k-d tree when I read Simonton's tree. I understand MR and GF when I read [[Coriantumr]]'s source. I understand DC when I read [[DrussGT]]'s source. I understand WS when I read [[BasicSurfer]]'s source. I understand PM when I read WeekendObsession and [[Waylander]]/[[Toorkild]] source. etc.) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:32, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Well source code is somewhat universal and unambiguous, so it helps a lot in understanding. But with the lack of some explanation, just reading code can become extremely hard to understand, even something you wrote yourself some years ago. Imagine reading BasicSurfer with absolutely no explanation, you can eventually figure it out (especially if you already know GF targeting) but I'm sure it will take many re-reads and a lot of time to do so. --[[User:Zyx|zyx]] 07:21, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Not for me. Actually I know WS before GF. I got headache trying to understand Wave Surfing tutorial, which I got nothing at all. Then I read BasicSurfer, which make me understand the concept of Wave Surfing finally. Even though I admit that the 'self-documentation' code and/or inline comments help a lot. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 07:34, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
int i, j, k, x, a;&lt;br /&gt;
struct LittleSquares {&lt;br /&gt;
    template&amp;lt;class S&amp;gt;typeof*&amp;quot;&amp;quot;*winner(S s) {&lt;br /&gt;
        for ( ; i&amp;lt;s.size(); a?k^=a%2^'rf_H'/7&amp;gt;&amp;gt;x:j=!++++i )&lt;br /&gt;
            a=s[i][j]+s[i+1][j++], x-=a&amp;amp;8?3:x;&lt;br /&gt;
        return k&amp;amp;7 ? &amp;quot;first&amp;quot; : &amp;quot;second&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Tell me what this code does ;-). If you want, assume is called with this parameter s = { &amp;quot;...#&amp;quot;, &amp;quot;..##&amp;quot; }. --[[User:Zyx|zyx]] 15:40, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12919</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12919"/>
		<updated>2009-10-04T07:21:31Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Example? */ code is unambiguoug, but explanations are usually needed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:31, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
There are several references here to ABC's fast PIF method, however, I couldn't find anything related to this on the wiki. What exactly is this method? --[[User:Navajo|Navajo]] 05:31, 4 October 2009 (UTC)&lt;br /&gt;
: I don't know where the original post is, but for now you can check [[User_talk:Nat#Fast_Play-it_forward_algorithm| Nat's talk page]]. There is some discussion, codes and a link to the oldwiki for [[Skilgannon]]'s code with some [[ABC]] code as well. I think from there you can get to the original post too, but I may delirious. --[[User:Zyx|zyx]] 07:15, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks!  Still wrapping my head around this...  The pseudocode seems to add some unexplained tricks and has two mysterious functions.  But let's see if I understand this: you're basically matching as you update.  So you can't really ask the algorithm for the best match to &amp;quot;X&amp;quot;, rather it gives you the best match for the newest data in the sequence.  I think that's where I was stuck.  In the naive implementation you would have to rescan the entire log (in reverse order) once to update the match lengths, correct?  I guess your pseudocode tries to speed up that process by remembering pointers into the log for each letter of the alphabet so you only have to scan those points.  This is fascinating, I'm going to have to make a simulator for it before trying it in-game... --[[User:Darkcanuck|Darkcanuck]] 01:48, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thats exactly what it does. More formally it finds all the substrings that match the current tail of the log. --[[User:Zyx|zyx]] 01:52, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if it is just me or not, but I understand algorithm better with code than with explanation (I understand Bucket PR k-d tree when I read Simonton's tree. I understand MR and GF when I read [[Coriantumr]]'s source. I understand DC when I read [[DrussGT]]'s source. I understand WS when I read [[BasicSurfer]]'s source. I understand PM when I read WeekendObsession and [[Waylander]]/[[Toorkild]] source. etc.) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:32, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Well source code is somewhat universal and unambiguous, so it helps a lot in understanding. But with the lack of some explanation, just reading code can become extremely hard to understand, even something you wrote yourself some years ago. Imagine reading BasicSurfer with absolutely no explanation, you can eventually figure it out (especially if you already know GF targeting) but I'm sure it will take many re-reads and a lot of time to do so. --[[User:Zyx|zyx]] 07:21, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12918</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12918"/>
		<updated>2009-10-04T07:15:51Z</updated>

		<summary type="html">&lt;p&gt;Zyx: ABC fast PIF&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thanks! --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:31, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
There are several references here to ABC's fast PIF method, however, I couldn't find anything related to this on the wiki. What exactly is this method? --[[User:Navajo|Navajo]] 05:31, 4 October 2009 (UTC)&lt;br /&gt;
: I don't know where the original post is, but for now you can check [[User_talk:Nat#Fast_Play-it_forward_algorithm| Nat's talk page]]. There is some discussion, codes and a link to the oldwiki for [[Skilgannon]]'s code with some [[ABC]] code as well. I think from there you can get to the original post too, but I may delirious. --[[User:Zyx|zyx]] 07:15, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks!  Still wrapping my head around this...  The pseudocode seems to add some unexplained tricks and has two mysterious functions.  But let's see if I understand this: you're basically matching as you update.  So you can't really ask the algorithm for the best match to &amp;quot;X&amp;quot;, rather it gives you the best match for the newest data in the sequence.  I think that's where I was stuck.  In the naive implementation you would have to rescan the entire log (in reverse order) once to update the match lengths, correct?  I guess your pseudocode tries to speed up that process by remembering pointers into the log for each letter of the alphabet so you only have to scan those points.  This is fascinating, I'm going to have to make a simulator for it before trying it in-game... --[[User:Darkcanuck|Darkcanuck]] 01:48, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thats exactly what it does. More formally it finds all the substrings that match the current tail of the log. --[[User:Zyx|zyx]] 01:52, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I don't know if it is just me or not, but I understand algorithm better with code than with explanation (I understand Bucket PR k-d tree when I read Simonton's tree. I understand MR and GF when I read [[Coriantumr]]'s source. I understand DC when I read [[DrussGT]]'s source. I understand WS when I read [[BasicSurfer]]'s source. I understand PM when I read WeekendObsession and [[Waylander]]/[[Toorkild]] source. etc.) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 02:32, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12908</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12908"/>
		<updated>2009-10-04T01:52:22Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Example? */ thats right&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Thanks!  Still wrapping my head around this...  The pseudocode seems to add some unexplained tricks and has two mysterious functions.  But let's see if I understand this: you're basically matching as you update.  So you can't really ask the algorithm for the best match to &amp;quot;X&amp;quot;, rather it gives you the best match for the newest data in the sequence.  I think that's where I was stuck.  In the naive implementation you would have to rescan the entire log (in reverse order) once to update the match lengths, correct?  I guess your pseudocode tries to speed up that process by remembering pointers into the log for each letter of the alphabet so you only have to scan those points.  This is fascinating, I'm going to have to make a simulator for it before trying it in-game... --[[User:Darkcanuck|Darkcanuck]] 01:48, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: Thats exactly what it does. More formally it finds all the substrings that match the current tail of the log. --[[User:Zyx|zyx]] 01:52, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Griezel/Version_History&amp;diff=12904</id>
		<title>Talk:Griezel/Version History</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Griezel/Version_History&amp;diff=12904"/>
		<updated>2009-10-04T00:43:06Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Fear of the Centerfield */ similar thoughts&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 0.2 ==&lt;br /&gt;
&lt;br /&gt;
Wow, 3rd place and probably a tweak or two away from the #2 spot - congrats! Looking at the survival score vs [[Coriantumr]], maybe you could gain some points with more aggressive bullet power selection? That's generally my conclusion if I'm outranked by a bot with lower survival. Good luck chasing the MiniMelee throne. =) --[[User:Voidious|Voidious]] 19:19, 3 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Thanks, curse those minibattles as they pushed me down to third place. This update was ment as a warm-up before I started with a new meleebot inspired by [[Portia]] and [[Diamond]], but I think I'll do an update of the megaversion first to (try to) lift it into the top-10. The gap doesn't seem so big anymore after the ...Hawk experiments. --[[User:GrubbmGait|GrubbmGait]] 21:17, 3 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
No need for tweaks to get to #2, due to the activity in megamelee it passed [[Coriantumr]] and is breathing [[Griezel]] 0.4 in the neck (until I update that one) --[[User:GrubbmGait|GrubbmGait]] 23:15, 23 September 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Fear of the Centerfield ==&lt;br /&gt;
&lt;br /&gt;
Hmm, the recent Griezel confirms the hunches I've when developing with [[MiniSurreptitious]] (which [[Glacier]]'s minrisk factors are loosely based on). When watching battles, I noticed what while MiniSurreptitious ended up in the centerfield it never seemed to take many hits, at least not significantly diferent than any other time. Thus I never used a centerfield fear myself. I think it's because so many other bots end up around the edges/coners quickly, that makes the center less dangerous than traditional wisdom advised. --[[User:Rednaxela|Rednaxela]] 00:38, 4 October 2009 (UTC)&lt;br /&gt;
: I had similar conclusions myself, with no real testing though. I think perpendicularity and keeping distance makes it relatively safe to be near the center (not for long though) after 3 or 4 bots die the center becomes extremely dangerous I think. And when there are only 5 bots in the field is safer to ram Shadow(which is pretty dangerous) than staying in the center and be targeted by all 4 bots. --[[User:Zyx|zyx]] 00:43, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12901</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12901"/>
		<updated>2009-10-04T00:26:42Z</updated>

		<summary type="html">&lt;p&gt;Zyx: typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked why you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12900</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12900"/>
		<updated>2009-10-04T00:26:10Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Why reverse order answered at the end of section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
[[Nat]] Somewhere you asked by you needed to traverse it in reverse order, try running it in normal order for this case. Assume you have correct values for &amp;quot;AAABA&amp;quot; (ie: 111**) and now try to add a new A to it. --[[User:Zyx|zyx]] 00:26, 4 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12898</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12898"/>
		<updated>2009-10-04T00:07:23Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Example? */ hope it helps&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: If you don't care the speed, then probably weighting buffers may give better result. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Experimenting with it and got:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
=========================&lt;br /&gt;
Round 1 of 100&lt;br /&gt;
=========================&lt;br /&gt;
0,000 Initializing movement log...&lt;br /&gt;
java.lang.OutOfMemoryError: Java heap space&lt;br /&gt;
	at java.util.ArrayList.&amp;lt;init&amp;gt;(Unknown Source)&lt;br /&gt;
	at nat.z.pm.PMSequence.&amp;lt;init&amp;gt;(PMSequence.java:34)&lt;br /&gt;
	at nat.z.pm.PMGun2.&amp;lt;init&amp;gt;(PMGun2.java:89)&lt;br /&gt;
	at nat.z.PMTest.init(PMTest.java:18)&lt;br /&gt;
	at nat.base.BotBase.run(BotBase.java:204)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 19:51, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example? ==&lt;br /&gt;
&lt;br /&gt;
I've reread the main page a few times now and &amp;quot;sort of&amp;quot; get it, but not quite.  zyx, would you mind adding a slightly longer example with the binary alphabet?  I understand the first step (finding the B or A starting point in the &amp;quot;histogram&amp;quot;) but I'm not clear how you continue from there.  Does it recurse back into the histogram with all matches for the next letter or ... ? --[[User:Darkcanuck|Darkcanuck]] 21:50, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I added a new section which contains a step by step of the algorithm matching a simple string, hope it helps in understanding how it works. Although I think the implementation pseudocode is the clearest way to do so. And there is no recursion anywhere, the idea is to have a list for each character in the alphabet, so that when traversing it you go trough all the possible ends of a match, the size would tell you where the pattern actually starts (not really needed for most Robocode applications). --[[User:Zyx|zyx]] 00:07, 4 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Sequential_Prediction&amp;diff=12896</id>
		<title>Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Sequential_Prediction&amp;diff=12896"/>
		<updated>2009-10-04T00:02:18Z</updated>

		<summary type="html">&lt;p&gt;Zyx: /* Algorithm at work */ Step by step example of the algorithm matching a string&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sequential prediction is a very fast [[Pattern Matching]] algorithm, it has a linear running time. While it matches it is able to find all matches along with their match size. The main draw back is that the values matched need to be discrete and capped, that can be achieved just like in [[Symbolic Pattern Matching]] but we can use integers instead of characters in a String if preferred.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
I got the idea and basic algorithm from:&lt;br /&gt;
* Fri Mommersteeg - Eindhoven University of Technology. Article published in the book [http://introgamedev.com/resource_aiwisdom.html Game Programming Wisom, 2002] under article ''Pattern Recognition with Sequential Prediction''.&lt;br /&gt;
&lt;br /&gt;
I tried to keep most of the original author's idea, but I biased it a little bit for Robocode.&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
* As in other pattern matching algorithms, assume we have a sequence of size N called log. For simplicity we will assume it's indexed form 1 to N.&lt;br /&gt;
* Let a match be a pair {i, k} such that log(i + j) equals log(N - k + j) for all j from 0 to k-1. We will call k the size of match.&lt;br /&gt;
* Let a longest match be a match with maximal size.&lt;br /&gt;
&lt;br /&gt;
If we can find a longest match we already have more information than most current pattern matching algorithms (except for [[Single-Tick Pattern Matching]]), which usually have one or more fixed sizes to try. And if we can find it faster, then it's even better.&lt;br /&gt;
&lt;br /&gt;
Consider the binary string ''BABBA'''''BAABA'''''AABBBBABB'''''BAABA''', in this case the longest match is '''BAABA''' and has a size of 5. The pattern starts at index 6 of the log, therefore the match is called {6, 5}. A naive algorithm would look for the previous A, and then check if the value to it's left is a B, and so on. This algorithm takes O(n^2) to find the longest match, which is too slow for even relatively small log sizes.&lt;br /&gt;
&lt;br /&gt;
== Better Idea ==&lt;br /&gt;
The key point is take advantage from the fact that the sequence is being generated incrementally. When a new element is added the complete sequence remains the same, except for the tail. Exploiting this property we can find the longest match very fast.&lt;br /&gt;
&lt;br /&gt;
* Let a match size of occurrence of A be the size of a match ending in A.&lt;br /&gt;
* Suppose we know all the match sizes of occurrences of A.&lt;br /&gt;
* Suppose the log ends with A and that we are adding a B.&lt;br /&gt;
&lt;br /&gt;
Can we use this information to find all match sizes of occurrences of B? Yes we can, and is very simple too. For all occurrences of B we have one of two cases:&lt;br /&gt;
# The B is ''not'' preceded by A.&lt;br /&gt;
# The B is preceded by A.&lt;br /&gt;
&lt;br /&gt;
In the first case it is obvious that the match size is 1. For the second case things could be trickier, but since we now all match sizes of occurrences of A, then is not that hard.&lt;br /&gt;
&lt;br /&gt;
The string is something like &amp;quot;...''A'''''B'''...A&amp;quot;, prior to the addition and it will become &amp;quot;...''A'''''B'''...AB&amp;quot;. Therefor is easy to see that the match size of '''B''' is the match size of ''A''(we know this value) plus 1. This comes from extending the substring that ended in ''A'' to include the '''B''' as we know it will match the new tail.&lt;br /&gt;
&lt;br /&gt;
What if we are adding an A instead of a B, does the algorithm work? The answer is yes as long as you traverse the occurrences of A in reverse order as they appeared.&lt;br /&gt;
&lt;br /&gt;
Now the only problem is the supposition of having all match sizes of occurrences of A, but since we start with an empty log the initialization is trivial. After initialized the algorithm is self-sustaining, so the supposition gives no problems at all.&lt;br /&gt;
&lt;br /&gt;
This results in an O(n) algorithm, than only checks all previous occurrences of the element being added. With clever data structures the algorithm can run very fast.&lt;br /&gt;
&lt;br /&gt;
== Algorithm at work ==&lt;br /&gt;
Lets see how the algorithm works for the input string ''ABABBAB'' which is created incrementally. We start with an empty string and a new letter in each step. We will represent each step with 3 lines, the first one is the index in the string (1-based), the second is the current string and the third is the longest match size that ends at that character. If the last character in the log doesn't match, we will use a &amp;quot;*&amp;quot; as a match size to represent a mismatch but in real implementation the real match sizes in there can have some value, but they are irrelevant because we don't check them directly at the next step. The character being added in each step is represent as a bold letter.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; style=&amp;quot;border-collapse: collapse; font-size: 85%; color: black&amp;quot;&lt;br /&gt;
|align=&amp;quot;left&amp;quot;|&lt;br /&gt;
!Index: &lt;br /&gt;
!0&lt;br /&gt;
!1&lt;br /&gt;
!2&lt;br /&gt;
!3&lt;br /&gt;
!4&lt;br /&gt;
!5&lt;br /&gt;
!6&lt;br /&gt;
!Comment&lt;br /&gt;
|-&lt;br /&gt;
|N=1&lt;br /&gt;
|String:&lt;br /&gt;
|'''A'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|The string was empty, nothing match here.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Size:&lt;br /&gt;
|*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|N=2&lt;br /&gt;
|String:&lt;br /&gt;
|A&lt;br /&gt;
|'''B'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|This is the first B, no matches found.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Size:&lt;br /&gt;
|*&lt;br /&gt;
|*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|N=3&lt;br /&gt;
|String:&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|'''A'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|When checking the previous A(index 0) it realizes there isn't a B before it so the match size is 1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Size:&lt;br /&gt;
|1&lt;br /&gt;
|*&lt;br /&gt;
|*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|N=4&lt;br /&gt;
|String:&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|A&lt;br /&gt;
|'''B'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|When checking the previous B(index 1) it realizes there ''is'' an A(index 0) before it with a match size of 1, so the match size is 1 + 1 = 2.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Size:&lt;br /&gt;
|*&lt;br /&gt;
|2&lt;br /&gt;
|*&lt;br /&gt;
|*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|N=5&lt;br /&gt;
|String:&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|'''B'''&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|When checking the previous B(index 3) it realizes there isn't a B before so the match size is 1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Size:&lt;br /&gt;
|*&lt;br /&gt;
|1&lt;br /&gt;
|*&lt;br /&gt;
|1&lt;br /&gt;
|*&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|When checking further back the previous B(index 1) it realizes there isn't a B before so the match size is 1.&lt;br /&gt;
|-&lt;br /&gt;
|N=6&lt;br /&gt;
|String:&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|B&lt;br /&gt;
|'''A'''&lt;br /&gt;
|&lt;br /&gt;
|When checking the previous A(index 2) it realizes there ''is'' a B(index 1) before it with a match size of 1, so the match size is 1 + 1 = 2.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Size:&lt;br /&gt;
|1&lt;br /&gt;
|*&lt;br /&gt;
|2&lt;br /&gt;
|*&lt;br /&gt;
|*&lt;br /&gt;
|*&lt;br /&gt;
|&lt;br /&gt;
|When checking further back the previous A(index 0) it realizes there isn't a B before so the match size is 1.&lt;br /&gt;
|-&lt;br /&gt;
|N=7&lt;br /&gt;
|String:&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|A&lt;br /&gt;
|B&lt;br /&gt;
|B&lt;br /&gt;
|A&lt;br /&gt;
|'''B'''&lt;br /&gt;
|The B at index 4 doesn't have an A before it so the match size is 1.&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|Size:&lt;br /&gt;
|*&lt;br /&gt;
|2&lt;br /&gt;
|*&lt;br /&gt;
|3&lt;br /&gt;
|1&lt;br /&gt;
|*&lt;br /&gt;
|*&lt;br /&gt;
|The Bs at indexes 3 and 1, have an A before them with match sizes of 2 and 1 respectively, so the new match sizes are 2 + 1 = 3 and 1 + 1 = 2.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* Let alphabet be the set of all possible values in the sequence.&lt;br /&gt;
* Let histogram be an array of size |alphabet| of lists of Entry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Entry {&lt;br /&gt;
  int index;                // Index into the sequence.&lt;br /&gt;
  int value;                // Discrete value being matched.&lt;br /&gt;
  int match_size;           // Match size of this occurrence.&lt;br /&gt;
  Entry getPreviousEntry(); // Method to obtain the Entry that came right before this one.&lt;br /&gt;
}&lt;br /&gt;
function SequentialPrediction(int next_element) {&lt;br /&gt;
  List&amp;lt;Entry&amp;gt; ocurrences = histogram[next_element];&lt;br /&gt;
  int longest_match_size = 0;&lt;br /&gt;
  int longest_match_tail = 0;&lt;br /&gt;
  for each entry in ocurrences do {&lt;br /&gt;
    Entry previous = entry.getPreviousEntry();&lt;br /&gt;
    // Find the match size&lt;br /&gt;
    if ( previous.value == last_value ) entry.match_size = previous.match_size + 1;&lt;br /&gt;
    else entry.match_size = 1;&lt;br /&gt;
    // Update longest match&lt;br /&gt;
    if ( entry.match_size &amp;gt; longest_match_size ) {&lt;br /&gt;
      longest_match_size = entry.match_size;&lt;br /&gt;
      longest_match_tail = entry.index;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  UpdateSequence(next_element);&lt;br /&gt;
  UpdateHistogram(next_element);&lt;br /&gt;
  last_value = next_element;&lt;br /&gt;
  if ( longest_match_size &amp;gt; 0 ) {&lt;br /&gt;
    Start prediction at Sequence[longest_match_tail + 1];&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When iterating trough the entries in the occurrences list, remember to go trough them from last to first. Or you can add new entries to the beginning of the list when updating the histogram.&lt;br /&gt;
&lt;br /&gt;
== Multiple-Choice ==&lt;br /&gt;
Since the algorithm find all partial matches, instead of updating the index and size of the longest match we can use them all (or some of the best ones) for a multiple choice pattern matcher.&lt;br /&gt;
&lt;br /&gt;
== Weighting ==&lt;br /&gt;
For the multiple choice algorithm, choices may be weighted by one or more of the following with minimal complexity added:&lt;br /&gt;
* Match size.&lt;br /&gt;
* Distance to sequence tail (very good for fast adapting dodgers).&lt;br /&gt;
* Similar weighting as found in [[Dynamic Clustering]] algorithms.&lt;br /&gt;
&lt;br /&gt;
[[Category:Advanced Targeting Strategies]]&lt;br /&gt;
[[Category:Log-Based Targeting]]&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12884</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12884"/>
		<updated>2009-10-03T19:34:24Z</updated>

		<summary type="html">&lt;p&gt;Zyx: multiple buffers&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
::: By the way [[User:Nat|Nat]], your adaptation of my ResultsHeap is notably inefficent. Using a single array of PMEntry instead of keeping the match length stored in a seperate array, makes the operations of reading/comparing/etc the values measurably slower. Also... by not having any limiting on the number of matches returned... it's hugely slow and almost entirely defeats the purpose of using a heap. The heap will only gain you significant performance if you're only keep a size-limited list of the longest matches (and keep the 'else' condition you removed from addValue for no good reason...). Plus, for keeping the LONGEST matches you want a min-heap, not a max-heap like is used in a kd-tree. Honestly your implementation of it looks like somewhat of a performance nightmare. --[[User:Rednaxela|Rednaxela]] 18:04, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:::: Since that test with tons of skipped turns at round 24, I rewrote the whole gun (yes, really). Just run another match with PatternBot, using single buffer it skipped no turn. Still using while data, heap is just to sort (should use merge sort, but too lazy to write one) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: Because HashMap is the simplest way =) Just rewrote and now use integer instead of String. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
One thought that may improve performance somewhat... would be using an increasingly larger alphabet size the number of rounds increases. This will both lead to more precise matches as more data is avaliable, and reduce how many entries will be matching the current 'letter' of the alphabet. --[[User:Rednaxela|Rednaxela]] 17:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: But using larger alphabet you will broke the match with old data, or unless you use multiple buffers... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 18:37, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I have thought of doing something along that lines, but as [[Nat]] mentions you need different buffers for that. But you can update the detailed ones without any prediction based on them at early rounds. And later throw away the less detailed buffers when the detailed ones have a decent amount of match size. --[[User:Zyx|zyx]] 19:34, 3 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12877</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12877"/>
		<updated>2009-10-03T17:45:39Z</updated>

		<summary type="html">&lt;p&gt;Zyx: FolderPatternMatcher and HashMap&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;math&amp;gt;Insert formula here&amp;lt;/math&amp;gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: I thought so at first, too (and almost changed it), but now I think it's fine like it is. This page is really describing an algorithm more than a specific gun's implementation of it, and others like [[Symbolic Pattern Matching]] are under targeting strategies, even though they're implementations of PM. --[[User:Voidious|Voidious]] 16:53, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Thank you, it works fine now, except that it is awfully slow using HashMap and LinkedList =) Mine start skipping turns at round 20 and skipped turns like hell at round 28. But robot-generated PMC index (I make it collect data and print index every round) tell me that it work. One thing I don't understand, is why is it need to travel in reverse order? --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 16:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Very cool! Glad to see I'm not the only one in the Targeting Laboratory. =) I need to re-read this page a couple times before I fully grok the code, but I think I get the idea. I think Multiple Choice on the deepest matches is the kind of thing that could really put PM over the edge, and it's much more viable to do that with such a lightning fast PM algorithm. By the way, have you seen the [[Folded Pattern Matcher]] ([[oldwiki:FoldedPatternMatcher|old wiki link]])? I believe it's different than what you have here, but it is another very fast PM, so I thought you might want to look for comparison / inspiration. Thanks for posting such an in-depth write-up - good luck with this. --[[User:Voidious|Voidious]] 16:40, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: (I know I'm not zyx) I have been planning with PM-kind thing for a while. The problem I got is the speed (now this work, should be better on my project, which have much the same goals and path as zyx) I use to used FoldedPatternMatcher too, but that still O(n^2) because it need to check each case too (it only skips the find-the-head-of-each-match step) This is O(n), and you know how much faster it is (my multiple-choice algorithm make it O(n log n) though, due the heap use) On other note, when I first read this page I think it is just re-invent of FoldedPatternMatcher =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 17:26, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Yes I forgot to mention that, I had it in my mind (I wrote the article at 4am). FolderPatternMatcher is very similar, I think if whoever wrote that would have realized that you can keep the match size as you find them instead of going trough them every time then it would have come out as this algorithm.&lt;br /&gt;
: HashMap are O(log n), if you know the alphabet size and use integers as key, then using a built in array is much faster O(1). --[[User:Zyx|zyx]] 17:45, 3 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12861</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12861"/>
		<updated>2009-10-03T15:31:37Z</updated>

		<summary type="html">&lt;p&gt;Zyx: skipped turns. Some posible bugs for Nat&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;math&amp;gt;Insert formula here&amp;lt;/math&amp;gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:: I use velocity/deltaHeading (which I believe is as same as Rotation). 9 velocity discrete and 5 rotation discrete, yet it only find the pattern length &amp;lt;100 and it does match across round (I try adding ROUND_BREAK but fail) Perhaps there is bug in my matcher:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	private class PMEntry extends Point2D.Double {&lt;br /&gt;
		double heading;&lt;br /&gt;
		PMEntry next, previous;&lt;br /&gt;
		String key;&lt;br /&gt;
		int matchSize = 0;&lt;br /&gt;
		int round;&lt;br /&gt;
&lt;br /&gt;
		public PMEntry(Point2D pt, double heading) {&lt;br /&gt;
			super();&lt;br /&gt;
			setLocation(pt);&lt;br /&gt;
			this.heading = heading;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private class PMSequence {&lt;br /&gt;
		private HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt; dataMap;&lt;br /&gt;
		private PMEntry last = null;&lt;br /&gt;
&lt;br /&gt;
		public PMSequence() {&lt;br /&gt;
			dataMap = new HashMap&amp;lt;String, LinkedList&amp;lt;PMEntry&amp;gt;&amp;gt;();&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		private LinkedList&amp;lt;PMEntry&amp;gt; getEntries(String key) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entry = dataMap.get(key);&lt;br /&gt;
			if (entry == null) {&lt;br /&gt;
				dataMap.put(key, entry = new LinkedList&amp;lt;PMEntry&amp;gt;());&lt;br /&gt;
			}&lt;br /&gt;
			return entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public void addNewEntry(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			if (last != null) {&lt;br /&gt;
				for (PMEntry e : entries) {&lt;br /&gt;
					PMEntry previous = e.previous;&lt;br /&gt;
					if (previous != null &amp;amp;&amp;amp; previous.key.equals(last.key)) {&lt;br /&gt;
						e.matchSize = previous.matchSize + 1;&lt;br /&gt;
					} else {&lt;br /&gt;
						e.matchSize = 1;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				last.next = entry;&lt;br /&gt;
				entry.previous = last;&lt;br /&gt;
			}&lt;br /&gt;
			entry.matchSize = 1;&lt;br /&gt;
			entries.add(entry);&lt;br /&gt;
			last = entry;&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		public PMEntry[] getEntries(PMEntry entry) {&lt;br /&gt;
			LinkedList&amp;lt;PMEntry&amp;gt; entries = getEntries(entry.key);&lt;br /&gt;
			ResultHeap rh = new ResultHeap(entries.size());&lt;br /&gt;
			for (int i = entries.size() - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
				rh.addValue(entries.get(i));&lt;br /&gt;
			}&lt;br /&gt;
			PMEntry[] result = new PMEntry[rh.size];&lt;br /&gt;
			for (int i = 0; i &amp;lt; result.length; i++) {&lt;br /&gt;
				rh.removeLargest();&lt;br /&gt;
				result[i] = rh.removedData;&lt;br /&gt;
			}&lt;br /&gt;
			return result;&lt;br /&gt;
		}&lt;br /&gt;
		// Hijacked from Rednaxela's Tree&lt;br /&gt;
		private class ResultHeap {&lt;br /&gt;
			private final int size;&lt;br /&gt;
			private int values;&lt;br /&gt;
			public PMEntry removedData;&lt;br /&gt;
			private PMEntry[] data;&lt;br /&gt;
&lt;br /&gt;
			public ResultHeap(int size) {&lt;br /&gt;
				this.data = new PMEntry[size];&lt;br /&gt;
				this.size = size;&lt;br /&gt;
				this.values = 0;&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void addValue(PMEntry value) {&lt;br /&gt;
				// If there is still room in the heap&lt;br /&gt;
				if (values &amp;lt; size) {&lt;br /&gt;
					// Insert new value at the end&lt;br /&gt;
					data[values] = value;&lt;br /&gt;
					upHeapify(values);&lt;br /&gt;
					values++;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			public void removeLargest() {&lt;br /&gt;
				removedData = data[0];&lt;br /&gt;
				values--;&lt;br /&gt;
				data[0] = data[values];&lt;br /&gt;
				downHeapify(0);&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void upHeapify(int c) {&lt;br /&gt;
				for (int p = (c - 1) / 2; c != 0&lt;br /&gt;
						&amp;amp;&amp;amp; data[c].matchSize &amp;gt; data[p].matchSize; c = p, p = (c - 1) / 2) {&lt;br /&gt;
					PMEntry pData = data[p];&lt;br /&gt;
					data[p] = data[c];&lt;br /&gt;
					data[c] = pData;&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			private void downHeapify(int p) {&lt;br /&gt;
				for (int c = p * 2 + 1; c &amp;lt; values; p = c, c = p * 2 + 1) {&lt;br /&gt;
					if (c + 1 &amp;lt; values&lt;br /&gt;
							&amp;amp;&amp;amp; data[c].matchSize &amp;lt; data[c + 1].matchSize) {&lt;br /&gt;
						c++;&lt;br /&gt;
					}&lt;br /&gt;
					if (data[p].matchSize &amp;lt; data[c].matchSize) {&lt;br /&gt;
						// Swap the points&lt;br /&gt;
						PMEntry pData = data[p];&lt;br /&gt;
						data[p] = data[c];&lt;br /&gt;
						data[c] = pData;&lt;br /&gt;
					} else {&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:: I add ROUND_BREAK with blank key every round, but I still got &amp;lt;code&amp;gt;Time: 13; Match Length: 39&amp;lt;/code&amp;gt; --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Oh wow! This is really neat! I wonder why it starts skipping turns after round 70 though... Even with three guns running at once, it seems to me it shouldn't start skipping turns that early, unless you're doing something like increasingly heavy multiple-choice throughout the match, without efficent PIF. --[[User:Rednaxela|Rednaxela]] 15:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: It need to scroll through ~10,000 records each tick =) Even with ABC's PIF method, my (buggy) PM got skipping turn too. With normal PIF (sin &amp;amp; cos), it start at around round 24 or so. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 15:06, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
: Against PatternBot rounds are about 1200 ticks, 70 rounds is a 84000 log size. I have ABC's fast play it forward but I do have heavy multiple choice and weighting. I think it can further optimized, but I actually only care about normal 35 round battles. So I won't tackle many optimizations yet. And is not like a skip forever, but some rounds it skips about 5 turns at the beginning, when PatternBot is positioning itself because that part is a really simplistic pattern so many many matches are found. Besides my ''clustering'' is based on [[Voidious]]' brute force method, I could try a heap like algorithm later, as [[Nat]] did. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Nat, remember you have to traverse the list in reverse order as they appear in the log. Try changing &amp;lt;code&amp;gt;entries.add(entry);&amp;lt;/code&amp;gt; for &amp;lt;code&amp;gt;entries.add(0, entry);&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;addNewEntry&amp;lt;/code&amp;gt;. That should give better results, but not fix the across rounds matches. You have a static PMSequence? Then try reseting &amp;lt;code&amp;gt;last&amp;lt;/code&amp;gt; to null at the beginning of each round. Although I haven't checked if mine matches across rounds, but I'm quite doubtful it does. --[[User:Zyx|zyx]] 15:31, 3 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12858</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12858"/>
		<updated>2009-10-03T14:47:13Z</updated>

		<summary type="html">&lt;p&gt;Zyx: how do typo's hide when previewing?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;math&amp;gt;Insert formula here&amp;lt;/math&amp;gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the log and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12857</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12857"/>
		<updated>2009-10-03T14:46:03Z</updated>

		<summary type="html">&lt;p&gt;Zyx: PMC results&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;math&amp;gt;Insert formula here&amp;lt;/math&amp;gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
While I'm not yet understand the algorithm, shouldn't this better be under [[:Category:Targeting Implementations]]? Since it is still PM anyway. --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 08:41, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
OK, I understand the algorithm now (how weird am I that I got confused by your explanation but understand with the pseudo-code?). I'm not sure about the category, it is the data management for sure, but not sure about the 'Targeting Strategy'&lt;br /&gt;
&lt;br /&gt;
I think this algorithm can do Single-Tick, just that it will run in O(n{{sups|2}}). We need to clone the entire log for this =) --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 09:21, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
Have you try your gun in [[Pattern Matcher Challenge]]? ([[oldwiki:PatternMatcherChallenge]])? When I plug this algorithm into my DC-PIF robot and make it choose only the best match, then entered it to the PMC, I got only ~70% or so. I'm not sure if it is a bug in my implementation or not... --[[User:Nat|&amp;lt;span style=&amp;quot;color:#099;&amp;quot;&amp;gt;Nat&amp;lt;/span&amp;gt;]] [[User talk:Nat|&amp;lt;span style=&amp;quot;color:#0a5;&amp;quot;&amp;gt;Pavasant&amp;lt;/span&amp;gt;]] 13:02, 3 October 2009 (UTC)&lt;br /&gt;
&lt;br /&gt;
:I ran two matches of the challenge to show you:&lt;br /&gt;
[[File:Sila_PMC.png‎]]&lt;br /&gt;
&lt;br /&gt;
: As you can see the index is over 100%, but this is without limitations, not on the size of the long and not on the number of matches to try. It start skipping turns after round 70.&lt;br /&gt;
: My configuration is however more complex than the simple idea published. I have 3 different matchers in crowd form:&lt;br /&gt;
:# Lateral/Approach velocity, using 17 discrete values for each attribute.&lt;br /&gt;
:# Lateral/Approach velocity, using 34 discrete values for each attribute.&lt;br /&gt;
:# Velocity/Rotation velocity, using 9 discrete values for each attribute.&lt;br /&gt;
&lt;br /&gt;
: All matches are weighted as they are found by: match_size / DC_like_distance(last entry in pattern, current entry). Then I keep the best 100, play forward until I have the best 50 that stay inside the battle field. Then I run a kernel density function over those angles to find the best. In the DC like distancing I have many attributes, including distance of pattern to the log tail for fast adaptation. This configuration has been tweaked towards making a good AS gun, so I think I could get it to work even better for the PMC if I wanted to, but my goal is an alternative to current AS guns rather than killing simple pattern bots like this one.&lt;br /&gt;
&lt;br /&gt;
: What are you matching on? I found that matching on velocity/rotation gives the best results against [[PatternBot]] but is not optimal for top surfers, where Lateral/Approach velocity is much better. --[[User:Zyx|zyx]] 14:46, 3 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=File:Sila_PMC.png&amp;diff=12856</id>
		<title>File:Sila PMC.png</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=File:Sila_PMC.png&amp;diff=12856"/>
		<updated>2009-10-03T14:27:01Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Two battles of Sila running the Pattern Matching Challenge&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Two battles of Sila running the Pattern Matching Challenge&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Sequential_Prediction&amp;diff=12850</id>
		<title>Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Sequential_Prediction&amp;diff=12850"/>
		<updated>2009-10-03T07:47:01Z</updated>

		<summary type="html">&lt;p&gt;Zyx: Added categories, I hope their are the appropriate ones&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Sequential prediction is a very fast [[Pattern Matching]] algorithm, it has a linear running time. While it matches it is able to find all matches along with their match size. The main draw back is that the values matched need to be discrete and capped, that can be achieved just like in [[Symbolic Pattern Matching]] but we can use integers instead of characters in a String if preferred.&lt;br /&gt;
&lt;br /&gt;
== Credits ==&lt;br /&gt;
I got the idea and basic algorithm from:&lt;br /&gt;
* Fri Mommersteeg - Eindhoven University of Technology. Article published in the book [http://introgamedev.com/resource_aiwisdom.html Game Programming Wisom, 2002] under article ''Pattern Recognition with Sequential Prediction''.&lt;br /&gt;
&lt;br /&gt;
I tried to keep most of the original author's idea, but I biased it a little bit for Robocode.&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
* As in other pattern matching algorithms, assume we have a sequence of size N called log. For simplicity we will assume it's indexed form 1 to N.&lt;br /&gt;
* Let a match be a pair {i, k} such that log(i + j) equals log(N - k + j) for all j from 0 to k-1. We will call k the size of match.&lt;br /&gt;
* Let a longest match be a match with maximal size.&lt;br /&gt;
&lt;br /&gt;
If we can find a longest match we already have more information than most current pattern matching algorithms (except for [[Single-Tick Pattern Matching]]), which usually have one or more fixed sizes to try. And if we can find it faster, then it's even better.&lt;br /&gt;
&lt;br /&gt;
Consider the binary string ''BABBA'''''BAABA'''''AABBBBABB'''''BAABA''', in this case the longest match is '''BAABA''' and has a size of 5. The pattern starts at index 6 of the log, therefore the match is called {6, 5}. A naive algorithm would look for the previous A, and then check if the value to it's left is a B, and so on. This algorithm takes O(n^2) to find the longest match, which is too slow for even relatively small log sizes.&lt;br /&gt;
&lt;br /&gt;
== Better Idea ==&lt;br /&gt;
The key point is take advantage from the fact that the sequence is being generated incrementally. When a new element is added the complete sequence remains the same, except for the tail. Exploiting this property we can find the longest match very fast.&lt;br /&gt;
&lt;br /&gt;
* Let a match size of occurrence of A be the size of a match ending in A.&lt;br /&gt;
* Suppose we know all the match sizes of occurrences of A.&lt;br /&gt;
* Suppose the log ends with A and that we are adding a B.&lt;br /&gt;
&lt;br /&gt;
Can we use this information to find all match sizes of occurrences of B? Yes we can, and is very simple too. For all occurrences of B we have one of two cases:&lt;br /&gt;
# The B is ''not'' preceded by A.&lt;br /&gt;
# The B is preceded by A.&lt;br /&gt;
&lt;br /&gt;
In the first case it is obvious that the match size is 1. For the second case things could be trickier, but since we now all match sizes of occurrences of A, then is not that hard.&lt;br /&gt;
&lt;br /&gt;
The string is something like &amp;quot;...''A'''''B'''...A&amp;quot;, prior to the addition and it will become &amp;quot;...''A'''''B'''...AB&amp;quot;. Therefor is easy to see that the match size of '''B''' is the match size of ''A''(we know this value) plus 1. This comes from extending the substring that ended in ''A'' to include the '''B''' as we know it will match the new tail.&lt;br /&gt;
&lt;br /&gt;
What if we are adding an A instead of a B, does the algorithm work? The answer is yes as long as you traverse the occurrences of A in reverse order as they appeared.&lt;br /&gt;
&lt;br /&gt;
Now the only problem is the supposition of having all match sizes of occurrences of A, but since we start with an empty log the initialization is trivial. After initialized the algorithm is self-sustaining, so the supposition gives no problems at all.&lt;br /&gt;
&lt;br /&gt;
This results in an O(n) algorithm, than only checks all previous occurrences of the element being added. With clever data structures the algorithm can run very fast.&lt;br /&gt;
&lt;br /&gt;
== Implementation ==&lt;br /&gt;
* Let alphabet be the set of all possible values in the sequence.&lt;br /&gt;
* Let histogram be an array of size |alphabet| of lists of Entry.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class Entry {&lt;br /&gt;
  int index;                // Index into the sequence.&lt;br /&gt;
  int value;                // Discrete value being matched.&lt;br /&gt;
  int match_size;           // Match size of this occurrence.&lt;br /&gt;
  Entry getPreviousEntry(); // Method to obtain the Entry that came right before this one.&lt;br /&gt;
}&lt;br /&gt;
function SequentialPrediction(int next_element) {&lt;br /&gt;
  List&amp;lt;Entry&amp;gt; ocurrences = histogram[next_element];&lt;br /&gt;
  int longest_match_size = 0;&lt;br /&gt;
  int longest_match_tail = 0;&lt;br /&gt;
  for each entry in ocurrences do {&lt;br /&gt;
    Entry previous = entry.getPreviousEntry();&lt;br /&gt;
    // Find the match size&lt;br /&gt;
    if ( previous.value == last_value ) entry.match_size = previous.match_size + 1;&lt;br /&gt;
    else entry.match_size = 1;&lt;br /&gt;
    // Update longest match&lt;br /&gt;
    if ( entry.match_size &amp;gt; longest_match_size ) {&lt;br /&gt;
      longest_match_size = entry.match_size;&lt;br /&gt;
      longest_match_tail = entry.index;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  UpdateSequence(next_element);&lt;br /&gt;
  UpdateHistogram(next_element);&lt;br /&gt;
  last_value = next_element;&lt;br /&gt;
  if ( longest_match_size &amp;gt; 0 ) {&lt;br /&gt;
    Start prediction at Sequence[longest_match_tail + 1];&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When iterating trough the entries in the occurrences list, remember to go trough them from last to first. Or you can add new entries to the beginning of the list when updating the histogram.&lt;br /&gt;
&lt;br /&gt;
== Multiple-Choice ==&lt;br /&gt;
Since the algorithm find all partial matches, instead of updating the index and size of the longest match we can use them all (or some of the best ones) for a multiple choice pattern matcher.&lt;br /&gt;
&lt;br /&gt;
== Weighting ==&lt;br /&gt;
For the multiple choice algorithm, choices may be weighted by one or more of the following with minimal complexity added:&lt;br /&gt;
* Match size.&lt;br /&gt;
* Distance to sequence tail (very good for fast adapting dodgers).&lt;br /&gt;
* Similar weighting as found in [[Dynamic Clustering]] algorithms.&lt;br /&gt;
&lt;br /&gt;
[[Category:Advanced Targeting Strategies]]&lt;br /&gt;
[[Category:Log-Based Targeting]]&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
	<entry>
		<id>http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12849</id>
		<title>Talk:Sequential Prediction</title>
		<link rel="alternate" type="text/html" href="http://robowiki.net/w/index.php?title=Talk:Sequential_Prediction&amp;diff=12849"/>
		<updated>2009-10-03T07:44:24Z</updated>

		<summary type="html">&lt;p&gt;Zyx: questions/comments welcomed. Motivational information.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Well this is the result of my quest for a good pattern matching algorithm, I hope you like it and please let me know if you have any doubts or comments.&lt;br /&gt;
&lt;br /&gt;
Just for motivational purposes, I want you to know that my development version of this guns scores around 75 in average (with a maximum of 85 so far) against Shadow 3.66d in the TC challenges. I'm still under heavy development so I don't have definite results, but I think this will be a very powerful gun against surfers and it performs decently against random movers too (close to top GF guns but still doesnt outscores them). Hopefully in the next couple of weeks I will have some TC challenge results to post so I can encourage more people look into this. --[[User:Zyx|zyx]] 07:44, 3 October 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Zyx</name></author>
		
	</entry>
</feed>