コード例 #1
0
 void Start()
 {
     ambientes = GameObject.FindGameObjectWithTag("Ambiente");
     for (int i = 0; i < ambientes.transform.childCount; i++)
     {
         companionEvolutivo = BusquedaHijos.buscarHijoPorTag(ambientes.transform.GetChild(i).gameObject, "Companion").GetComponent <CompanionEvolutivo>();
         //Debug.Log("numero inviduo: "+ numeroIndividuo);
         GenomaNEAT aux = poblacion[numeroIndividuo];
         companionEvolutivo.individuo = numeroIndividuo;
         companionEvolutivo.setRed(aux);
         tiempoDePrueba = tiempoPruebaOriginal;
         numeroIndividuo++;
         AmbienteEvolutivo ambienteLocal = ambientes.transform.GetChild(i).GetComponent <AmbienteEvolutivo>();
         ambienteLocal.tiempoPruebaOriginal = tiempoPruebaOriginal;
         ambienteLocal.tiempoDePrueba       = tiempoPruebaOriginal;
         ambienteLocal.listo = true;
     }
     companionEvolutivo = GameObject.FindGameObjectWithTag("Companion").GetComponent <CompanionEvolutivo>();
 }
コード例 #2
0
    void Update()
    {
        UIManager.generacion = numeroGeneracion;
        UIManager.individuo  = numeroIndividuo + 1;
        UIManager.especie    = numeroEspecie;

        if (companionEvolutivo == null && numeroIndividuo < tamanioPoblacion && ambientes == null)///si el de cada ambiente

        /*companionEvolutivo = GameObject.FindGameObjectWithTag("Companion").GetComponent<CompanionEvolutivo>();
         * companionEvolutivo.setRed(poblacion[numeroIndividuo]);
         * companionEvolutivo.setNumeroIndividuo(numeroIndividuo);
         * // companionEvolutivo.GenerarRed(maximoNeuronas);*/
        {
            ambientes = GameObject.FindGameObjectWithTag("Ambiente");
            for (int i = 0; i < ambientes.transform.childCount; i++)
            {
                companionEvolutivo = BusquedaHijos.buscarHijoPorTag(ambientes.transform.GetChild(i).gameObject, "Companion").GetComponent <CompanionEvolutivo>();
                // Debug.Log("numero inviduo: " + numeroIndividuo);
                GenomaNEAT aux = poblacion[numeroIndividuo];
                companionEvolutivo.individuo = numeroIndividuo;
                companionEvolutivo.setRed(aux);
                tiempoDePrueba = tiempoPruebaOriginal;
                numeroIndividuo++;
                AmbienteEvolutivo ambienteLocal = ambientes.transform.GetChild(i).GetComponent <AmbienteEvolutivo>();
                ambienteLocal.tiempoPruebaOriginal = tiempoPruebaOriginal;
                ambienteLocal.tiempoDePrueba       = tiempoPruebaOriginal;
                ambienteLocal.listo = true;
            }
            companionEvolutivo = GameObject.FindGameObjectWithTag("Companion").GetComponent <CompanionEvolutivo>();
        }


        if (numeroIndividuo >= tamanioPoblacion && ambientes.GetComponent <Gimnasio>().Termino())
        {
            //Debug.Log("Siguiente paso");
            calificar();
            seleccion();
            List <GenomaNEAT> nuevaPoblacion = new List <GenomaNEAT>();
            foreach (List <GenomaNEAT> especie in especies)
            {
                nuevaPoblacion.Add(cruceEspecie(especie));
            }
            while (nuevaPoblacion.Count < tamanioPoblacion)
            {
                int seleccion = Random.Range(0, especies.Count - 1);
                //Debug.Log("Especies: " + especies.Count + " Seleccion: " + seleccion);
                nuevaPoblacion.Add(cruceEspecie(especies[seleccion]));
            }
            especies = new List <List <GenomaNEAT> >();
            foreach (GenomaNEAT hijo in nuevaPoblacion)
            {
                aniadirAEspecies(hijo);
            }
            numeroGeneracion++;
            numeroIndividuo = 0;
            Debug.Log(estadoPoblacion());
            poblacion = nuevaPoblacion;
            //aniadirAEspecies(todos)
            // ambientes.GetComponent<Gimnasio>().RecargarTodo();
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
            // Debug.Log("Siguiente paso 2");
        }
    }