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