/** * Does the computation */ protected override void SolveRabbitInstance(IGH_DataAccess DA) { //Get the evolution rules of the cell Boolean rule111_state = false; DA.GetData <Boolean>(0, ref rule111_state); Boolean rule110_state = false; DA.GetData <Boolean>(1, ref rule110_state); Boolean rule101_state = false; DA.GetData <Boolean>(2, ref rule101_state); Boolean rule100_state = false; DA.GetData <Boolean>(3, ref rule100_state); Boolean rule011_state = false; DA.GetData <Boolean>(4, ref rule011_state); Boolean rule010_state = false; DA.GetData <Boolean>(5, ref rule010_state); Boolean rule001_state = false; DA.GetData <Boolean>(6, ref rule001_state); Boolean rule000_state = false; DA.GetData <Boolean>(7, ref rule000_state); ElementaryRule rule111 = new ElementaryRule(GH_ALIVE_STATE, GH_ALIVE_STATE, GH_ALIVE_STATE, (rule111_state)? GH_ALIVE_STATE : GH_DEAD_STATE); ElementaryRule rule110 = new ElementaryRule(GH_ALIVE_STATE, GH_ALIVE_STATE, GH_DEAD_STATE, (rule110_state) ? GH_ALIVE_STATE : GH_DEAD_STATE); ElementaryRule rule101 = new ElementaryRule(GH_ALIVE_STATE, GH_DEAD_STATE, GH_ALIVE_STATE, (rule101_state) ? GH_ALIVE_STATE : GH_DEAD_STATE); ElementaryRule rule100 = new ElementaryRule(GH_ALIVE_STATE, GH_DEAD_STATE, GH_DEAD_STATE, (rule100_state) ? GH_ALIVE_STATE : GH_DEAD_STATE); ElementaryRule rule011 = new ElementaryRule(GH_DEAD_STATE, GH_ALIVE_STATE, GH_ALIVE_STATE, (rule011_state) ? GH_ALIVE_STATE : GH_DEAD_STATE); ElementaryRule rule010 = new ElementaryRule(GH_DEAD_STATE, GH_ALIVE_STATE, GH_DEAD_STATE, (rule010_state) ? GH_ALIVE_STATE : GH_DEAD_STATE); ElementaryRule rule001 = new ElementaryRule(GH_DEAD_STATE, GH_DEAD_STATE, GH_ALIVE_STATE, (rule001_state) ? GH_ALIVE_STATE : GH_DEAD_STATE); ElementaryRule rule000 = new ElementaryRule(GH_DEAD_STATE, GH_DEAD_STATE, GH_DEAD_STATE, (rule000_state) ? GH_ALIVE_STATE : GH_DEAD_STATE); List <CellularRule> rules = new List <CellularRule>(); rules.Add(rule111); rules.Add(rule110); rules.Add(rule101); rules.Add(rule100); rules.Add(rule011); rules.Add(rule010); rules.Add(rule001); rules.Add(rule000); ElementaryCell prototype = new ElementaryCell(-1, GH_ALIVE_STATE, GH_DEAD_STATE, rules); prototype.setIsPrototype(true); //set the output parameters DA.SetData(0, prototype); }
public void ElementaryRuleTest() { ElementaryRule rule30 = new ElementaryRule(30); Assert.AreEqual(false, rule30.Next(false, false, false), "Failed for bit 0"); Assert.AreEqual(true, rule30.Next(false, false, true), "Failed for bit 1"); Assert.AreEqual(true, rule30.Next(false, true, false), "Failed for bit 2"); Assert.AreEqual(true, rule30.Next(false, true, true), "Failed for bit 3"); Assert.AreEqual(true, rule30.Next(true, false, false), "Failed for bit 4"); Assert.AreEqual(false, rule30.Next(true, false, true), "Failed for bit 5"); Assert.AreEqual(false, rule30.Next(true, true, false), "Failed for bit 6"); Assert.AreEqual(false, rule30.Next(true, true, true), "Failed for bit 7"); }