[Home]DuelistMicroMkII

Robo Home | Changes | Preferences | AllPages

Difference (from prior major revision) (no other diffs)

Changed: 85c85,87
I don't think this predates TronsGun. Tron was around before I ever started doing robocode. That's assuming that Tron back then used TronsGun as we now know it. However I don't think ABC had explained how TronsGun worked yet, so at the time I thought it was the first of its kind. As for terminology, I use DynamicClustering to mean the process where you find a bunch of firing angles, and fire at the densest cluster of them. I use StateMatching to mean matching the enemy's current state to similar states in the past (rather than matching patterns of movement, like PatternMatching). TronsGun chooses a bunch of candidate angles using what I call StateMatching, then chooses which angle to fire at using DynamicClustering. DuelistMicroMkII just uses a StateMatcher, there's no DynamicClustering going on. --David Alves
I don't think this predates TronsGun. Tron was around before I ever started doing robocode. That's assuming that Tron back then used TronsGun as we now know it. However I don't think ABC had explained how TronsGun worked yet, so at the time I thought it was the first of its kind. As for terminology, I use DynamicClustering to mean the process where you find a bunch of firing angles, and fire at the densest cluster of them. I use StateMatching to mean matching the enemy's current state to similar states in the past (rather than matching patterns of movement, like PatternMatching). TronsGun chooses a bunch of candidate angles using what I call StateMatching, then chooses which angle to fire at using DynamicClustering. DuelistMicroMkII just uses a StateMatcher, there's no DynamicClustering going on. --David Alves

* Thanks for the info, David. I was thinking Tron existed but that TronsGun hadn't come around yet, but I sure don't have dates on any of this. As an aside, I don't think that is the part of the process that is the "cluster" that ABC means, though. I think his "cluster" is the group of X similar states, not the group within those X states that you're firing at. In K-means clustering, you have K clusters, frequently recalculated, and you find the cluster whose center is closest to the current input (scan); in DynamicClustering (or K-nearest-neighbors), you don't have any constant clusters, you just (dynamically) form a cluster around the current input (scan). I'd think the part where you take a bunch of firing angles and use some algorithm to pick one would just be called MultipleChoice. -- Voidious

Version History

Author

David Alves

What's special about it?

Its aiming system is unique! (I think)

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

http://www.robocoderepository.com/BotDetail.jsp?id=1281

How competitive is it?

Not at all. But it's interesting, which is almost as good.

How does it move?

It's only does 1-v-1, so no need for anything fancy in the movement. It has one timer. Each turn, it subtracts one from the timer. When it reaches 0, it picks a new random place on the field to drive to (trying to stay perpendicular to the enemy) and sets the timer to a random number. When you see it staying still on the field, that's because it reached its destination before the timer ran out.

How does it fire?

I think the aiming system is unique, which is pretty rare these days. It fires off a wave with every bullet, and stores information about the time that the wave was fired. To aim, it looks through all the completed waves and finds the one whose situation most closely matches the current situation. Think of it as a pattern matcher that only tries to find patterns with a length of 1. :-P

How does it dodge bullets?

It doesn't. None of my bots do. They use the same movement vs. SittingDuck as they do vs SandboxDT.

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

There is no melee strategy. :-P

What does it save between rounds and matches?

Between rounds it saves a big ol' stack of waves. Between matches, nothing.

Where did you get the name?

Duelist (My first good bot) + Micro (Because it's a MicroBot) + Mark II (Because I already had a bot named DuelistMicro)

Can I use your code?

Sure. Take a look and use whatever you like. Please give me credit if you use any of my code. Also, make a robot that is uniquely yours - not just a slightly modified copy of mine.

What's next for your robot?

This bot is probably never going to be updated. It was a test of a new idea, and that idea didn't work out very well.

What other robot(s) is it based on?

Uses movement from DuelistMicro.


Comments, questions, feedback:

Jumped about 80 rating points and 60 ranks when I fixed the bug. :-) rating: 1634 -> 1715 rank: 128->68 David Alves (I guess).

Makes me wonder where this bot would have ranked way back when it was released. And you would probably have worked some more on it if you had had some more success then. Bugs is the true source of dissapointment in robocode. It's one thing to have a promising (in your mind) but crappy (in real battle) idea and see it fail. But to have a good idea and see it fail and draw the wrong conclusions is not fun. Take note all robocoders. Be paranoid about bugs in your bots! -- PEZ

Well at the time DuelistMicro was #3 on the Eternal Rumble, so this would have been top 10 maybe? :-P --David Alves

Isn't this basically a DynamicClustering gun that only uses the closest scan? -- Skilgannon

Yeah, I think it is. -- Voidious

Interesting. Could David been the one that came up with what is fundamentally DC? (Dispite his attempt completely failing)--Chase-san

I do think this predates TronsGun, so yes in a way, but I'd also say they are both "fundamentally" implementations of K-nearest-neighbors, which predates Robocode by a margin. =) -- Voidious

True, but in reguards to robocode I mean. ;) --Chase-san

I don't think this predates TronsGun. Tron was around before I ever started doing robocode. That's assuming that Tron back then used TronsGun as we now know it. However I don't think ABC had explained how TronsGun worked yet, so at the time I thought it was the first of its kind. As for terminology, I use DynamicClustering to mean the process where you find a bunch of firing angles, and fire at the densest cluster of them. I use StateMatching to mean matching the enemy's current state to similar states in the past (rather than matching patterns of movement, like PatternMatching). TronsGun chooses a bunch of candidate angles using what I call StateMatching, then chooses which angle to fire at using DynamicClustering. DuelistMicroMkII just uses a StateMatcher, there's no DynamicClustering going on. --David Alves


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited October 31, 2007 21:45 EST by Voidious (diff)
Search: