Beispiel #1
0
        public List <int> IdentificarVizinhosFechados(Vizinho vizinhosAtuais, int indexAtual, int bordas)
        {
            List <int> vizinhosFechadas = new List <int>();

            if (vizinhosAtuais.Cima == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) - 9);
            }
            if (vizinhosAtuais.Baixo == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) + 9);
            }
            if (vizinhosAtuais.Esquerda == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) - 1);
            }
            if (vizinhosAtuais.Direita == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) + 1);
            }
            if (vizinhosAtuais.DiagonalInfDir == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) + 10);
            }
            if (vizinhosAtuais.DiagonalInfEsq == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) + 8);
            }
            if (vizinhosAtuais.DiagonalSupDir == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) - 8);
            }
            if (vizinhosAtuais.DiagonalSupEsq == '-')
            {
                vizinhosFechadas.Add((indexAtual - bordas) - 10);
            }

            return(vizinhosFechadas);
        }
Beispiel #2
0
        public Vizinho IdentificarVizinhos(int indexAtual, string tabuleiro)
        {
            Vizinho vizinho = new Vizinho();

            //se for a primeira linha
            if (indexAtual >= 0 && indexAtual <= 10)
            {
                if (indexAtual == 0)
                {
                    vizinho.Esquerda = '\n';
                }
                else
                {
                    vizinho.Esquerda = tabuleiro[indexAtual - 1];
                }
                vizinho.Cima           = ' ';
                vizinho.DiagonalSupEsq = ' ';
                vizinho.DiagonalSupDir = ' ';

                vizinho.Direita = tabuleiro[indexAtual + 1];
                vizinho.Baixo   = tabuleiro[indexAtual + 11];
            }
            //se for a ultima linha
            else if (indexAtual >= 87 && indexAtual <= 96)
            {
                if (indexAtual == 96)
                {
                    vizinho.Direita = '\r';
                }
                else
                {
                    vizinho.Direita = tabuleiro[indexAtual + 1];
                }
                vizinho.Baixo          = ' ';
                vizinho.DiagonalInfEsq = ' ';
                vizinho.DiagonalInfDir = ' ';

                vizinho.Esquerda = tabuleiro[indexAtual - 1];
                vizinho.Cima     = tabuleiro[indexAtual - 11];
            }
            else
            {
                vizinho.Cima  = tabuleiro[indexAtual - 11];
                vizinho.Baixo = tabuleiro[indexAtual + 11];

                vizinho.Direita  = tabuleiro[indexAtual + 1];
                vizinho.Esquerda = tabuleiro[indexAtual - 1];
            }

            // se tiver borda no lado esquerdo
            if (vizinho.Esquerda == '\n')
            {
                vizinho.DiagonalSupEsq = '\n';
                vizinho.DiagonalInfEsq = '\n';

                // se tiver borda no lado esquerdo e em baixo
                if (vizinho.Baixo == ' ')
                {
                    vizinho.DiagonalSupDir = tabuleiro[indexAtual - 10];
                    vizinho.DiagonalInfDir = ' ';
                }
                // se tiver borda no lado esquerdo e em cima
                else if (vizinho.Cima == ' ')
                {
                    vizinho.DiagonalInfDir = tabuleiro[indexAtual + 12];
                    vizinho.DiagonalSupDir = ' ';
                }
                else
                {
                    vizinho.DiagonalSupDir = tabuleiro[indexAtual - 10];
                    vizinho.DiagonalInfDir = tabuleiro[indexAtual + 12];
                }
            }
            // se tiver borda no lado direito
            else if (vizinho.Direita == '\r')
            {
                vizinho.DiagonalSupDir = '\r';
                vizinho.DiagonalInfDir = '\r';

                // se tiver borda no lado direito e em baixo
                if (vizinho.Baixo == ' ')
                {
                    vizinho.DiagonalSupEsq = tabuleiro[indexAtual - 12];
                    vizinho.DiagonalInfEsq = ' ';
                }
                // se tiver borda no lado direito e em cima
                else if (vizinho.Cima == ' ')
                {
                    vizinho.DiagonalInfEsq = tabuleiro[indexAtual + 10];
                    vizinho.DiagonalSupEsq = ' ';
                }
                else
                {
                    vizinho.DiagonalInfEsq = tabuleiro[indexAtual + 10];
                    vizinho.DiagonalSupEsq = tabuleiro[indexAtual - 12];
                }
            }
            else
            {
                // se tiver borda em baixo
                if (vizinho.Baixo == ' ')
                {
                    vizinho.DiagonalSupEsq = tabuleiro[indexAtual - 12];
                    vizinho.DiagonalSupDir = tabuleiro[indexAtual - 10];

                    vizinho.DiagonalInfEsq = ' ';
                    vizinho.DiagonalInfDir = ' ';
                }
                // se tiver borda em cima
                else if (vizinho.Cima == ' ')
                {
                    vizinho.DiagonalInfDir = tabuleiro[indexAtual + 12];
                    vizinho.DiagonalInfEsq = tabuleiro[indexAtual + 10];

                    vizinho.DiagonalSupEsq = ' ';
                    vizinho.DiagonalSupDir = ' ';
                }
                else
                {
                    vizinho.DiagonalInfDir = tabuleiro[indexAtual + 12];
                    vizinho.DiagonalInfEsq = tabuleiro[indexAtual + 10];

                    vizinho.DiagonalSupDir = tabuleiro[indexAtual - 10];
                    vizinho.DiagonalSupEsq = tabuleiro[indexAtual - 12];
                }
            }

            return(vizinho);
        }