NOW MELEE COMPATIBLE(omg!)|
In melee, Python gets confused.|
No difference. WaveSurf all enemies at once(hard!)|
He explodes/exception errors before he can.|
The first thing scanned by Python V4's radar is either snake food or a snake killer.|
Here are the results of Python 3.6 VS Python 4.0(saved in my Galanoth directory because P4 is part of Galanoth) Name Total Survival Bonus BDMG Bonus RDMG Bonus S1sts S2nds S3rds 1st: x.galanoth.Python 4035 1500 300 1892 343 0 0 32 4 0 2nd: python.Python 3.6 1610 200 40 1291 78 0 0 4 31 0It seems as though Python does better @ long range..
V3.6 removed from RR@H
What's special about it?
It was made by an eleven year old child, and it uses the VelocityTrick.
Great, I want to try it. Where can I download it?
How competitive is it?
Not the best but it's ok. Currently #182 in RR@H.
How does it move?
WaveSurfing with 107 BINS
How does it fire?
A SymbolicPatternMatcher gun.
How does it dodge bullets?
How does the melee strategy differ from one-on-one strategy?
No difference. WaveSurf all enemies at once(hard!)
How does it select a target to attack/avoid in melee?
The first thing scanned by Python V4's radar is either snake food or a snake killer.
What does it save between rounds and matches?
Where did you get the name?
From my favorite snake.
Can I use your code?
It's in the JAR file. Knock yourself out.
What's next for your robot?
Does it have any WhiteWhales?
Mako at some times, none at others.
What other robot(s) is it based on?
Hissssss.....next thing you know you're dead....
Hey, nice to see that you're already aiming for the crown ;) ... Curious as to how you could combine the BasicSurfer movement with FunkyChicken, I took a look at the source, and wanted to point something out to you. It looks like you are making some calls to setTurnRight?() early on in the onScannedRobot event, but when BasicSurfer's doSurfing() method is called, the movement code it executes will override the previous setXXX stuff. From looking at your source, I think that only the BasicSurfer movement is having an effect.
The RoboRumble stats are processed by a distributed client, so take a look at RoboRumble/StartingWithRoboRumble if you want to have some control over the processing of your tank in the competition. Good luck,
Welcome to the wiki. It sounds like you're off to a good start with Python, most Robocoders don't even go near WaveSurfing when they're starting out. The repository seems to be down right now, so it might be a little while before any results get posted. --wcsv
Hey man, a couple things you should probably know:
1st: pez.rumble.CassiusClay 2lamda 5645 1750 350 2954 590 0 0 35 0 0 2nd: wiki.Python 2.9g 377 0 0 377 0 0 0 0 35 0-- Voidious
OK Python is officially much better without the VelocityTrick What i meant by almost beat CassiusClay was by life, not by entire battle. Sorry for the confusion, and sorry I'm kinda bad at that sort of stuff. Also I THINK I fixed the RoboRumble thing. -- Xero
OK, I fixed Python's entry in the Participants list (you needed to put the version number with the name). My client just began processing it, so you should see some results up very soon. Also, I think it was a good idea to take out your velocity trick. A PrecisePrediction WaveSurfing system is very delicate. If something (ie random velocity changes) is throwing off its predictions by even a little bit it will not work near its potential. Anyway, good luck with Python. --wcsv
In reference to your request at the top of the page: I havn't had time to look at your code (been coding for classes all day), but if you want to use randomized velocity changes and still have working surfing you'll have to do what Voidious posted earlier; determine when and by how much you want to change velocity ahead of time and factor those changes into the PrecisePrediction calculations. --wcsv
I made the velocity changes less frequent so the wavesurfing should have time to mess around. It gets 100 ticks for itself before any changes in velocity happen.Pattern: Surf, velocity change, surf, velocity change. Every 100 ticks it goes to the next thing. Not perfect, still, but works a little better. -- Xero
Well, the thing is that the WaveSurfing algorithm chooses which direction to orbit in based on the assumption that max velocity is 8. It could be altered to take a different maximum velocity into account if you wanted. But if you change the max velocity and the WaveSurfing isn't aware of it, it's really just acting more like RandomMovement - not that that's entirely bad. But the true power of WaveSurfing shines through in a flawless implementation, so you might want to decide if WaveSurfing or RandomMovement is what you're really going for. -- Voidious
1st: python.Python 865 400 80 333 52 0 0 8 2 0 2nd: pez.mako.Mako 1.5 609 100 20 454 35 0 0 2 8 0
1st: python.Python 1015 400 80 461 74 0 0 8 2 0 2nd: wiki.mako.MakoHT 220.127.116.11 643 100 20 482 41 0 0 2 8 0
1st: python.Python 1690 500 100 909 181 0 0 10 0 0 2nd: sample.MyFirstRobot 8 0 0 8 0 0 0 0 10 0
Hooray! I don't suck anymore! --Xero
If you think targeting is hard, consider the folly of unwinding the whole thing to determine where NOT to move. --Corbos
The way I think about guess factors is:
When collecting statistics I note, for each Wave that reaches the opponent, how far in either the forwards or reverse direction the opponent traveled. Say maximum forward is 100% and maximum reverse is -100%. I chop that up in bins of an array where index 0 means -100% and index BINS-1 means 100%.
When firing I check what bin is most used and convert it to a bearing for my gun.
I hope this makes some sense.
Mako saves data between matches, I think, so that might give him a leg up on Python in multiple matches. Also, RoboRumble matches are 35 rounds, not 10, so that gives a learning gun a lot more time to zero in on your movement. (You can still learn things from longer or shorter matches in testing, though, for sure.) -- Voidious