public Player(string name) { Name = name; PrimaryBoard = new PrimaryBoard(); MarkingBoard = new MarkingBoard(); }
public AttackResult ProcessAttack(Coordinates coords) { var validationResults = new CoordinateValidator().Validate(coords); if (validationResults.Errors.Any()) { throw new ArgumentException($"Invalid Argument Exception.{nameof(coords)}"); } var result = PrimaryBoard.ProcessAttack(coords); return(result.Item1); }
public bool AddShip(AddShipRequest request) { var validator = new AddShipRequestValidator(); var validationResults = validator.Validate(request); if (validationResults.Errors.Any()) { //in real world return the real errors. throw new ArgumentException($"Invalid Argument Exception.{nameof(request)}"); } //only add ship if it is not already on board and return(PrimaryBoard.TryAddShip(request)); }
public bool HasLost() => PrimaryBoard.AllSunk();