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)); }
public virtual void Draw(IOutputProvider provider, Point startPosition) { provider.SetPosition(startPosition); provider.SetForegroundColor(color); provider.Draw(Symbol); provider.ResetColor(); }
public void Draw(IOutputProvider provider, Point startPosition) { provider.SetPosition(startPosition); provider.Draw("Generation: "); provider.SetForegroundColor(Color.Green); provider.Draw(count); provider.DrawEmptyLine(); provider.ResetColor(); }
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)); } }
public override void Draw(IOutputProvider provider, Point startPosition) { provider.SetPosition(startPosition); base.Draw(provider, startPosition); provider.SetPosition(startPosition); }