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); } } }
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); } } }