/* * The Jacciata automaton, expressed in ALPACA. * Inspired by Jaccia. * April 11 2009, Chris Pressey, Cat's Eye Technologies. * Updated to ALPACA 1.0 on March 20, 2013. * Changed appearance of Slime from "%" to ":" April 6, 2013. */ neighbourhood VonNeumann (^ v < >); class Starter; class Sustainer; class Sassy; class Solution; state Space " "; state Wall "#"; /* purely decorative */ /* * Slime stays alive so long as there is sustenance (food, or more slime, or the * head of an exploratory shoot) on at least two sides. Slime turns into an * exploratory head if there is adjacent starter material. */ state Slime ":" is Sustainer to Space when (not 2 in VonNeumann is Sustainer) /* this part lets conflicts be resolved */ or 2 in VonNeumann Head, to Head when 1 in VonNeumann is Starter; state Head "-" is Starter is Sustainer is Sassy to Body; /* * Body does not provide sustenance for slime. * Body becomes solved cells when adjacent to a solution. * Body stays alive so long as there is sassy on at least two sides; * sassy is head, more body, or food, or a solved cell. */ state Body "?" is Starter is Sassy to Solved when 1 in VonNeumann is Solution, to Space when not 2 in VonNeumann is Sassy; /* * Solved cells survive on the same rules as body cells. */ state Solved "@" is Sassy is Solution to Space when not 2 in VonNeumann is Sassy; state Start "S" is Starter is Sustainer is Sassy; state Finish "F" is Sustainer is Sassy is Solution.