public Game(IOutput output, IBoard board, ICoordinateParser coordinateParser, IValidator validator) { _output = output; _board = board; _coordinateParser = coordinateParser; _validator = validator; GameStatus = GameStatus.InProgress; }
public GameLogic(ISettingsChecker settingsChecker, IGridBuilder gridBuilder, ICoordinateParser coordinateParser) { _settingsChecker = settingsChecker; _gridBuilder = gridBuilder; _coordinateParser = coordinateParser; }
public CoordinatesParser(ICoordinateParser coordinateParser, ILogger logger) { this.coordinateParser = coordinateParser ?? throw new ArgumentNullException(nameof(coordinateParser)); this.logger = logger; }
public CoordinatesCalculatorController(ICoordinateParser coordinateParser) { this.coordinateParser = coordinateParser ?? throw new ArgumentNullException(nameof(coordinateParser)); }
public static void TakeTurn(Player player, IBoard board, IOutput output, Game game, IValidator validator, ICoordinateParser coordinateParser) { do { output.OutputText(string.Format(Resources.TakeTurn, player.Name)); var playerMove = player.InputText(); if (game.ExitIntent(playerMove)) { break; } Coordinate coordinate; if (validator.IsValidFormat(playerMove)) { coordinate = coordinateParser.GetNewCoordinate(playerMove); } else { output.OutputText(Resources.IncorrectFormat); continue; } if (validator.IsValidCoordinate(coordinate, board)) { if (board.CellIsAvailable(coordinate)) { game.RunPlayerMove(player, coordinate); break; } output.OutputText(string.Format(Resources.CellUnavailable)); } else { output.OutputText(string.Format(Resources.OutsideOfBounds)); } } while (true); }