Пример #1
0
        public void TestPlaceShips(IPlayer player)
        {
            String failMsg = player.PlayerName + " Failed TestPlaceShips ";
            var sph = new ShipPlacementHelper(getMaxCoords());
            List<Ship> ships = new List<Ship>();

            player.PlaceShips();

            foreach (var ship in player.Ships)
            {
                Assert.IsFalse(sph.IsInvalidPlacement(ship), failMsg + "Invalid Placement");
                if (sph.PlacementCreatesConflict(ship, ships)) { Assert.Fail(failMsg + "Placement Conflict"); }
                else { ships.Add(ship); }
            }
        }
Пример #2
0
        private void PlaceShips(IPlayer p)
        {
            bool placementAccepted = false;

            while (!placementAccepted)
            {
                p.PlaceShips();
                placementAccepted = true;
                List<Ship> checkedShips = new List<Ship>();

                foreach (Ship s in p.Ships)
                {
                    if (sph.IsInvalidPlacement(s) || sph.PlacementCreatesConflict(s, checkedShips))
                    {
                        placementAccepted = false;
                        break;
                    }
                    checkedShips.Add(s);
                }
            }
        }