Five tasks:

1. Decide on rules of the game

     Features
 
        Board shape (wrap-around or borders)
        Player controls one robot (or a group)
        What constitutes a move
        Delayed action or not
        Who goes first (controlled by a limited resource)
        Task: deliver packages, each of certain weight, to designated
          destinations 
        Scoring
              

2. Build a simulator

3. Build game playing solutions

4. Develop web site

    Tim starts on this

5. Get solutions from Galois


---

Simple game to start with:

    Square board, one kind of squares, fixed walls

    N destinations, Base
    M packages with different weights
         load capacity (number, weight)
         Identical set for each player
    Fixed set of moves (one step N W E S, or drop package, or reload)
    No delay
    Scoring:  
      Game proceeds until someone delivers all packages or 
        a preset known number of steps have been taken
        score: the prices for delivered packages are summed

    Collision rules:  if two players end up on same square
                      the *first* player is pushed one square, 
                      transitively (but not through walls)

    Ordering rules:  bid for last move, ties are randomized

Protocol:
 Initialization:
    Send (board dimensions (coordinate), home base location (list of coords)
    Players' unique ID
    wight capacity
    

 Each round:
   Send positions of the players' [(ID,coordinate)]
     For players at base, also send their remaining package set
        [(ID,weight,destination coordinate,price)]
   Receive (move dir|pick [ID]|drop [ID], bid)
     
Illegal moves are ignored.
