Louis de Broglie, winner of the 1929 Nobel Prize for Physics
|Targeting||DC - Guess Factors|
|Movement||DC - Wave Surfing|
- Where did you get the name?
- This is my first wave surfing bot, and I'm a physicist by training, so it's named in honor of Louis de Broglie, who discovered that matter has wavelike properties. This was a foundational discovery in Quantum Mechanics. In 1929 de Broglie received the first ever Nobel Prize given to a student thesis.
- What's special about it?
- The targeting and movement draw on a central Universe object that contains the entire situational picture, with a Bot object that represents each robot on the field.
- How competitive is it?
- rev0108 is in the upper 40s in the RoboRumble and middle of the pack in the GigaRumble.
- How does it move?
- Wave Surfing, using data stored in a kD tree with precise intersection. The algorithm is true surfing based on concepts in the wave surfing tutorial.
- How does it fire?
- GuessFactor Targeting using a kD tree to store data. Precise intersection is used to determine the fire angles that would have hit. Several different targeters are used in a Virtual Guns array. The best gun to use is chosen via a Condorcet vote.
- What does it save between rounds and matches?
- Nothing between matches. Between rounds all surfing and targeting data is saved.
- Can I use your code?
- DeBroglie is an open source bot available under the zlib license. A few files here and there have an extra clause attached.
- What's next for your robot?
- Nothing. Development on deBroglie has ended. A few big chunks of the code will live on in Copernicus.
- What other robot(s) is it based on?
- All code written by others is under some form of permissive open source license.
- The kD tree is written by Rednaxela. License: as-is with attribution.
- The FastTrig lookup table and methods are written by a host of amazing folks at this wiki, starting with Rednaxela, but including other great Robocode luminaries.
- Parts of the precise prediction are accomplished with the help of code originally by Paul Bourke, adapted by REAS @ OpenProcessing.org and further adapted by me. This code determines if and where a line segment and a circle intersect. License: CC-by-sa 3.0
- The gun ranking uses voteutil by Brian Olson. It is available under the LGPL version 3.
- The movement uses the wonderful setBackAsFront() method from Voidious' Wave Surfing Tutorial. Great piece of code!