Robo Home | Changes | Preferences | AllPages

Swiffer the cleaning bot by PEZ

This is like a mega Tityus with new segmentation for the guns and 3 different movement schemes.

0.2.0 is out. Actually doesn't deserve a new minor version number. It's only a slight code clean-up, an experiment with a different segmentation and a bug-fix in the survivalist code. I forgot to fix the enemy name bug mentioned by Jim below. I'll try to remember next time. -- PEZ

Hey! It's fun working with a new bot again. =) I just released 0.2.2. It fixes the bug with enemy name lacking version. I also added a movement mode and adjusted the survivalist strategy some. -- PEZ

Fixed some bugs and added a movement manager. Still doesn't save data. Version 0.2.4 is unleached. -- PEZ

Version 0.2.8 Uses a CribSheet of ratings for how well each movement mode works and then tries to use the movements that works best the most. -- PEZ

Version 0.2.9 Fixes the bug with restoring the Targeting CribSheet. Now it should be able to compensate somewhat for the slow learning of it's gun. -- PEZ


Not necessarily a bug but certainly an inconvienience. I suspect that you are searching for a period "." character in the name of your enemy for some sort of stats savings purposes. When I attempted to run Swiffer vs. Jekyl dev version (which has no version number) it throws an error. Error is below:

pez.clean.Swiffer 0.1.1: Exception: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(Unknown Source)
    at pez.clean.Bot.onScannedRobot(Swiffer.java:85)
    at robocode.peer.robot.EventManager.onScannedRobot(EventManager.java:607)
    at robocode.peer.robot.EventManager.processEvents(EventManager.java:738)
    at robocode.peer.RobotPeer.tick(RobotPeer.java:1024)
    at robocode.peer.RobotPeer.turnRadar(RobotPeer.java:1086)
    at robocode._AdvancedRadiansRobot.turnRadarRightRadians(_AdvancedRadiansRobot.java:271)
    at pez.clean.Bot.run(Swiffer.java:78)
    at robocode.peer.RobotPeer.run(RobotPeer.java:616)
    at java.lang.Thread.run(Unknown Source)

Seems to work otherwise. -- jim

Maybe PEZ is trying to prevent people from testing against his bot, sort of like Chameleon a couple of versions ago. And he'd find a period in your name if you're in a package, if he wants a version, he would probably look for a space. -- Kawigi

Thanks for letting me know. I'm not doing it on purpose. Even if it is an idea. =) I am looking for a space character. (The source is bundled in the jar file by the way.) Swiffer is just something I threw together in a couple of hours in disgust over not getting anywhere with GloomyDark. The data saving is switched off actually. It lowers Swiffers performance! I think something is offset wrongly in the CribSheet save / restore procedure. Swiffer tries to save only the index of the most visited factor for each segment situation. It brings the file down to 46 bytes without zip encoding. Please have a look if you're curious. If you can help me nail the bug I will be eternally grateful. -- PEZ

I see Swiffer beat DT in RR,cool done PEZ,Lacrimas is the 1st in PREMIER LEAGUE now,happy~;],I know Lacrimas cannot beat DT in a large rounds battle now,so maybe next battle Lacrimas will lose,how will Swiffer do against DT in large rounds battles? -- iiley

Way cool! I hadn't noticed. Though it's only one battle. However, version 0.2.4 beat DT two 35-round battles in a row in my tests. Which was why I released it. =) I haven't done any extensive tests though so it was probably just luck. Noone seems to be running the RR@H client though. Last battle was 24 hours ago, or am I reading something wrong? -- PEZ

I see pez.clean.Swiffer_0.2.2 beat DT in RR once,but 0.2.4 lost to DT twice. -- iiley

Yeah, but it seems it is giving DT a better fight than any of my bots have done for very long. 45% is sweet. The trageting of Swiffer is rather weak (only about 85% in the fast learning TargetingChallenge). I think I might be able to push Swiffer into the top-10 if I could just find out how to make a good gun. But Lacrimas will still be king of RoboRumble/PremierLeague. Lacrimas only loses to one bot, Quest. In my book that makes Lacrimas TheBestBot. Truly good work! -- PEZ

~;],I just saw that Swiffer_0.2.2 beat DT once again,but 0.2.4 still lost to it,maybe there is some keys between 0.2.2 and 0.2.4 that can give DT a fight!Did you tested 0.2.2 much rounds against DT?I want to have a look at 0.2.2's performance but i only have 0.2.4 on my disk. ~;[ -- iiley

I never testes 0.2.2 at all against any bot except Jekyl. The moment it was winning against Jekyl, I packaged it and uploaded. =) I think 0.2.2 just had a lucky round there but if you want to test it, be my guest: http:/robocode/uploads/pez/pez.clean.Swiffer_0.2.2.jar The window for Swiffer to give DT is closing I think. An AM gun in DT will invalidate one of Swiffer's movement modes. =) -- PEZ

I tested Swiffer 0.2.4,about 500 rounds,only lost to DT a little margin.good~ --iiley

Did I upload 0.2.4 for you? I must have been tired! Any way I have tweaked some with the movement now, with some consulting from Jim. Here's the dev versions result after 1000 rounds:

Sweeet! I bet DT 2.41 fixes whatever make Swiffer's gun hit DT more than DT hits it though. My usual timing. =)

-- PEZ

It was the link that was wrong. I did upload 0.2.2 =) -- PEZ

Cool~~But,hehe~~new DT is released,much stronger than 2.41 i think. -- iiley

For now I will have to do with enjoying the feeling of being able to beat 2.31. It would be surprising to me if I suddenly could keep Paul's pace. =) -- PEZ

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 5, 2006 2:32 EST by Voidious (diff)