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 |
Its aiming system is unique! (I think)
http://www.robocoderepository.com/BotDetail.jsp?id=1281
Not at all. But it's interesting, which is almost as good.
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.
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
It doesn't. None of my bots do. They use the same movement vs. SittingDuck as they do vs SandboxDT.
There is no melee strategy. :-P
Between rounds it saves a big ol' stack of waves. Between matches, nothing.
Duelist (My first good bot) + Micro (Because it's a MicroBot) + Mark II (Because I already had a bot named DuelistMicro)
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.
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.
Uses movement from DuelistMicro.
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