static void Main()
        {
            IInputReader consoleReader = new ConsoleReader();
            var          consoleWriter = new ConsoleWriter
            {
                AutoFlush = true
            };

            IUnitContainer unitMatrix = new MatrixContainer(MatrixRows, MatrixCols);
            //ICommandDispatcher commandDispatcher = new CommandDispatcher();
            ICommandDispatcher commandDispatcher = new NewCommandDispatcher();
            //IUnitEffector unitEffector = new EmptyUnitEffector();
            IUnitEffector unitEffector = new ExtendUnitEffect();

            var engine = new Engine(unitMatrix,
                                    consoleReader,
                                    consoleWriter,
                                    commandDispatcher,
                                    unitEffector);

            engine.Start();
        }
        static void Main()
        {
            IInputReader consoleReader = new ConsoleReader();
            var consoleWriter = new ConsoleWriter
            {
                AutoFlush = true
            };

            IUnitContainer unitMatrix = new MatrixContainer(MatrixRows, MatrixCols);
            //ICommandDispatcher commandDispatcher = new CommandDispatcher();
            ICommandDispatcher commandDispatcher = new NewCommandDispatcher();
            //IUnitEffector unitEffector = new EmptyUnitEffector();
            IUnitEffector unitEffector = new ExtendUnitEffect();

            var engine = new Engine(unitMatrix,
                consoleReader, 
                consoleWriter, 
                commandDispatcher, 
                unitEffector);

            engine.Start();
        }