예제 #1
0
        public IElement CreatePyramid(InputSymbolsProvider inputSymbolsProvider)
        {
            IElement newPyramid = CreateStructure(inputSymbolsProvider.GetSymbolsCount());

            Fillpyramid(inputSymbolsProvider, newPyramid);
            return(newPyramid);
        }
예제 #2
0
 /// <summary>
 /// Fills the pyramid with symbols using InputSymbolsProvider
 /// </summary>
 /// <param name="inputSymbolsProvider">Provides symbols from an input string</param>
 /// <param name="pyramid">pyramid for filling with symbols</param>
 private void Fillpyramid(InputSymbolsProvider inputSymbolsProvider, IElement pyramid)
 {
     while (inputSymbolsProvider.HasMoreSybols())
     {
         pyramid.Fill(inputSymbolsProvider);
     }
 }
예제 #3
0
파일: Program.cs 프로젝트: ivm-code/Blit
        static void Main(string[] args)
        {
            InputSymbolsProvider inputSymbolsProvider = new InputSymbolsProvider(args[0].Trim());
            IPrinter             printer             = new Printer();
            ICreator             pyramideBuilder     = new Creator();
            ITransformer         pyramideTransformer = new Transformer(printer);
            IElement             pyramid             = pyramideBuilder.CreatePyramid(inputSymbolsProvider);

            printer.Print(pyramid);
            pyramideTransformer.TransformPyramid(pyramid);
        }
예제 #4
0
 public void FillChild(int childIndex, InputSymbolsProvider inputSymbolsProvider)
 {
     _childs[childIndex] = inputSymbolsProvider.GetNextChar();
     if (childIndex == 0)
     {
         UpperPartProcessed = true;
     }
     if (childIndex == 3)
     {
         BottomPartProcessed = true;
     }
 }
예제 #5
0
 internal override void Fill(IElement element, InputSymbolsProvider inputSymbolsProvider)
 {
     if (element.UpperPartProcessed)
     {
         element.FillChild(1, inputSymbolsProvider);
         element.FillChild(2, inputSymbolsProvider);
         element.FillChild(3, inputSymbolsProvider);
     }
     else
     {
         element.FillChild(0, inputSymbolsProvider);
     }
 }
예제 #6
0
 public void Fill(InputSymbolsProvider inputSymbolsProvider)
 {
     currentState.Fill(this, inputSymbolsProvider);
 }
예제 #7
0
 /// <summary>
 /// Fills the element with symbols using InputSymbolsProvider
 /// </summary>
 /// <param name="inputSymbolsProvider">Provides symbols from an input string</param>
 /// <param name="element">element for filling with symbols</param>
 internal abstract void Fill(IElement element, InputSymbolsProvider inputSymbolsProvider);
예제 #8
0
 public void FillChild(int childIndex, InputSymbolsProvider inputSymbolsProvider)
 {
     _childs[childIndex].Fill(inputSymbolsProvider);
 }