Ejemplo n.º 1
0
            /// <summary>
            /// Consumes whole cake from provider
            /// </summary>
            /// <param name="destination">Destination.</param>
            /// <param name="source">Source.</param>
            private static void CopyCake(ICollection <Symbol> destination, ISymbolProvider source)
            {
                Symbol cakeBase = source.Current;

                destination.Add(source.Consume()); // copy base
                //"move cake" - while current old symbol is contained in base copy it
                while (!source.Empty && cakeBase.Contains(source.Current))
                {
                    destination.Add(source.Consume());
                }
            }
Ejemplo n.º 2
0
 /// <summary>
 /// Consumes all symbols from provider copying them to the destination.
 /// </summary>
 /// <param name="destination">Destination.</param>
 /// <param name="source">Source.</param>
 private static void CopyRest(ICollection <Symbol> destination, ISymbolProvider source)
 {
     while (!source.Empty)
     {
         destination.Add(source.Consume());
     }
 }