public static int ValidarAnterior(Campo campo) { var yAtual = campo.Y; var xAnterior = campo.X - 1; if (yAtual >= 0 && yAtual < lenX) { if (xAnterior >= 0 && xAnterior < lenY) { var campoAtual = campos.FirstOrDefault(x => x.Y == yAtual && x.X == xAnterior); if (campoAtual.ValidarCampoValor()) { return(campoAtual.Valor); } } } return(0); }
public static void ValidarGrupo(Campo campo) { if (campo.Indicador == 1) { int auxValor = 0, auxValidador = 0; // validar parte acima auxValidador = ValidarAcima(campo); auxValor = auxValidador == 0 ? auxValor : auxValidador; // validar posterior auxValidador = ValidarPosterior(campo); auxValor = auxValidador == 0 ? auxValor : auxValidador; // validar anterior auxValidador = ValidarAnterior(campo); auxValor = auxValidador == 0 ? auxValor : auxValidador; // validar campos abaixo auxValidador = ValidarAbaixo(campo); auxValor = auxValidador == 0 ? auxValor : auxValidador; campo.Valor = auxValor == 0 ? ++contador : auxValor; } }
public static int ValidarAcima(Campo campo) { var yAcima = campo.Y - 1; var xAnterior = campo.X - 1; var xLocal = campo.X; var xPosterior = campo.X + 1; if (yAcima >= 0 && yAcima < lenX) { if (xAnterior >= 0 && xAnterior < lenY) { var campoAtual = campos.FirstOrDefault(x => x.Y == yAcima && x.X == xAnterior); if (campoAtual.ValidarCampoValor()) { return(campoAtual.Valor); } } if (xLocal >= 0 && xLocal < lenY) { var campoAtual = campos.FirstOrDefault(x => x.Y == yAcima && x.X == xLocal); if (campoAtual.ValidarCampoValor()) { return(campoAtual.Valor); } } if (xPosterior >= 0 && xPosterior < lenY) { var campoAtual = campos.FirstOrDefault(x => x.Y == yAcima && x.X == xPosterior); if (campoAtual.ValidarCampoValor()) { return(campoAtual.Valor); } } } return(0); }