[Home]WeekendObsession

Robo Home | Changes | Preferences | AllPages

Difference (from prior author revision) (major diff, minor diff)

Changed: 4c4
WeekendObsession
WeekendObsession_S and WeekendObsession_Melee

Changed: 13c13
Version S (the only one still active) it is currently the number one 1v1 nano bot.
Version S it is currently the number one 1v1 nano bot.

Changed: 16c16,18
From the RobocodeRepository, [1].
Version _S from the RobocodeRepository, [1].

Version _Melee from [2]

Changed: 19c21
Not too bad in the NanoRumble?.
Not too bad in the nano-rumbles.

Changed: 22c24,28
It runs circles around its opponent (like all good 1v1 bots). It changes orbit direction randomly, proportionally to its distance from the opponent (like many good RandomMovement 1v1 bots). Version S adds StopAndGo movement a la Splinter, which is really the key to it's #1 rank (and the key to Splinter's #2 rank). That is, it runs stop-and-go movement until it see's that isn't working anymore, then it switches to random movement.
They run perpendicular to their opponents with variations on RandomMovement.

Version _S varies the probablity that it will flip orbit directions inversely to its distance from the opponent (like many good RandomMovement 1v1 bots). It first runs StopAndGo movement a la Splinter, which is really the key to it's #1 rank (and the key to Splinter's #2 rank). That is, it runs stop-and-go movement until it sees that isn't working anymore, then it switches to the random movement.

Version _Melee runs short, random length legs back & forth, distancing itself close its chosen enemy.

Changed: 25c31
PatternMatching. Version S uses the standard nano-size algorithm for matching on LateralVelocity, with some additional CodeSize tricks.
PatternMatching. They use the standard nano-size algorithm for matching on LateralVelocity, with some additional CodeSize tricks.

Changed: 28c34
There is no melee strategy - it's only designed for 1v1.
The biggest difference is that they are different bots :). You can't expect that much from nanos, can you?

Changed: 31c37
Its pattern matching data between rounds. Nothing between matches.
Their pattern matching data between rounds. Nothing between matches.

Changed: 40c46,48
Arg. Unfortunetly I would like to improve its rating. That means spending more time. Maybe God will help me stop. Or make me stop (which seems more like what would have to happen).
Version _S is pretty much done. Maybe some small tuner variable tweaks from time to time.

Version _Melee ... we'll wait to see how much potential it has.

Changed: 43c51,53
Nope, not presently anymore. Kev may give me a run for my money again, but we'll cross that bridge when we get to it.
Version _S, not presently anymore. Kev may give me a run for my money again, but we'll cross that bridge when we get to it.

Version _Melee - time will tell.

Changed: 46c56
Currently it is the rumble. At this point I'm just making small tweaks.
Currently it is the rumble.

Changed: 68c78,80
-- Kinsen
-- Kinsen

Good question! Are you familiar with the 2's compliment format for binary numbers? In java, casting from a char to an int does not do any sign extention, so (int) (char) -1 != -1 (it equals some large number instead). A Java "char" is the same length as a Java "short", (short) (char) -1 == -1.

/VersionHistory

Bot Name

WeekendObsession_S and WeekendObsession_Melee

Author

Simonton

Extends

AdvancedRobot

What's special about it?

Version S it is currently the number one 1v1 nano bot.

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

Version _S from the RobocodeRepository, [1].

Version _Melee from [2]

How competitive is it?

Not too bad in the nano-rumbles.

How does it move?

They run perpendicular to their opponents with variations on RandomMovement.

Version _S varies the probablity that it will flip orbit directions inversely to its distance from the opponent (like many good RandomMovement 1v1 bots). It first runs StopAndGo movement a la Splinter, which is really the key to it's #1 rank (and the key to Splinter's #2 rank). That is, it runs stop-and-go movement until it sees that isn't working anymore, then it switches to the random movement.

Version _Melee runs short, random length legs back & forth, distancing itself close its chosen enemy.

How does it fire?

PatternMatching. They use the standard nano-size algorithm for matching on LateralVelocity, with some additional CodeSize tricks.

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

The biggest difference is that they are different bots :). You can't expect that much from nanos, can you?

What does it save between rounds and matches?

Their pattern matching data between rounds. Nothing between matches.

Where did you get the name?

I was hoping to give up this game. Still hoping ... But last weekend I couldn't keep myself away. From Friday night until Saturday night, I took breaks only to sleep and eat. It's a total obsession.

Can I use your code?

Yup. It's RWPCL

What's next for your robot?

Version _S is pretty much done. Maybe some small tuner variable tweaks from time to time.

Version _Melee ... we'll wait to see how much potential it has.

Does it have any WhiteWhales?

Version _S, not presently anymore. Kev may give me a run for my money again, but we'll cross that bridge when we get to it.

Version _Melee - time will tell.

What is your TestBed looking like right now?

Currently it is the rumble.

What other robot(s) is it based on?

I learned a lot about nano-sizing a pattern matcher from the pattern matchers in the top 10 of the NanoRumble?. Apparently they all learned a lot from FunkyChicken. Splinter gets all the credit the StopAndGo movement. Basically, the S stands for Splinter (but I felt safe naming it that because I could say it meant "Stop-and-Go").

Comments, questions, feedback:

You should release a MegaBot called LifelongObsession to go with it. --David Alves

Hey, you released WeekendObsession S 1.0 on friday, that not a weekend! Please keep your naming consistent ;-) -- GrubbmGait

I was looking at the code and I couldn't figure out why you cast the char to a short instead of int:

		// aim.
		do {
			a += (short) enemyHistory.charAt(--matchPos) / dist;
		} while (--i > 0);
-- Kinsen

Good question! Are you familiar with the 2's compliment format for binary numbers? In java, casting from a char to an int does not do any sign extention, so (int) (char) -1 != -1 (it equals some large number instead). A Java "char" is the same length as a Java "short", (short) (char) -1 == -1.


Robo Home | Changes | Preferences | AllPages
Edit text of this page | View other revisions
Last edited June 14, 2007 3:52 EST by Simonton (diff)
Search: