示例#1
0
        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);
        }
示例#2
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;
            }
        }
示例#3
0
        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);
        }