CODING USAGE AND VARIABLE DESCRIPTIONS FOR AGGRESSOR PROGRAM Sides' breakdown: The acting side is denoted by prn= 1 (player) or 2 (enemy) giving the side's sidPoo SidVal. The side presently being focused on is denoted by newSid= (an r1A[] elm#) of the sidPoo. The side whose observers are considered to be viewing the map is denoted by vuSid= (an r1A[] elm#) of the sidPoo. Each side can be composed of 1 or 2 allies (that is, a single overall command, or 2 independently operating groups). The acting ally is denoted by actAly= a 1- char string ("1", "2", "3" or "4") giving its alyPoo element's AlyVal. The side presently being focused on is denoted by newAly= (an r1A[] elm#) of the alyPoo. A roster of combat units (battalion map markers) is preloaded and positioned in reconfigurable state on both map sides. Each ally when there are 2 of different colors on a side has an alyPop number of assigned units, so a side which opts for 1 ally only administers 2* alyPop units all of the same color. Setup: When the player choses which map side to occupy, the value of 1 (left side) or 2 (right side) is placed in the corresponding sidPoo elements' SidLoc. SidLoc 1 contains allies 1 and optionally 3, while SidLoc 2 contains allies 2 and optionally 4, so the appropriate identifying digits are appended in the sides' sidPoo elm SidAly string field ("1" or "13" in the side with SidLoc 1, and "2" or "24" in the side with SidLoc 2). UntObs: coding= 1 digit integer; observed status as - unobserved= Inv=0, observed this turn= Obs=1, observed last turn but not this turn= Fix=2, observed but unidentified= Unk=9. When the computer generates the map, an individual unit's outline is evinced if it is classified as observed per obs(); ie the current vuSid equals its sid(), or its UntObs val() is Obs or more. And the unit's type is further evinced if its UntObs val() is Obs or Fix (ie not Unk). `dug<=0 (0 =>-1 at Ini's nxtAly()) `run var as loo ctl in div: eq to q1 var loo ctl in fnc configuration is designed to be primarily by reassignment of "data" strings in init() - user option selections are then based on the assigned choices structure: `Agr (like Hulk?) has no "front end" (macro level/ strategic operations, which then spawn micro level/ tactical conflicts), so no oneRnd() routine is employed; but others' combat choices still/ likewise occur at the highest program level (var x1) ie. oneRnd() equates to pik/ oprUnt(), the use of which makes provision for changes in allies' control - the term "turn" is used for combat opponents' (altercation) alternation, rather than "round" r1A[] 1-dimensional array ('vector' of n elm#s [0..n]): string elements sec$: fmt= (1 chr ea) SecCtl SecWgt ObsEn [sid1 #unts] ..[sidCnt #unts] ',' - SecCtl coding= '0' (no controller) '1'..'[# sides]' (controlled by that side#) - note user- modifiable map setup at sidHex elm in r1A[] UntAct: coding= A 1.. 2 digit integer, with the 1s place digit initialized at 0 for an acting ally's units at the start of its part of a turn. A 1 in the 10s place of this field is a flag for the Upd phase's chkCbr() function. At the start of an ally's turn, a unit in a CBR hex without this flag suffers a step loss. The flag gets set for one that moved into a CBR hex, taking an immediate step loss. A unit that moves out of a CBR hex gets this flag zeroed. In the 1s place (n%10) of this field, Dug==0 (Def/ dug in) denotes a unit that is/ was unmoved and unacted. Higher numbered code digits replace lesser values here: so that 1.. 3 would be the number of hex steps a unit has/ was moved this/ that turn (UntOgn can also calc for dst from beg pos). 4.. 5 are unused. Zoc==6 denotes a moving unit that was stopped by making a shift through an enemy unit's Zone Of Control; which could subsequently be allowed an action upgrade to either Hlt (can make a ground attack) or Use (special feature allowed). Imm==7 (immobile) denotes a unit that tried and failed a Rng 0 mov, or moved to cross the FEBA bdr line while no aggressor side was yet in effect; which could subsequently be allowed an action upgrade to Hlt but not Use. Hlt==8 (halted) denotes a unit regarded as having made its ground attack in the turn. Use==9 (feature use) denotes a unit having employed a special feature. After the Upd phase, all ally units begin their turn with total UntAct set to zero. Partisan contact criterion= choose to use Partisan Contact special ability (ie. began turn in enemy territory, not moved qualifications): probability of accumulating a contact is 6-(unit's attack strength) or less on die used. Attack strength for Missile unit=4, Tech unit=1. Strength is basic, not adjusted. die- pattern hex directional coding: spiral/ zig- zag arrangement is essentially equivalent to NEWS (N=1 E=2 W=3 S=4 in square) pattern, since it produces the same relative positioning, just rotated one step d8 (or alt die) use opt when adj hit score=0 (ie. 4-4): if die roll=1, roll again & 2nd die roll >6 = miss (hit % 1/11+) nxtAly() avoidance of nxtUnt() calls: `checking of endGam() conditions in conjunction with automatic criteria in nxtUnt() - nxtUnt() endGam() if either of 2 sides' forces eliminated, Usr- to- Usr or Usr- to- Mac (or, when only 1 side remains) macPik() process: When using postponement of moves until after other actions performed as well as using preemption of movement for units in another's way, if preempting moves aren't allowed out of order (during other actions) then the program can hang when the cycle loop point unit for postponement is neither the preempted nor preempting unit and the preempting unit is prior to the preempted unit in the untGrp listing (the preempting unit's individual move was postponed prior to the preempted unit, which happens to be the nxtUnt() picked after the preempting unit's move is subsequently postponed). `unt gets marked Dug if it has no tgt and fails % for Rpl/Sup/Mov.. (untOpt=Nil) `UntAct flg for unt that takes no action (untOpt=Nil) is X*Hit, which is deducted from all affected units at end of macPik() `unt trying Pts contact was attacked (hurt) by adj en -> withdraw? or engage as aggressor? `chk for sectors not in obs rng of any fr unt (priority to own side)