MejoresCombinaciones.java 1.9 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
package mejorCombinacion;

import java.util.ArrayList;
import com.roshka.bootcamp004.mano.*;
import com.roshka.bootcamp004.poker.*;

public class MejoresCombinaciones {
	int[] jugadas;//Carga los tipos de manos
	int mejorJugada;//Carga el mejor tipo de mano
	Carta[][] combinaciones;//Donde se almacenan todas las manos
	ArrayList<Carta[]> mejoresJugadas;
	
	public MejoresCombinaciones() {
		Combinaciones combinaciones = new Combinaciones();
		this.combinaciones = combinaciones.obtenerCombinaciones();
		this.mejorJugada = 8;
		this.mejoresJugadas = new ArrayList<>();
	}
	
	//Establecemos quien es el ganador
	public Carta[] ganador() {
		Carta[] resultado = null;
		//Primero vamos a clasificar las combinaciones
		this.clasificarJugadas();
		//Despues establece cual es la mejor jugada
		this.mejorJugada();
		//Cargamos en un array las mejores jugadas
		for(int i=0;i<this.jugadas.length;i++){
			if(this.jugadas[i] == this.mejorJugada) {
				this.mejoresJugadas.add(this.combinaciones[i]);
			}
		}
		//obtenemos la mejor jugada
		if(this.mejoresJugadas.size()==1) {
			System.out.println("Mejor Jugada: "+this.mejoresJugadas.get(0));
			resultado = this.mejoresJugadas.get(0);
		}else {
			System.out.println("Mejor Jugada: "+(new Poker()).jugadas[this.mejorJugada]);
			//Clasificamos cual de las mejores jugadas, es la mejor jugada
			resultado = (new SelectorGanador(this.mejoresJugadas,this.mejorJugada)).procesar();
		}
		return resultado;
	}
	
	//Crea la lista de tipos de jugadas
	private void clasificarJugadas() {
		this.jugadas = new int[this.combinaciones.length];
		ClasificadorMano clasifica = new ClasificadorMano();
		for(int i=0;i<this.jugadas.length;i++) {
			this.jugadas[i] = clasifica.mejorJugadaNumero(combinaciones[i]);
		}
	}
	
	//Halla la mejor jugada
	private void mejorJugada() {
		for(int i = 0;i<jugadas.length;i++) {
			if(this.mejorJugada>jugadas[i]) {
				this.mejorJugada = jugadas[i];
			}
		}
	}
}