コード例 #1
0
        private static void AddNounWithAdjectiveGenerators(IRandomWordGenerator adjectiveGenerator, IRandomWordGenerator nounGenerator, Dictionary <int, IList <PasswordGeneratingChain> > operatorsByLength)
        {
            foreach (int nounLength in nounGenerator.WordLengths)
            {
                foreach (int adjectiveLength in adjectiveGenerator.WordLengths)
                {
                    int passwordLength = adjectiveLength + nounLength;

                    var passwordGeneratingChain = new PasswordGeneratingChain(
                        () => adjectiveGenerator.GetRandomWord(adjectiveLength),
                        () => nounGenerator.GetRandomWord(nounLength));

                    if (operatorsByLength.ContainsKey(passwordLength))
                    {
                        operatorsByLength[passwordLength].Add(passwordGeneratingChain);
                    }
                    else
                    {
                        operatorsByLength[passwordLength] = new List <PasswordGeneratingChain> {
                            passwordGeneratingChain
                        };
                    }
                }
            }
        }
コード例 #2
0
ファイル: Game.cs プロジェクト: TeamMagnesium/HangmanGame
        public Game(IConsoleRenderer renderer, IRandomWordGenerator generator, ICommandManager commandManager)
        {
            this.renderer = renderer;
            this.generator = generator;
            this.commandManager = commandManager;
            this.scoreManager = ScoreManager.Instance;

            InitializeGameSettings();
        }
コード例 #3
0
 private static void AddNounOnlyGenerators(IRandomWordGenerator nounGenerator, Dictionary <int, IList <PasswordGeneratingChain> > operatorsByLength)
 {
     foreach (int length in nounGenerator.WordLengths)
     {
         operatorsByLength.Add(
             length,
             new List <PasswordGeneratingChain>
         {
             new PasswordGeneratingChain(() => nounGenerator.GetRandomWord(length)),
         });
     }
 }
コード例 #4
0
 public Word(IRandomWordGenerator randomWordGenerator)
 {
     this.secretWord = randomWordGenerator.GenerateRandomWord();
     this.maskedWord = this.Mask(this.secretWord);
 }
コード例 #5
0
        public static IDictionary <int, IList <PasswordGeneratingChain> > CalculateAvailableLengths(IRandomWordGenerator adjectiveGenerator, IRandomWordGenerator nounGenerator)
        {
            var operatorsByLength = new Dictionary <int, IList <PasswordGeneratingChain> >();

            AddNounOnlyGenerators(nounGenerator, operatorsByLength);
            AddNounWithAdjectiveGenerators(adjectiveGenerator, nounGenerator, operatorsByLength);

            Dictionary <int, IList <PasswordGeneratingChain> > readOnlyCollectionDict
                = operatorsByLength.Keys.ToDictionary(key => key, key => operatorsByLength[key]);

            return(readOnlyCollectionDict);
        }
コード例 #6
0
 public PasswordGenerator(IRandomWordGenerator adjectiveGenerator, IRandomWordGenerator nounGenerator)
 {
     this.adjectiveGenerator = adjectiveGenerator;
     this.nounGenerator      = nounGenerator;
     this.operatorsByLength  = CalculateAvailableLengths(adjectiveGenerator, nounGenerator);
 }
コード例 #7
0
 public Generate()
 {
     this.adjectiveGenerator = Substitute.For <IRandomWordGenerator>();
     this.nounGenerator      = Substitute.For <IRandomWordGenerator>();
 }