Esempio n. 1
0
        public Player(string name)
        {
            Name = name;

            PrimaryBoard = new PrimaryBoard();
            MarkingBoard = new MarkingBoard();
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
 public bool HasLost() => PrimaryBoard.AllSunk();