private Posicion BuscarSiguiente(Posicion actual, SentidoBusqueda sentido, T loQueBusco) { var sgte = Siguiente(actual, sentido); if (sgte.elem != null && sgte.elem.Equals(loQueBusco)) { return(sgte); } else { return(null); } }
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); }
private Posicion Siguiente(Posicion actual, SentidoBusqueda sentido) { var next = matriz.GetPosicion(actual.X + sentido.X, actual.Y + sentido.Y); return(next); }