This is a virtual computer made of critters traveling on a grid. Each critter embodies a boolean value: travelling east/west represents a FALSE state; travelling north/south represents a TRUE state. A critter goes straight until it hits either a NEGATION tile, which turns the critter 900 left or right, or an AND and OR tile. When a critter enters an AND or OR tile, the tile holds it there and waits for a second critter. Then the tile sends out both critters in opposite directions, either both TRUE (ie: heading north and south) or both FALSE (ie: heading east and west).

Instructions:

Source: test extends BufferedApplet