A Microbot that mirrors it's opponent's movement.
What's special about it?
Uhm, not much, besides being the only one which I know of in Microbot size to mirror it's opponent's moves. Soon to have a pattern matcher which saves data between matches, but the I/O at the moment for Average Velocity Targeting isn't going to well, and I'm going to figure out PMing in a week or so.
Great, I want to try it. Where can I download it?
https://www.robocoderepository.com/BotDetail.jsp?id=1585
How competitive is it?
I think it will do ok, not meant to be super competitive at the moment. Allthough it might become.
How does it move?
It Mirrors it's Opponents movements. Like this:
dX= getBattleFieldWidth() -((mX=getX())+Math.sin(inf)*e.getDistance());
dY= getBattleFieldHeight() -((mY=getY())+Math.cos(inf)*e.getDistance());
setTurnRightRadians(nTA = Math.atan(Math.tan(tA = ((Math.atan2(dX - mX, dY - mY) - (inf = getHeadingRadians())) + (7.0 * Math.PI)) % (2.0 * Math.PI) - Math.PI)));
setAhead((tA == nTA ? 1.0 : -1.0) * Point2D.Double.distance(mX, mY, dX, dY));
How does it fire?
It uses Average Velocity Linear Targeting, soon to patternmatch.
It relies on it's opponent to dodge, because it mirrors it's opponent's movement.
How does the melee strategy differ from one-on-one strategy?
It's strategy in
Melee is to get confused.
How does it select a target to attack/avoid in melee?
Doesn't
What does it save between rounds and matches?
I save velocity between rounds, and am trying to figure out how to fix a bug that keeps it from saving data between matches.
Where did you get the name?
See
https://www.dilbert.com
Can I use your code?
Yes. If you use it and find improvements, please let me know. My e-mail is assasin595@hotmail.com
Here is
MicroCatbert's Code.
What's next for your robot?
Implement a Pattern matcher, fix several bugs.
What other robot(s) is it based on?
Uhm, maybe
DuelistNanoMelee 1.0 and Calypso 3.6
Comments, questions, feedback:
I'd like help fixing a few bugs here and there, specifically with the bug that makes me not write my files in the onDeath Event.
I actually played with a mirror-like movement in FunkyChicken, which probably would have fit, too (with a pattern-matcher in a nano, even!) Wouldn't have been an exact mirror, but a reasonably good one. The smallest mirror-bot I know of is sgp.nano.FurryLeech, which is 245 bots, probably with random aim. A lot of top nanos have a hard time with it, while others beat it easily. It's pretty funny :-p (and hard to make a really good nano that beats NanoLauLectrik and FurryLeech). -- Kawigi
If you're still interested in mimicking your opponent and pattern-matching them at the same time, you should check out a simple but reasonably accurate implementation I use - it's called FunkyLeech. The mirroring isn't by location like yours, it's by relative angle and speed. I think it's pretty clever :-) -- Kawigi