Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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();
                }
            }
        }