public void addAssone(NeuroneStruct neuroneLink, Double peso)
 {
     AssoneStruct assone = new AssoneStruct();
     assone.inizializza(peso, neuroneLink);
     assoni.Add(assone);
     return;
 }
 public void inizializza(Double _peso, NeuroneStruct _neuroneLink)
 {
     peso = _peso;
     neuroneLink = _neuroneLink;
     return;
 }
 private void AddAssone(NeuroneStruct neurone, NeuroneStruct neuroneLink, Double peso)
 {
     neurone.addAssone(neuroneLink, peso);
     return;
 }
 private void AddNeurone(thresholdFunction funzione,  int id, TipoNeurone tipo)
 {
     NeuroneStruct neurone=new NeuroneStruct();
     neurone.inizializza(funzione,id,tipo);
     return;
 }
        public void generaPercettron()
        {
            NeuroneStruct neurone;

            Random generatoreCasuale=new Random();

            for (int i = 0; i < numNeuroniAttuatori; i++)
            {
                neurone = new NeuroneStruct();
                neurone.inizializza(Threshold.getRandomDelegate(), NEAT_numID, TipoNeurone.NActuator);
                neuroni.Add(neurone);
                neuroniA.Add(neurone);
                NEAT_numID++;
            }

            for (int i = 0; i < numNeuroniSensori; i++)
            {
                neurone = new NeuroneStruct();
                neurone.inizializza(Threshold.getRandomDelegate(), NEAT_numID, TipoNeurone.NSensor);
                foreach(NeuroneStruct n in neuroniA)
                    neurone.addAssone(n, generatoreCasuale.NextDouble());
                neuroni.Add(neurone);
                NEAT_numID++;
            }

            return;
        }