KaiserRego

G4E4MisionEjercicio1

Sep 23rd, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1. class G4E4MisionEjercicio1 {
  2.     /*
  3.     * Lleva una Nave anclada en la Base y recolecta 10 de ANTIMATERIA de cada
  4.     * uno de los Contenedores que existen en el mapa. Luego de cargar en el
  5.     * último contenedor, si su nivel de carga es 100 regresa a la base y
  6.     * descarga la ANTIMATERIA.
  7.     */
  8.    
  9.     Nave naveSigma = new Nave();
  10.    
  11.     Radar radarSigma = naveSigma.obtenerRadar();
  12.    
  13.     Monitor monitorSigma = naveSigma.obtenerMonitor();
  14.    
  15.     /*
  16.      * El constructor opera con la nave naveSigma: la hace despegar y avanzar al norte.
  17.      */
  18.    
  19.     G4E4MisionEjercicio1() {
  20.        
  21.         naveSigma.despegar();
  22.         naveSigma.avanzarAlNorte();
  23.     }
  24.    
  25.     void ejecutar(){
  26.        
  27.         DestruirYAvanzarNorte (naveSigma, radarSigma);
  28.        
  29.         /* Avanzo hacie el este destruyendo los asteroides y cargando antimateria. */
  30.        
  31.         for (int i=0; i<10; i++){
  32.            
  33.             DestruirYAvanzarEste (naveSigma, radarSigma);
  34.             CargarAntimateriaNorte (naveSigma, radarSigma);
  35.            
  36.         }
  37.        
  38.         /* Muevo la nave dos líneas al norte. */
  39.        
  40.         naveSigma.avanzarAlEste();
  41.        
  42.         for (int i=0; i<2; i++){
  43.            
  44.             naveSigma.avanzarAlNorte();
  45.            
  46.         }
  47.        
  48.         naveSigma.avanzarAlOeste();
  49.        
  50.         /* Avanzo hacia el oeste cargando antimateria. */
  51.        
  52.         for (int i=0; i<10; i++){
  53.            
  54.             naveSigma.avanzarAlOeste();
  55.             CargarAntimateriaNorte (naveSigma, radarSigma);
  56.            
  57.         }
  58.        
  59.         /*
  60.          * Consulto si la carga de Antimateria es igual a 100. Si es así,
  61.          * invoco el métedo RegresarABaseYDescargar.
  62.          */
  63.        
  64.         if (monitorSigma.consultarCarga(Sustancia.ANTIMATERIA) == 100){
  65.            
  66.             RegresarABaseYDescargar (naveSigma);
  67.            
  68.         }
  69.        
  70.     }
  71.    
  72.     void DestruirYAvanzarNorte (Nave naveX, Radar radarX){
  73.        
  74.         radarX= naveX.obtenerRadar();
  75.        
  76.         while (radarX.escanearNorte() == Espectro.ASTEROIDE){
  77.            
  78.             naveX.atacarAlNorte();
  79.            
  80.         }
  81.        
  82.         naveX.avanzarAlNorte();
  83.     }
  84.    
  85.     void DestruirYAvanzarEste (Nave naveX, Radar radarX){
  86.        
  87.         radarX= naveX.obtenerRadar();
  88.        
  89.         while (radarX.escanearEste() == Espectro.ASTEROIDE){
  90.            
  91.             naveX.atacarAlEste();
  92.            
  93.         }
  94.        
  95.         naveX.avanzarAlEste();
  96.        
  97.     }
  98.    
  99.     void CargarAntimateriaNorte (Nave naveX, Radar radarX){
  100.        
  101.         if (radarX.escanearNorte() == Espectro.CONTENEDOR){
  102.            
  103.             naveX.cargarDesdeNorte(Sustancia.ANTIMATERIA, 10);
  104.            
  105.         }
  106.    
  107.     }
  108.  
  109.     void RegresarABaseYDescargar (Nave naveX){
  110.        
  111.         for (int i=0; i<3; i++){
  112.            
  113.             naveX.avanzarAlSur();
  114.         }
  115.        
  116.         naveX.descargarEnSur(Sustancia.ANTIMATERIA, 100);
  117.        
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment