Robo Home | Changes | Preferences | AllPages

Kawigi's pattern-matching NanoBot. After making FloodNano, a nano that's all movement, it was about time to try out everyone's latest hobby of making nanos that are all gun.

What's special about it?

I think it can beat any other currently competitive nano at least 40% of the time over 35 rounds (the standard for the MiniBot challenge). There may be a few exceptions, of course, but I think that they should be very few at least at the moment. Against some bots it does better over less time, against others it does better over more time.

Great, I want to try it. Where can I download it?


How competitive is it?

If you're a nano, watch out. Otherwise, well, you should at least be able to beat it.

How does it move?

It's movement, I believe, is completely original, effective, and extremely nano-sized. I thought of it when I was thinking how a Perceptual bullet dodger(bullet-dodger in the sense that the Flood bots are bullet-dodgers) could be made, by using a function on the enemy's energy that will just happen to change direction when the input value changes by bullet-power amounts. I'll tease you with that and make you download it to see exactly what I did. It's so brutally simple you'll hate yourself for not being able to think of a way to hit it.

Edit: 1.1 is no longer a perceptual bullet-dodger.

How does it fire?

It pattern-matches on lateral velocity, and stores its pattern in a string, much like NanoLauLectrik does. The pattern projection logic (yes, it really exists in this one) is unique to nanos I think, except that a version of it may exist in Kakuru, and is logically similar to how Teancum does it.

How does it dodge bullets?

By plugging its opponent's energy into a function, it changes direction when its opponent fires a good amount of the time (but not always).

How does the melee strategy differ from one-on-one strategy?

It was designed only for OneOnOne, and it looks somewhat like a fool in Melee. But not as much like a fool as some of my recent bots.

How does it select a target to attack/avoid in melee?

It doesn't really do that.

What does it save between rounds and matches?

It saves the enemy's pattern between rounds, nothing between matches (the nano that saves data between matches is probably the next useless experiment).

Where did you get the name?

Have you ever been sitting there, about to start a new robot, and just have no idea what to call it?

Can I use your code?

Oh, if you insist. I changed enough of the code related to the concepts I borrowed from other bots that I almost considered not releasing the source, at least not yet, because I wanted to keep the stupidly simple movement algorithm to myself. But I'm too nice for that, and it does end up looking a little like the other pattern-matching nanos.

What's next for your robot?

Eh, don't know. If I thought I could put it in there, maybe wall avoidance.

Does it have any WhiteWhales?

Hmmm... has problems most often with FurryLeech and FloodNano out of any NanoBots (the second of which I'm not complaining about, really).

What other robot(s) is it based on?

It has a little logic borrowed from NanoLauLectrik, Kakuru, FloodNano, and Teancum, each in little bits (of course, nanos only have little bits).

Comments, questions, feedback:

Definitely looks like a top 3 nano. -- Kuuran

What can I say? This is a really funky chicken. =) -- PEZ

Kawigi, why exactly is

	static String pattern = "" + (char)0 + (char)1 +......
coded the way it is?

Lol, actually, I got that from the dev version of Moebius. I think it was Kuuran who discovered you can make an assignment of whatever length string literal with a cost of something like 2 bytes, so rather than having to add a check if we even have a match at all, we'll always have at least a match of length 1, because all valid characters are somewhere in the string in the beginning. Of course, it might not be that great of a guess. The string doesn't end up looking like "012345", etc, however, those first 16 characters are mostly special characters, so that's why I take their integer counterparts and cast them as characters. -- Kawigi

Big congrats on the MiniBotChallenge results! This is one strong nano. -- PEZ

Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited May 18, 2006 21:47 EST by Corbos (diff)