WhiteWhale (robot)

From Robowiki
Revision as of 05:20, 3 October 2009 by Zian (talk | contribs) (Note on the controversy)
Jump to navigation Jump to search

This page is reserved for Kinsen's latest nanobot. This robot builds on the work from NanoInterpreter.

The robot is in the RoboRumble.

NanoRumble ‒ APS: 77.96% (1st), PL: 147-4 (1st), Survival: 89.87%

The current source code can be downloaded from http://sites.google.com/site/dcvqksyb/robocode/kinsen.nano.WhiteWhale_1.0_src.jar.

Architecture

The robot understands a very small set of instructions: set, get, subtract, divide, if, call, and characterToInteger (CMD_SET, CMD_IF, CMD_SUBTRACT, CMD_DIVIDE, CMD_IF, CMD_CALL, and CMD_LITERAL). This instruction set provides the foundation for basic mathematical expressions. The expressions use prefix notation (e.g. + 5 2 instead of 5 + 2).

WhiteWhale has a large, but limited memory. The calls to Java functions are stored in STRING_TABLE and the commands are stored in COMMANDS.

The nanobot's most obvious shortcoming is its inability to do anything remotely object-oriented. There is no way to instantiate arbitrary objects.

The architecture has proven to be a bit controversial.

Performance

The interpreter robot is quite speedy compared to other bots due to various neat tricks, which you'll have to read the code to find out for yourself. :) Let's just say that it wasn't exactly a fast bot for a very long time.

As far as the nanorumble goes, WhiteWhale currently beats all the bots except for 4.