Add in really quick and dirty random movement

Jump to navigation Jump to search

Every bot in the micro rumble is also in the mini rumble, so in that sense, Aristocles is a mini because micro is a subset of mini. When I say "in that sense" I am explicitly meaning "in the rumble sense."

Re: 'Are you sure that Aristocles uses waves in its movement?' -- For a certain sense of the word "uses," yes. As I said, it is only nominal. Get rid of the wave, and the movement line fails unless you rewrite it. I'd say that qualifies for a nominal sense of the word "uses," in the same sense as my car won't work without the particular fuel line leading from the tank to the fuel pump right now. Yes, I can place another fuel line there and restore function, but if someone yanked that line while I was indoors, the car isn't running until I perform some repair.

Re: 'I only saw one small reference to the Wave class, and that was purely for Code size reasons and the RM would've worked fine if the variable was local.' -- I think I've made it rather clear that it was an aesthetic choice based upon my bot's namesake. Moreover, it was an aesthetic choice for a placeholder movement that was destined to be replaced. I was essentially being cheeky for the fun of it. I literally was hoping it might make someone smile a bit when they happened to read the wiki page during the month or so when that code even existed within my bot.

What's stunning to me is the amount of work you've put into telling me that my playful inconsequential aesthetic choice in the development of my bot was somehow wrong, or failing that, that my imprecision of terminology in chatting informally with a fellow community member on the wiki is somehow wrong. You've provided links as citations! Amazing!

Tkiesel02:50, 3 April 2013

A wave is a concept, an idea. It is a method of using information and logic to control a robot in the game of Robocode. It is not a class that just happens to be called "Wave."

The Waves article says that a wave consists of: "a source location (of the firing bot), a velocity (generally based on firing bot's bullet power), the time the wave was created, and the bearing to the target at fire time." This is not an actual snippet of code, rather, it is a description of what constitutes a "wave." In order to be a wave, a snippet of code must have all of these elements. Any of these parts standing alone does not make a wave.

Aristocles' targeting does use waves, because all required information is used in all required ways, and all required decisions are made with all required logic, to be considered "waves." Aristocles movement does not, because it only uses one variable, one specific part of the code required to make a wave, for purely superficial reasons.

You say that Aristocles' use of waves in its movement is "nominal" meaning "in name only," but, by that logic, I could say that Sabreur uses Dynamic Clustering just by naming one variable dynamicClusteringVariable.

Sheldor14:26, 3 April 2013

1. A wave in robocode is as you describe. A location, a heading along with the information required to calculate the current radius of the wave.

2. Aristocles has a wave Class that includes this info. A proper Robocode wave. [Aristocles.java lines 138-158]

3. Aristocles accesses a member variable of an instantiated wave Object inside of it's setAhead() call. Note: this is not simply a variable named "wave," it is a full and proper wave Object as referenced in #2. Specifically, the setAhead() uses the location of the wave, and the angle variable the calculation is a part of is also passed to setTurnRightRadians() on the next line. [Aristocles.java lines 72 and 73]

4. Given 1-4, Aristocles utilizes data from an object that constitutes a Robocode wave in both the forward/back calculation and the turn calculation.

5. However, given 3, Aristocles does not use the wave as a wave in the Wave Surfing sense or much of any sense at all. It simply uses the wave in the 'utilizing data contained in a wave' sense. To utilize the ol' CS jargon, the wave is not used semantically but merely syntactically.

6. This is the source, I believe, of your disagreement with my statement that Aristocles uses waves. When I said "nominal" I ought to have used the word "syntactically" perhaps, but I do think that Aristocles uses a wave a bit more strongly here than merely naming an otherwise non-wave variable 'wave' as in your example above.

To the extent that all of this vindicates your assertions, you are correct sir.

To the extent that all of this vindicates my assertions, I am correct sir.

Perhaps we are both some of each. ;)

I appreciate the spirited debate, but I shall not comment on your disagreement with my characterization of Aristocles behavior any further, especially given how far afield we've wandered on this talk page. Whether I am correct or incorrect, I'm satisfied. Take care!

Tkiesel01:40, 4 April 2013

Well said.

Namaste

Sheldor03:13, 4 April 2013
 
 

Well, Robocode waves don't really qualify as "matter with wave-like properties" either. So I'm not sure Louis de Broglie would find them very interesting, but the bot name still gave me a chuckle. :-)

And deBroglie is a pretty strong bot, so I'm pretty sure Tkiesel understands how waves work.

Voidious15:03, 3 April 2013

I didn't say he doesn't understand how waves work. I said that he is wrong in saying that Aristocles uses waves in its movement simply because the movement code and the wave code happen to share a variable.

I agree that deBroglie is a nice bot, and Tkiesel is a talented author. But that doesn't excuse saying something that is simply wrong.

After all, he did say that he had a "philosophical requirement" to meet; all that I'm doing is saying that he didn't meet it.

Sheldor15:49, 3 April 2013
 

Is there any way we can take this conversation somewhere else and move all of it to that page? Not sure all of this belongs on the discussion of my To-do list! :)

Wolfman15:51, 3 April 2013

We can move the whole thread, but not specific posts in a thread.

Where would you like it to be moved?

Sheldor15:54, 3 April 2013
 
 

Robocode waves do have some similarities with de Broglie pilot-wave theory.

Waves in robocode are virtual bullets without a heading, although the real bullet it tries to track does have an unknown heading. Unless the bullet is observed through onHitByBullet or onBulletHitBullet events and heading becomes known.

Particles in de Broglie theory are also waves with an unknown location of the particle, unless it is observed through quantum sensors and location becomes known.

Waves in robocode is a model which represents all possible locations a bullet can be. Waves in hidden-variable quantum mechanics is a model which represents all possible locations a particle can be.

MN16:06, 3 April 2013

Bingo! Spot on, good sir!

Tkiesel01:44, 4 April 2013