Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Tuplacaminos caminoMinimoProbable(){
- //****************************************DECLARO VARIABLES *************************** ************************************************ PRIMERO ANALIZAMOS QUE HACE CADA UNA
- ArrayList<Barco> ret0 = new ArrayList<Barco>(); //lista de espejo 0
- ArrayList<Barco> ret1 = new ArrayList<Barco>(); //lista de espejo 1
- Tuplacaminos ret = new Tuplacaminos(); //creo una tupla de caminos
- Integer _min = Integer.MAX_VALUE ; //_min con un valor maximo int
- Integer _barcoOrigen = 0; //barco actual
- Integer _cantBarcos = 1; //contador de barcos
- //***********ACA ARRANCA*********************PRIMERO CON EL ESPEJO 0******************************************************************
- // barco mas cercano al espejo
- for (int i = 0; i< distanciaEspejo.length; i++){ //ciclo para buscar barco mas cercano a espejo 0
- if (distanciaEspejo[i][0] < _min){
- _min = distanciaEspejo[i][0];
- _barcoOrigen = i;
- }
- }
- int [] quemado = new int [barcos.length]; //lista de barcos quemados
- quemado[_barcoOrigen] = 1; //quemo primer barco
- ret0.add(barcos[_barcoOrigen]); //agrego a barco quemado a camino de espejo 0
- Barco _barcoMasCercana = barcos[_barcoOrigen]; //guardo el barco que quemé en otra variable
- //********************************AHORA COMIENZA CICLO************** AHORA LE TOCA A ESPEJO 1 ******************************************************************
- while (_cantBarcos < barcos.length ){ //comparo hasta q haya contado todos los barcos
- //*************************************PARTE DE CICLO PARA ESPEJO 1*******************************************************************
- _cantBarcos++;
- //incremento cada vez q paso por un espejo ATENCION! DUPLIQUE ESTA INSTRUCCION. DOS VECES EN EL WHILE PORQUE PASAN DOS ESPEJOS.. QUEMO DOS BARCOS... POR LO TANTO EL CONTADOR AUMENTA DOS VECES.
- _barcoMasCercana = barcoMasCercano(ret0.get(ret0.size()-1).id, quemado); //LEER ABAJO
- /* ¿¿¿¿QUE HICE?
- ACTUALIZO A "_barcoMasCercana" ( O SEA EL BARCO ACTUAL) CON EL BARCO MAS CERCANO,
- LLAMANDO A LA FUNCION "barcoMasCercano".
- ¿¿¿QUE LE INGRESO???
- EL BARCO QUE ACABÒ DE QUEMAR EL ESPEJO 1 ( ret0.get(ret0.size()-1).id ) QUE ESTÀ EN SU LISTA
- Y LA LISTA DE QUEMADOS
- */
- // LISTO! TENGO EL NUEVO BARCO.
- quemado[_barcoMasCercana.id] = 1; //lo quemo
- // AHORA LO AGREGO A LA LISTA DEL ESPEJO 1
- ret1.add(_barcoMasCercana); //cambiè ret0.add(_barcoMasCercana) por: ret1.add(_barcoMasCercana)
- // ¿¿¿Y AHORA???? LE TOCA AL ESPEJO 0 OTRA VEZ
- //**********************************PARTE DEL CICLO PARA ESPEJO 0***************************************************
- _cantBarcos++; //incremento cada vez q paso por un espejo
- _barcoMasCercana = barcoMasCercano(ret0.get(ret0.size()-1).id, quemado);
- //ACA CAMBIÈ ALGO
- // PRIMERO EXPLICO QUE HACE: busco el basco mas cercano al barco actual con la funcion barco mas cercano
- // le ingreso la id del ultimo barco que quemé con espejo cero y la lista de quemados
- //me devuelve el barco mas cercano al barco ingresado y que no esta quemado
- /* ¿¿¿¿QUE CAMBIE???
- *
- * CUANDO INGRESO EN LA FUNCION barcoMasCercano LA ID DEL ULTIMO BARCO QUE QUEMÉ Y LA LISTA DE QUEMADOS
- * TENGO QUE INGRESAR LA ID DEL ULTIMO BARCO QUE QUEMÉ PERO... ¿¿CON QUE ESPEJO LO QUEME??
- *
- * CON ESPEJO 1!!
- *
- * POR LO TANTO TENGO QUE INGRESAR LA LISTA DE BARCOS DE ESPEJO 1
- *
- * ASI LA FUNCION barcoMasCercano BUSCA EL BARCO MAS CERCANO DEL ULTIMO BARCO QUEMADO
- *
- * ENTONCES:
- *
- * A _barcoMasCercana = barcoMasCercano(ret0.get(ret0.size()-1).id, quemado);
- *
- * LO CAMBIO POR
- *
- * _barcoMasCercana = barcoMasCercano(ret1.get(ret1.size()-1).id, quemado);
- */
- quemado[_barcoMasCercana.id] = 1; //quemo el nuevo barco
- ret0.add(_barcoMasCercana); //agrego el barco que queme a la lista del espejo
- //*********************************************************************************************************
- }
- //termina ciclo
- ret.setC1(ret0); //agrego camino a la tupla
- ret.setC2(ret1); // UNA VEZ IMPLEMENTADO. PUEDO AGREGAR LA LISTA DEL ESPEJO 1 AL OBJETO TUPLA
- //ANTES ESTABA ret.setC1(ret1); y pasó a ret.setC2(ret1);
- return ret;
- }
- /*
- Para desbloquear 6 Personajes bonus:
- Sobre la barra de titulos pulsa:
- adelante, atras, abajo, arriba, adelante, atras, abajo, arriba, triangulo, triangulo, triangulo, triangulo, ciruclo, ciruclo, ciruclo, ciruclo, X.
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement