The idea behind definition tables is that the behaviour of all pieces would be governed by a table of values. The Command Language would refer to the table in making movements so that players could change the game by simply modifying the table. Also, some values could change dynamically under certain conditions for added flexibility. Paul has also suggested providing a different table for each city to provide more variation (John fears this would be complicated and difficult to implement).
Concern: Does the flexibility of allowing startup-time modifications to piece characteristics complicate strategies to the point that successful general-purpose computer opponents cannot be written? To state the issue in another way,
Is it possible to determine the merits of a piece by examining its definition table?
If not, we must severely restrict the customization of definition tables.
Ideally, the set of properties included in the table would define all possible pieces in an elegant fashion. Here is Paul's initial set of properties:
John's reaction (10/9/89):
- Time to Build
- Medium (Land/Air/Water)
- Stackable (Yes/No) **Limit on stacking?
- Strength at which piece is considered "crippled"
Combat characteristics would have to be handled by matrices in which both rows and columns are comprised of all possible pieces and each intersection (i,j) would determine the attack strength of piece i when attacking piece j, and (in a second matrix) the defense strength of piece i when attacked by piece j. Both matrices could be further modified by a piece's individual characteristics (see below). Special rows might have to be added for army-inside-transport, etc. I fear that an additional matrix will also be necessary to determine detectability.
- Visibility after contact (in days)
- Maximum Additional Strength (0 for most pieces, 1 for armies/fighters)
In addition, each piece will require an individual set of properties
We may also wish to give each piece a name (Perhaps city of origin followed by a number) and a script so that they be programmed.
- Attacks allowed per day (normally 2, crippled pieces 1)
- Strength (can increase for some pieces after combat)
- Speed (can decrease after damage)
- Fuel Remaining
- Attacks Remaining Today
- Movement Remaining Today
- Current Location (indication if inside some other piece or inside city)
- Other pieces on board (yes/no or list?)
- Bombers only: Blast radius of bomb (0 if bomb has been dropped)
- State (Awake/Asleep/On Patrol/Under program control)
- Destination [this might be accomplished with a script instead]