Beispiel #1
0
        public void Execute()
        {
            generation.Draw(outputProvider, generationStartPosition);
            gameBoardStartPosition = outputProvider.CurrentPosition;
            gameBoard.Draw(outputProvider, gameBoardStartPosition);

            MovementArea           movementArea = CreateArea();
            ICollection <ICommand> commands     = CreateCommand(movementArea);

            do
            {
                movementArea.Cursor.Draw(outputProvider);
                Key key = inputProvider.ReadKey();
                foreach (var command in commands)
                {
                    if (command.CanExecute(key))
                    {
                        command.Execute();
                    }
                }
                gameBoard.Draw(outputProvider, gameBoardStartPosition);
            } while (!IsGameOver);
            int lastLine = gameBoardStartPosition.Y + gameBoard.Height +
                           gameBoard.FrameSize * 2;

            outputProvider.SetPosition(new Point(0, lastLine));
        }
Beispiel #2
0
 public virtual void Draw(IOutputProvider provider, Point startPosition)
 {
     provider.SetPosition(startPosition);
     provider.SetForegroundColor(color);
     provider.Draw(Symbol);
     provider.ResetColor();
 }
Beispiel #3
0
 public void Draw(IOutputProvider provider, Point startPosition)
 {
     provider.SetPosition(startPosition);
     provider.Draw("Generation: ");
     provider.SetForegroundColor(Color.Green);
     provider.Draw(count);
     provider.DrawEmptyLine();
     provider.ResetColor();
 }
Beispiel #4
0
 public void Draw(IOutputProvider provider, Point startPosition)
 {
     provider.SetPosition(startPosition);
     for (int i = 0; i < Height + FrameSize * CountOfVerticalFrame; ++i)
     {
         for (int j = 0; j < Width + FrameSize * CountOfHorizontalFrame; ++j)
         {
             if (i < FrameSize || i >= Height + FrameSize ||
                 j < FrameSize || j >= Width + FrameSize)
             {
                 provider.Draw(FrameSymbol);
             }
             else
             {
                 Point position = new Point(startPosition.X + j, startPosition.Y + i);
                 ObjectArea[i - FrameSize, j - FrameSize].Draw(provider, position);
             }
         }
         provider.SetPosition(new Point(startPosition.X, startPosition.Y + i + 1));
     }
 }
Beispiel #5
0
 public override void Draw(IOutputProvider provider, Point startPosition)
 {
     provider.SetPosition(startPosition);
     base.Draw(provider, startPosition);
     provider.SetPosition(startPosition);
 }