/// <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 }