Esempio n. 1
0
        public Tuple <char, int> SelectSquare()
        {
            if (CurrentRedSquare is not null)
            {
                var ship = ShipFactory.GetInstance(CurrentRedSquare.ShipType);

                return(ship.FindNextSquer(OpponentOcean, CurrentRedSquare.Position));
            }
            else
            {
                List <Tuple <char, int> > blankSquares;

                if (OpponentOcean.Any(r => r.Status is PositionStatus.Red && !r.IsSinked))
                {
                    blankSquares = OpponentOcean.Where(r => r.Status is PositionStatus.Red && !r.IsSinked).Select(r => r.Position).ToList();
                }
                else
                {
                    blankSquares = OpponentOcean.Where(r => r.Status == PositionStatus.Empty).Select(r => r.Position).ToList();
                }

                Random random = new Random();
                var    index  = random.Next(1, blankSquares.Count);
                return(blankSquares[index]);
            }
        }
Esempio n. 2
0
        private void Sinked(IBaseShip ship)
        {
            opponentDestroyed++;

            var sinkedPoint = ship.CurrentPosibilities.Single();

            OpponentOcean.Where(r => sinkedPoint.Any(sp => r.Position.Equals(sp.Position))).Select(r => r.IsSinked = true).ToList();

            CurrentRedSquare = null;
            ship.Sinked();
        }
Esempio n. 3
0
        public void FillSquare(Tuple <char, int> position, PositionStatus positionStatus, ShipType?shipType)
        {
            var Square = OpponentOcean.Single(r => r.Position.Equals(position));

            Square.Status   = positionStatus;
            Square.ShipType = shipType;
            if (positionStatus is PositionStatus.Red && CurrentRedSquare is null)
            {
                CurrentRedSquare = Square;
            }
        }