WhiteWhale (robot)

From Robowiki
Revision as of 05:15, 3 October 2009 by Zian (talk | contribs) (→‎How The Robot Works: Note on prefix notation)
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).

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.