/// <summary> /// Choose a cell around the one that has been hit to completely destroy a ship /// </summary> /// <returns>Adjacent coordinates</returns> private Coordinates SearchingShot() { Random rand = new Random(Guid.NewGuid().GetHashCode()); var hitNeighbors = FiringBoard.GetHitNeighbors(); var neighborID = rand.Next(hitNeighbors.Count); return(hitNeighbors[neighborID]); }
public FiringBoard SetUp() { _firingBoard = new FiringBoard(); PlaceShipsRandomly(); return(_firingBoard); }
/// <summary> /// Choose a random cell according to semi-random strategy /// </summary> /// <returns>Semi-random cell coordinates</returns> private Coordinates RandomShot() { var availableCells = FiringBoard.GetOpenRandomCells(); Random rand = new Random(Guid.NewGuid().GetHashCode()); var CellID = rand.Next(availableCells.Count); return(availableCells[CellID]); }
public Coordinates FireShot() { //If there are hits on the board with neighbors which don't have shots, we should fire at those first. var hitNeighbors = FiringBoard.GetHitNeighbors(); var coords = hitNeighbors.Any() ? SearchingShot() : RandomShot(); Console.WriteLine(Name + " says: \"Firing shot at " + coords.Row.ToString() + ", " + coords.Column.ToString() + "\""); return(coords); }
private Coordinates shoot() { var availablePanels = FiringBoard.getPanels(); Console.WriteLine(Environment.NewLine); Console.WriteLine(Name + " enter firing coordinates"); Console.WriteLine(Environment.NewLine); var s = Console.ReadLine(); int res = Convert.ToInt32(s); var panelID = res; return(availablePanels[panelID]); }
public Player(string name) { Name = name; Ships = new List <Ship>() { new Destroyer(), new Submarine(), new Cruiser(), new Battleship(), new Carrier() }; GameBoard = new GameBoard(); FiringBoard = new FiringBoard(); }
/// <summary> /// Choose a cell for firing a shot and return its coordinates /// </summary> public Coordinates FireShot() { //If there are hits on the board with neighbors which don't have shots, we should fire at those first. Random r = new Random(); var hitNeighbors = FiringBoard.GetHitNeighbors(); Coordinates coords; if (hitNeighbors.Any()) { coords = SearchingShot(); } else { coords = RandomShot(); } return(coords); }
public Player(string name) { Id = Guid.NewGuid().ToString(); Name = name; Ships = new List <Ship> () { new Destroyer(), new Submarine(), new Cruiser(), new Battleship(), new Carrier() }; GameBoard = new GameBoard(); FiringBoard = new FiringBoard(); if (!string.IsNullOrEmpty(name)) { PlaceShips(); } }
private static void DrawBoard(FiringBoard board) { Console.WriteLine(" A B C D E F G H I J "); Console.WriteLine(" _____________________"); for (int row = 1; row <= 9; row++) { Console.Write(row + " ¦"); for (char column = 'A'; column <= 'J'; column++) { Console.Write(board.Fields.Where(x => x.Coordinates.Row == row && x.Coordinates.Column == column).First().Status + " "); } Console.WriteLine(Environment.NewLine + " ¦"); } Console.Write("10 ¦"); for (char column = 'A'; column <= 'J'; column++) { Console.Write(board.Fields.Where(x => x.Coordinates.Row == 10 && x.Coordinates.Column == column).First().Status + " "); } Console.WriteLine(Environment.NewLine); }
public Player(string name, string clientId = "") { Id = Guid.NewGuid().ToString(); Name = name; ClientId = clientId; Ships = new List <Ship>() { new Destroyer(), new Submarine(), new Cruiser(), new Battleship(), new Carrier() }; GameBoard = new GameBoard(); FiringBoard = new FiringBoard(); GameBoard.Setup(); FiringBoard.Setup(); if (!string.IsNullOrEmpty(name)) { PlayerController.PlaceShips(this); } }
public Player CreateNewPlayer(string name, FiringBoard firingBoard) { Player newPlayer = new Player(name, firingBoard); return(newPlayer); }
public void Init() { _boardRepository = new BoardRepository(); board = _boardRepository.SetUp(); _playerRepository = new PlayerRepository(_boardRepository); }
public void SetMiss(int row, int col) { FiringBoard.SetStatus(row, col, OccupationType.Miss); }
public void SetHit(int row, int col) { FiringBoard.SetStatus(row, col, OccupationType.Hit); }