/// <summary> /// InsertValue - Insere os navios no tabuleiro /// Caso o navio seja bem inserido adiciona o navio a lista de navios do jogador /// </summary> /// <param name="x">Codenada X inical</param> /// <param name="y"> Cordenada Y inicial</param> /// <param name="size"> Tamanho do navio</param> /// <param name="state"> Estado do navio </param> /// <param name="orientation"> Orientação do navio (Vertical, horizontal)</param> /// <param name="Ships"> Lista dos navios do jogador</param> /// <returns> Retorna o sucesso da insersção do navio </returns> public bool InsertValue(int x, int y, int size, CordState state, Orientation orientation, List <Ship> Ships) { bool valid = false; if (Tools.InIndex(x, 0, Size) && Tools.InIndex(y, 0, Size)) { if (Tools.InIndex(x + (orientation == Orientation.Vertical ? size : 0), 0, Size) && Tools.InIndex(y + (orientation == Orientation.Horizontal ? size : 0), 0, Size)) { if (Tools.TryInsert(this, x, y, size, orientation)) { Ship ship = new Ship(size, orientation); for (var i = 0; i < size; i++) { foreach (Cord cord in Grid) { if (cord.X == x + (orientation == Orientation.Vertical ? i : 0) && cord.Y == y + (orientation == Orientation.Horizontal ? i : 0)) { cord.State = state; Cord C = new Cord(x + (orientation == Orientation.Vertical ? i : 0), y + (orientation == Orientation.Horizontal ? i : 0), 0); ship.Cords.Add(C); valid = true; } } } Ships.Add(ship); } } } return(valid); }
/// <summary> /// Corre toda o tabuleiro ate encontrar a cordenada especificado, quando encontrar, altera o estado da cordenda /// </summary> /// <param name="x"> Cordenada X</param> /// <param name="y"> Cordenada Y</param> /// <param name="st"> Estado da cordenada</param> public void MarkShot(int x, int y, CordState st) { foreach (Cord cord in Grid) { if (cord.X == x && cord.Y == y) { cord.State = st; } } }
/// <summary> /// A função retorna um valor numero convertendo o emun /// </summary> /// <param name="state">Opção emun </param> /// <returns>Valor do enum</returns> public static int getCordState(CordState state) { switch (state) { case CordState.Ocean: return(0); case CordState.HitOcean: return(1); case CordState.Ship: return(2); case CordState.HitShip: return(3); default: return(-1); } }
/// <summary> /// Contrutor da class Cord /// </summary> /// <param name="x"> Cordernada X</param> /// <param name="y"> Cordenada Y</param> /// <param name="st"> Estado da cordenada</param> public Cord(int x, int y, CordState st) { X = x; Y = y; State = st; }