Langton's Ant ============= This is a device independent pascal implementation of Langton's Ant, a deterministic chaotic system with distinctive emergent behaviour. The algorithm is simple. Start at an arbitrary origin on a infinite grid of boolean tiles. Pick an arbitrary direction parallel one of the two axes (up, right, down, left). Go one step in that direction. If the new position is true, turn clockwise, else turn anticlockwise. Move forward again and repeat. This version makes one change to the original algorithm: instead of an infinite grid, the plane has a defined boundary, beyond which the tiles are all false and cannot be changed. (The boundary is effectively reflective.) There are two versions: text.pas and graphical.pas, which are text mode and graphical mode implementations respectively. The graphical one defines the boundary to be a circle with a radius one sixth of the height of the viewport. The text version just uses the console's dimensions as the boundary. The Langton Ant code is actually implemented as a couple of classes in langtonant.pas. The scenarios.pas file contains the loop which runs the simulation. There is an example in that file showing how to run two ants at once. (The results are unspectacular.) To compile this code, the Free Pascal Compiler is recommended. http://www.freepascal.org/ Some sample outputs are in the output/ directory. Results ------- Adding boundaries shows interesting additional effects arising from the collision of the freeways with the immutable zone. The first noticable effect occurs on the first interaction of the ant and the boundary: the edge is highlighted. (Why this occurs is obvious if you consider how the rules behave in the presence of an unchanging region.) When the ant returns to the freeway which collided with the boundary, a chaotic region forms (superficially similar to the which occurs at the origin). Freeways reliably form shortly after a chaotic knot forms, exiting in an apparently arbitrary direction always at a pi/4 angle to the axes (i.e. diagonally). When two freeways colide, the result is often a very small chaotic region followed by the freeway being continued on the opposite side, as if a bridge had been formed. If a chaotic region forms near the boundary, the ant will often progress in the same direction as the formation of the original edge highlighting. The result is that with a circular boundary the following features are seen to form: 1. A chaotic region. 2. A freeway. 3. An edge highlight after the freeway collides with the boundary. 4. Another chaotic region. 5. Freeways crossing the plane, with chaotic regions where they meet. 6. A chaotic area around the edge of the plane, growing inwards over time. Eventually, the entire region is one chaotic region.