Ejemplo n.º 1
0
 /*
  * Generates a new wave preset with evolutionary
  * points increased by 5% in case if
  * no enemy reached the end in the previous run
  */
 public void upgradeWave()
 {
     if (enemiesPassed < 1)
     {
         /*
          * points = points + points * 5f / 100;
          * float[] chromosome = new float[4];
          * for (int i = 0; i < 4; i++) {
          *  chromosome[i] = Random.Range((float)0, (float)1);
          * }*/
         points               = points + points * 5f / 100;
         wavePreset           = new WavePreset(wavePreset.getChromosome(), points);
         waveDescription.text = "Wave " + waveNumber + "\n"
                                + wavePreset.getInfo();
     }
     else
     {
         historyWaves.Add(wavePreset);
         float[] ch      = wavePreset.getChromosome();
         string  history = "Chromosome: " + ch[0] + ", " + ch[1] + ", " + ch[2] + ", " + ch[3] + ", points: " + points + "\r\n";
         System.IO.File.AppendAllText("Data.txt", history);
         points = 2000;
         float[] chromosome = new float[4];
         for (int i = 0; i < 4; i++)
         {
             chromosome[i] = Random.Range((float)0, (float)1);
         }
         waveNumber           = 0;
         wavePreset           = new WavePreset(chromosome, 2000);
         waveDescription.text = "Wave " + waveNumber + "\n"
                                + wavePreset.getInfo();
     }
 }
Ejemplo n.º 2
0
 //sets a starting wave with 2000 evolutionary points
 public void setStartingWave()
 {
     float[] chromosome = new float[4];
     for (int i = 0; i < 4; i++)
     {
         chromosome[i] = Random.Range((float)0, (float)1);
     }
     wavePreset = new WavePreset(chromosome, 2000);
 }
Ejemplo n.º 3
0
 //nethod that sets the wave to be spawned
 public void spawnWave(WavePreset _preset)
 {
     spawning    = false;
     preset      = _preset;
     spawnPoints = (int)preset.getCreepNumber();;
 }
Ejemplo n.º 4
0
    public void getFinalWave()
    {
        float futurePoints = 0;

        foreach (WavePreset wp in historyWaves)
        {
            futurePoints += wp.getPoints();
        }
        futurePoints /= historyWaves.Count;
        float max0 = 0;
        float max1 = 0;
        float max2 = 0;
        float max3 = 0;
        float mid0 = 0;
        float mid1 = 0;
        float mid2 = 0;
        float mid3 = 0;

        foreach (WavePreset wp in historyWaves)
        {
            mid0 += wp.getChromosome()[0];
        }
        mid0 /= historyWaves.Count;

        foreach (WavePreset wp in historyWaves)
        {
            mid2 += wp.getChromosome()[2];
        }
        mid2 /= historyWaves.Count;

        foreach (WavePreset wp in historyWaves)
        {
            mid1 += wp.getChromosome()[1];
        }
        mid1 /= historyWaves.Count;

        foreach (WavePreset wp in historyWaves)
        {
            mid3 += wp.getChromosome()[3];
        }
        mid3 /= historyWaves.Count;

        foreach (WavePreset wp in historyWaves)
        {
            if (wp.getChromosome()[0] > max0)
            {
                max0 = wp.getChromosome()[0];
            }
        }
        foreach (WavePreset wp in historyWaves)
        {
            if (wp.getChromosome()[1] > max1)
            {
                max1 = wp.getChromosome()[1];
            }
        }
        foreach (WavePreset wp in historyWaves)
        {
            if (wp.getChromosome()[2] > max2)
            {
                max2 = wp.getChromosome()[2];
            }
        }
        foreach (WavePreset wp in historyWaves)
        {
            if (wp.getChromosome()[3] > max3)
            {
                max3 = wp.getChromosome()[3];
            }
        }

        float[] finalChromosome = new float[4];


        finalChromosome[0] = max0 - Random.Range(0f, mid0);
        finalChromosome[1] = max1 - Random.Range(0f, mid1);
        finalChromosome[2] = max2 - Random.Range(0f, mid2);
        finalChromosome[3] = max3 - Random.Range(0f, mid3);

        finalWave = new WavePreset(finalChromosome, futurePoints);
        string history = "FinalChromosome: " + finalChromosome[0] + ", "
                         + finalChromosome[1] + ", " + finalChromosome[2] + ", "
                         + finalChromosome[3] + ", points: " + futurePoints + "\r\n";

        System.IO.File.AppendAllText("Data.txt", history);
    }