/// <summary>
 /// Constructor with 5 parameters
 /// </summary>
 /// <param name="playField">Parameter of type IPlayField </param>
 /// <param name="output">Parameter of type IRenderer</param>
 /// <param name="memory">Parameter of type IMementoCaretaker</param>
 /// <param name="ladder">Parameter of type IScoreLadder</param>
 /// <param name="player">Parameter of type IPlayer</param>
 public CommandContext(IPlayField playField, IRenderer output, IMementoCaretaker memory, IScoreLadder ladder, IPlayer player)
 {
     this.PlayField = playField;
     this.Output = output;
     this.Memory = memory;
     this.Ladder = ladder;
     this.Player = player;
 }
        public void ClassInitialize()
        {
            playerPosition = new Position(3, 3);
            generator = new StandardPlayFieldGenerator(playerPosition, 9, 9);
            playField = new PlayField(generator, playerPosition, 9, 9);

            IInfoRenderer infoPanel = new InfoPanel();
            IPlayFieldRenderer playFieldPanel = new PlayFieldPanel();
            ILadderRenderer topScoresPanel = new TopScoresPanel();
            output = new ConsoleRender(infoPanel, playFieldPanel, topScoresPanel);

            memory = new MementoCaretaker(new List<IMemento>());

            ladder = ScoreLadder.Instance;

            player = new Player("test", new Cell(playerPosition));

            context = new CommandContext(playField, output, memory, ladder, player);
        }
 /// <summary>
 /// Standard game engine constructor.
 /// </summary>
 /// <param name="renderer">Output renderer.</param>
 /// <param name="inputProvider">Input provider.</param>
 /// <param name="playField">Game play field.</param>
 /// <param name="commandFactory">Game command factory.</param>
 /// <param name="logger">Command execution logger.</param>
 /// <param name="player">Player</param>
 public StandardGameEngine(
     IRenderer renderer,
     IInputProvider inputProvider,
     IPlayField playField,
     ICommandFactory commandFactory,
     ILogger logger,
     IPlayer player,
     IMementoCaretaker memory,
     IScoreLadder ladder)
 {
     this.playField = playField;
     this.renderer = renderer;
     this.input = inputProvider;
     this.ladder = ladder;
     this.commandFactory = commandFactory;
     this.logger = logger;
     this.player = player;
     this.memory = memory;
 }