Ejemplo n.º 1
0
        private CoordenadasObjetoBuscado BuscarTodoAlRededor(Posicion actual, T[] loQueBusco)
        {
            CoordenadasObjetoBuscado coordBuscadas = null;

            foreach (var sentido in sentidosDeBusqueda)
            {
                coordBuscadas = BuscarTodoEnElSentido(actual, loQueBusco, sentido);

                if (coordBuscadas.encontrados)
                {
                    break;
                }
            }
            return(coordBuscadas);
        }
Ejemplo n.º 2
0
        private CoordenadasObjetoBuscado BuscarTodoEnElSentido(Posicion posicionInicial, T[] loQueBusco, SentidoBusqueda sentido)
        {
            CoordenadasObjetoBuscado res = new CoordenadasObjetoBuscado(loQueBusco);

            Posicion posActual = posicionInicial;

            for (int i = 0; i < loQueBusco.Length; i++)
            {
                if (posActual.elem != null && posActual.elem.Equals(loQueBusco[i]))
                {
                    res.posiciones[i] = posActual;
                }
                else
                {
                    res.encontrados = false;
                    break;
                }
                posActual = Siguiente(posActual, sentido);
            }

            return(res);
        }
Ejemplo n.º 3
0
        public CoordenadasObjetoBuscado Buscar(T[] objetoABuscar)
        {
            List <Posicion> posicionesPrimerLetra = new List <Posicion>();

            matriz.ToList().ForEach(x => x.ToList().ForEach(y => {
                if (y.elem.Equals(objetoABuscar[0]))
                {
                    posicionesPrimerLetra.Add(y);
                }
            }
                                                            ));

            CoordenadasObjetoBuscado res = null;

            foreach (var posInicial in posicionesPrimerLetra)
            {
                res = BuscarTodoAlRededor(posInicial, objetoABuscar);
                if (res.encontrados)
                {
                    break;
                }
            }
            return(res);
        }