Example #1
0
        /// <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);
        }
Example #2
0
 /// <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;
         }
     }
 }
Example #3
0
        /// <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);
            }
        }
Example #4
0
 /// <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;
 }