Agents keep track of the world by strings of bits (actually, "trits"), as in [01 10 00 10 01 10 01 10].
To save memory, this is packed into a 16 bit integer, and the 0's and 1's are manipulated with bit math.Usage example:
myworld[WORD(i)] |= realworld[n] << SHIFT[i];
This accesses the i'th "trit" in a larger
sequence, and adjust it, using a SHIFT macro which is defined
elsewhere.
Within the plain C approach, this was necessary because there
was no object to whom one could delegate the bit math.