Exemple #1
0
        /// <summary>
        /// Přidá záznam do Changelogu. V případě, že se pořadové číslo přidávané generace shoduje s poslední zaznamenanou generací,
        /// je tato poslední generace přepsána.
        /// </summary>
        /// <param name="g">Generace, která se má uložit.</param>
        public void AddRecord(Rules r, Generation g)
        {
            HashSet <int>   survive      = new HashSet <int>(r.Survive);
            HashSet <int>   revive       = new HashSet <int>(r.Revive);
            HashSet <Point> surroundings = new HashSet <Point>(r.Surroundings);

            Rules      rules      = new Rules(survive, revive, surroundings);
            Generation generation = new Generation(g.GenerationNumber, g.Cells);

            Record record = new Record(rules, generation);

            //pokud předchozí záznam je ze stejné generace, je nutné ho nahradit
            if (Changelog[Changelog.Count - 1].Generation.GenerationNumber == generation.GenerationNumber)
            {
                Changelog.RemoveAt(Changelog.Count - 1);
            }

            Changelog.Add(record);

            CurrentGeneration = generation.GenerationNumber; //číslo aktuální vykreslené generace
        }