public AppState(string id, DirectoryInfo location, NameTypes nameTypes)
 {
     Id              = string.IsNullOrWhiteSpace(id) ? "Unknown" : id;
     Location        = location ?? new DirectoryInfo(".");
     NameTypes       = nameTypes;
     CurrentNameType = nameTypes.IsSingleGender() ? nameTypes : NameTypes.Boys;
     Rnd             = new MT19937Generator();
     OwnBoyVetos     = new List <Name>(Vetos.Load(Path.Combine(Location.FullName, Id + ".boys.vetos.txt")).Select(n => (Name)n));
     OwnGirlVetos    = new List <Name>(Vetos.Load(Path.Combine(Location.FullName, Id + ".girls.vetos.txt")).Select(n => (Name)n));
 }
        public void UpdateCurrentNameType()
        {
            if (NameTypes.IsSingleGender())
            {
                return;
            }
            if (Rnd.NextDouble() < 0.8)
            {
                return;
            }

            if (CurrentNameType == NameTypes.Boys)
            {
                CurrentNameType = NameTypes.Girls;
            }
            else
            {
                CurrentNameType = NameTypes.Boys;
            }
        }