/// <summary> /// Runs the given hill's automation /// </summary> /// <param name="hill"> A hill </param> private static void runAutomation(Hill hill) { while (HillManager.isAutomationActivate()) { hill.cycle(); Thread.Sleep(HillManager.WAIT_TIME_IN_MILISECONDS); } }
/// <summary> /// Creates a rabbit using the node's attributes and adds it to the hill /// </summary> /// <param name="hill"> A hill </param> /// <param name="node"> A node </param> private static void createRabbit(Hill hill, XmlNode node) { int age = XMLFileIO.readAge(node); string name = XMLFileIO.readName(node); Sex sex = XMLFileIO.readSex(node); Color color = XMLFileIO.readColor(node); addRabbit(hill, new Rabbit(age, sex, color, name)); }
/// <summary> /// Generates a hill from a file /// </summary> /// <param name="fileName"> Name of the XML file </param> /// <param name="hill"> An empty hill </param> private static void generateHill(string fileName, Hill hill) { XmlNodeList nodes = HillManager.fileNodes(fileName); foreach (XmlNode node in nodes) { if (HillManager.hasAttributes(node)) { HillManager.createRabbit(hill, node); } } }
/// <summary> /// Automates the given hill /// </summary> /// <param name="hill"> A hill </param> private static void automateHill(Hill hill) { HillManager._toggle = true; Thread.Sleep(HillManager.WAIT_TIME_IN_MILISECONDS); while (true) { HillManager.runAutomation(hill); HillManager.checkToggle(); } }
/// <summary> /// Runs the hill /// </summary> public static void runHill() { const string FILE_NAME = "InitialState.xml"; const int NUM_OF_FEMALES = 3; const int NUM_OF_MALES = 2; Hill hill; if (XMLFileIO.doesFileExist(FILE_NAME)) { hill = new Hill(); generateHill(FILE_NAME, hill); } else { hill = new Hill(NUM_OF_MALES, NUM_OF_FEMALES); } automateHill(hill); }
/// <summary> /// Adds a rabbit to the given hill /// </summary> /// <param name="hill"> A hill </param> /// <param name="rabbit"> A rabbit </param> private static void addRabbit(Hill hill, Rabbit rabbit) { hill.Rabbits.Add(rabbit); }