public IElement CreatePyramid(InputSymbolsProvider inputSymbolsProvider) { IElement newPyramid = CreateStructure(inputSymbolsProvider.GetSymbolsCount()); Fillpyramid(inputSymbolsProvider, newPyramid); return(newPyramid); }
/// <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); } }
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); }
public void FillChild(int childIndex, InputSymbolsProvider inputSymbolsProvider) { _childs[childIndex] = inputSymbolsProvider.GetNextChar(); if (childIndex == 0) { UpperPartProcessed = true; } if (childIndex == 3) { BottomPartProcessed = true; } }
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); } }
public void Fill(InputSymbolsProvider inputSymbolsProvider) { currentState.Fill(this, inputSymbolsProvider); }
/// <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);
public void FillChild(int childIndex, InputSymbolsProvider inputSymbolsProvider) { _childs[childIndex].Fill(inputSymbolsProvider); }