/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Objetos;
import Objetos.ObjetosBasicos.Metodos.CalifMetodo;
import Objetos.ObjetosBasicos.Metodos.JornadaMetodo;
import Objetos.ObjetosBasicos.Metodos.Metodo;
import Procesos.Config;
import Procesos.MesclaDeMetodos;
import Procesos.MetodosNivel4;
import java.util.ArrayList;
/**
*
* @author JuanAngel
*/
public class Salida {
MetodosNivel4 Nivel4 = new MetodosNivel4(0);
Historial His = new Historial();
AdminSalida AdmSalida = new AdminSalida();
static String Estado = "Pre";
static JornadaMetodo Jornada = new JornadaMetodo();
//El ultimo Metodo seleccionado se pone como ultima // Metodo de salida unico toma dos por debajo
public static synchronized void MetodoSalida(ArrayList<CalifMetodo> Partidos) {
// System.out.println("Metodo Salida");
if (Partidos.get(0).getGolesL() <= -1) {
Salida.Estado = "Pre";
} else {
Salida.Estado = "Res";
}
ArrayList<CalifMetodo> Res = new ArrayList<CalifMetodo>();
MesclaDeMetodos Mescla = new MesclaDeMetodos();
AdminMetodosBasicos Basicos = new AdminMetodosBasicos();
AdminMetodosNivel4 Nivel4 = new AdminMetodosNivel4();
AdminMetodosNivel2 Nivel2 = new AdminMetodosNivel2();
ArrayList<CalifMetodo> J1 = new ArrayList<CalifMetodo>();
//Metodo MetodoB = Basicos.getMetodo("Tabla Normal Goles");
ArrayList<Metodo> M =Mescla.getListaMetodosMasProbableB234(); //Salida.FiltrarMetodosFinales();
// M.get(0).getJornadaPredicciones().ImpJornadaPredictiva();
//System.out.println("Size "+ Metodos.size() + " " + M.size());
ArrayList<Metodo> Metodos = Salida.FiltrarMetodosIguales(M);
if (Metodos.size() >= 3) {
// System.out.println("-----------Final " + Metodos.get(0).getNombreMetodo());
//System.out.println("Metodo size " + Metodos.size() + " Metodos M " + M.size());
J1= Nivel4.getMetodo("Mejores Prueba").getJornadaPredicciones().getJornada();
// ArrayList<JornadaMetodo> Jornadas = Salida.JornadasMetodos(Metodos);
// JornadaMetodo JornadaM = new JornadaMetodo();
// JornadaM = M.get(M.size() - 1).getJornadaPredicciones();
//JornadaM.ImpJornadaPredictiva();
// J1 =Jornadas.get(3).getJornada() //MetodoB.getJornadaPredicciones().getJornada();//;//Salida.JornadaFinal(Jornadas, JornadaM).getJornada();
//if(M.size()>=1){
// }
// Metodos.get(3).getJornadaPredicciones().ImpJornadaPredictiva();
// System.out.println("-----------NormalMMM " + M.get(M.size()-1).getNombreMetodo());
// M.get(0).getJornadaPredicciones().ImpJornadaPredictiva();
// Metodos.get(1).getJornadaPredicciones().ImpJornadaCalificada();
// Metodos.get(2).getJornadaPredicciones().ImpJornadaCalificada();
// Metodo M1 = Metodos.get(0);
// Metodo M2 = Metodos.get(1);
// Metodo M3 = Metodos.get(2);
//ArrayList<CalifMetodo> ResultadosMenos = Metodos.get(Metodos.size() - 2).getJornadaPredicciones().getJornada();
// System.out.println("Menos " + Metodos.get(Metodos.size() - 2).getNombreMetodo() + " Prom " + Metodos.get(Metodos.size() - 2).getPromedioAcertados());
// System.out.println("Metodo Mas " + Metodos.get(0).getNombreMetodo() + " Prom " + Metodos.get(0).getPromedioAcertados());
/* for (int i = 0; i <= J1.size() - 1; i++) {
CalifMetodo Calif1 = J1.get(i).getClon();
// CalifMetodo Calif2 = J2.get(i).getClon();
// CalifMetodo Calif3 = J3.get(i).getClon();
// String PreM = ResultadosMenos.get(i).getPrediccion();
String Pre1 = J1.get(i).getPrediccion();
String Pre2 = J1.get(i).getPrediccion1();
String Pre3 = J1.get(i).getPrediccion2();
Calif1.setPrediccion(Pre1);
Calif1.setPrediccion1(Pre2);
Calif1.setPrediccion2(Pre3);
Res.add(Calif1);
}*/
AdminSalida.AgregarCalif(J1);
// } else if (Metodos.size() <= 2 && Metodos.size() > 0) {// si no hay tres metodos
// System.err.println("Sin salida " + Metodos.size());
}
if (Salida.Estado == "Res") {
Salida.AgregarResultados(Partidos);
Salida.ActualizarPromedios();
// Metodos = Mescla.getListaMetodosMasProbableB234Final();
Salida.Jornada = AdminSalida.getUltimaJornada();
// System.out.print(" "+Salida.Jornada.getAsertadosFinal());
// Salida.Jornada.ImpJornadaCalificada();
} else if (Salida.Estado == "Pre") {
JornadaMetodo JornadaPre = new JornadaMetodo();
JornadaPre.setJornadaPredicion(J1);
// JornadaPre.ImpJornadaPredictiva();
if (J1.size() >= 1) {
JornadaPre.setnJornada(J1.get(0).getJornada());
}
Salida.Jornada = JornadaPre;
}
//System.out.println("TErmina Salida");
}
public static void ActualizarPromedios() {
//===Entra cuando detecta el final de una jornada====//
//Seccion de Actualiza los metodos
// System.out.println("Actualizando Promdios ");
AdminMetodosBasicos Basicos = new AdminMetodosBasicos();
AdminMetodosNivel4 Nivel4 = new AdminMetodosNivel4();
AdminMetodosNivel2 Nivel2 = new AdminMetodosNivel2();
AdminMetodosNivel3 Nivel3 = new AdminMetodosNivel3();
AdminSalida Salida = new AdminSalida();
Basicos.ActualizarPromedios();
Nivel2.ActualizarPromedios();
Nivel3.ActualizarPromedios();
Nivel4.ActualizarPromedios();
Salida.ActualizarPromedios();
}
public static void AgregarResultados(ArrayList<CalifMetodo> Resultados) {
//===Entra cuando detecta el final de una jornada====//
//Seccion de Actualiza los metodos
//System.out.println("Agregando Resultados ");
AdminMetodosBasicos Basicos = new AdminMetodosBasicos();
AdminMetodosNivel4 Nivel4 = new AdminMetodosNivel4();
AdminMetodosNivel2 Nivel2 = new AdminMetodosNivel2();
AdminMetodosNivel3 Nivel3 = new AdminMetodosNivel3();
AdminSalida Salida = new AdminSalida();
if (Basicos.getPrediccionesActuales().size() >= 1) {
Basicos.AgregarResultados(Resultados);
// System.out.print("Actualizar REs "+Basicos.getListaMetodosMasProbable().get(0).getJornadaPredicciones().size());
}
if (Nivel2.getPrediccionesActuales().size() >= 1) {
Nivel2.AgregarResultados(Resultados);
}
if (Nivel3.getPrediccionesActuales().size() >= 1) {
Nivel3.AgregarResultados(Resultados);
}
if (Nivel4.getPrediccionesActuales().size() >= 1) {
Nivel4.AgregarResultados(Resultados);
}
if (Salida.getPrediccionesActuales().size() >= 1) {
Salida.AgregarResultados(Resultados);
}
}
public static ArrayList<Metodo> FiltrarMetodosIguales(ArrayList<Metodo> Metodos) {
Config Conf = new Config();
ArrayList<Metodo> MetodosFil = new ArrayList<Metodo>();
ArrayList<String> Nombres = new ArrayList<String>();
ArrayList<Metodo> MetodosI = new ArrayList<Metodo>();
double contI = 0;
int JornadaIgual = 0;
//Recorre todos los metodos que se puede invocar
for (int i = 0; i <= Metodos.s