BlogNomic has moved!

The game is now running at blognomic.com

Sunday, September 21, 2003

Proposal : The Master Control Program

[ Tentative attempt to introduce an aspect of programming into the Nomic - a rule that contains a simple series of instructions, which the Robots can choose to run once per day. Initially it just contains instructions to let the Control Unit boost all Robots' Power Units (as in the earlier Proposal), but the intention is that the MCP source code will become more and more elaborate and useful, with Robots proposing to change it a bit at a time.

I've tried to make this reasonably non-programmery, so that it can just be seen as a simple list of commands for a Robot to process - kick me and amend things, if I've made any careless assumptions. ]


Enact a new Rule, "The Master Control Program":-


Each Robot has an identical copy of the Master Control Program installed, and may run it no more than once per day. Upon running the MCP, the Robot should process each of its lines in sequence, until it reaches the end.

The Master Control Program is written in a vague and dynamic language resembling simple English, but uses a few specific terms:-


  • self. "self" represents the Robot calling the program; any gamestate data that applies to a Robot may be measured or altered.
  • if. If statements depend on a specific condition - if that condition is true, the bracketed statements immediately following the "if" are processed. If it is false, the bracketed statements are skipped.
  • loop (robots). The bracketed statements immediately following this statement should be processed once for each Robot (in alphabetical order). Within the loop, "loop_robot" represents the Robot being processed during that loop cycle.
  • //. Lines beginning "//" are comments, and have no effect.


Where there is any disagreement over the execution of the MCP, the Control Unit may settle the matter and modify the source code to remove any ambiguity.


Enact a new Rule, "Master Control Program Source Code":-


// Master Control Program

// Check to see if the Robot running the program is the Control Unit.
if (self = the_control_unit)
{
  // Loop through the robots and add 50 to all Power Unit ratings.
  loop (robots)
  {
    power_unit(loop_robot) = power_unit(loop_robot) + 50;
  }
}


Remove the paragraph beginning "The Control Unit may, no more than once per week" from the Ruleset.

Enacted by Mat, 22nd September.