Ejemplo n.º 1
0
 public RandomizerSettings(RandomizerSettings other)
 {
     this.VowelSwaps = other.VowelSwaps;
     this.ConsonantSwaps = other.ConsonantSwaps;
     this.LanguageSet = other.LanguageSet;
     this.MultiLevelSwaps = other.MultiLevelSwaps;
 }
Ejemplo n.º 2
0
        private void OkButton_Click(object sender, RoutedEventArgs e)
        {
            this.Settings = this.Properties.SelectedObject as RandomizerSettings;

            if (ComponentDispatcher.IsThreadModal)
            {
                this.DialogResult = true;
            }
            this.Close();
        }
Ejemplo n.º 3
0
 private void SettingsButton_Click(object sender, RoutedEventArgs e)
 {
     if (string.IsNullOrWhiteSpace(this.Text.Text))
     {
         return;
     }
     SettingsWindow _settingsDialog = new SettingsWindow(new RandomizerSettings(this.Settings));
     if (true == _settingsDialog.ShowDialog())
     {
         this.Settings = _settingsDialog.Settings;
     }
 }
Ejemplo n.º 4
0
        public static string Randomize(string original, RandomizerSettings settings)
        {
            if (string.IsNullOrWhiteSpace(original))
            {
                return original;
            }

            if (settings.ConsonantSwaps == 0 && settings.VowelSwaps == 0)
            {
                return original;
            }

            Dictionary<char, char> _consonantSwapMap = null;
            Dictionary<char, char> _vowelSwapMap = null;
            if (settings.ConsonantSwaps > 0)
            {
                IEnumerable<char> _langConsonants = settings.LanguageSet.Consonants;

                // get distinct consonants
                HashSet<char> _textConsonants = new HashSet<char>(original.ToLowerInvariant().Where(_c => _langConsonants.Contains(_c)).Distinct());

                // max swaps = min of user defined swaps, consonant pairs in language set, actual number of consonants in text
                int _maxSwaps = Math.Min(settings.ConsonantSwaps, _langConsonants.Count() / 2);
                _maxSwaps = Math.Min(_maxSwaps, _textConsonants.Count);

                _consonantSwapMap = Randomizer.BuildSwapMap(_textConsonants, _langConsonants, _maxSwaps, settings.MultiLevelSwaps);
            }
            if (settings.VowelSwaps > 0)
            {
                IEnumerable<char> _langVowels = settings.LanguageSet.Vowels;
                HashSet<char> _textVowels = new HashSet<char>(original.ToLowerInvariant().Where(_c => _langVowels.Contains(_c)).Distinct());
                int _maxSwaps = Math.Min(settings.VowelSwaps, _langVowels.Count() / 2);
                _maxSwaps = Math.Min(_maxSwaps, _textVowels.Count);
                _vowelSwapMap = Randomizer.BuildSwapMap(_textVowels, _langVowels, _maxSwaps, settings.MultiLevelSwaps);
            }

            string _result = Randomizer.Swap(original, _consonantSwapMap, _vowelSwapMap);
            return _result;
        }
Ejemplo n.º 5
0
        public SettingsWindow(RandomizerSettings settings)
        {
            this.InitializeComponent();

            this.Properties.SelectedObject = settings;
        }