/// <summary> /// Method that start the main logic of the game. /// </summary> /// <param name="output">Output renderer</param> /// <param name="input">Iput provider</param> /// <param name="cmmandLogger">Command logger</param> public static void Start(IRenderer output, IInputProvider input, ILogger cmmandLogger) { output.ShowInfoMessage("Please ente your name: "); string playerName = input.GetPlayerName(); output.ShowInfoMessage("Please enter a dimension for the board the standard is 9x9"); int dimension = input.GetPlayFieldDimensions(); ICell playerCell = new Cell(new Position(dimension / 2, dimension / 2)); IPlayField playField = null; var player = new Player.Player(playerName, playerCell); try { var playFieldGenerator = new StandardPlayFieldGenerator(player.CurentCell.Position, dimension, dimension); playField = new PlayField.PlayField(playFieldGenerator, player.CurentCell.Position, dimension, dimension); } catch (ArgumentOutOfRangeException e) { output.ShowInfoMessage(e.Message); } ICommandFactory commandFactory = new SimpleCommandFactory(); IMementoCaretaker memory = new MementoCaretaker(new List <IMemento>()); IScoreLadder ladder = ScoreLadder.Instance; IGameEngine gameEngine = new StandardGameEngine(output, input, playField, commandFactory, cmmandLogger, player, memory, ladder); gameEngine.Initialize(RandomNumberGenerator.Instance); gameEngine.Start(); }
/// <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; }
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); }