private void InvertirPartes() { int indexDesdeFrente = 0; int indexDesdeAtras = this.Partes.Count() - 1; for (; indexDesdeFrente < indexDesdeAtras; indexDesdeFrente++, indexDesdeAtras--) { IParte parteFrente = this.Partes.ElementAt(indexDesdeFrente); IParte parteAtras = this.Partes.ElementAt(indexDesdeAtras); Posicion posicionAtras = parteAtras.Posicion; parteAtras.ActualizarPosicion(parteFrente.Posicion); parteFrente.ActualizarPosicion(posicionAtras); } }
private void DestruirParte(IEnumerable <Posicion> posicionesImpactadas) { if (this.PosicionesDePartesSanas.Count() == 0) { throw new NaveYaDestruidaException(); } foreach (var posicionImpactada in posicionesImpactadas) { IParte parteImpactada = this.Partes.FirstOrDefault(p => p.Posicion.Equals(posicionImpactada)); if (parteImpactada != null) { parteImpactada.RecibirImpacto(); } } }