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