Add in really quick and dirty random movement

Jump to navigation Jump to search

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 do 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.

Sheldor15: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!

Tkiesel02:40, 4 April 2013

Well said.

Namaste

Sheldor04:13, 4 April 2013