private void Breed() {

		int i,n;

		SumFitness = GetSumFitness();
		NewFloys = new Efloy[Efloys.length];

		for (i=0;i<Efloys.length;i++) {
			// deb.showMsg("Making kid #"+i);
			NewFloys[i] = Mate();
			NewFloys[i].id = i;
		}


		if (Efloys[0].SurviversFactor > 0) {
			SortFloys(Efloys);
			SortFloys(NewFloys);
			n = (int) (Efloys.length*Efloys[0].SurviversFactor/100);
			for (i=0;i<Efloys.length;i++) {
				if (i > (n-1))
					Efloys[i] = NewFloys[i-n];
			}
		}
		else {
			for (i=0;i<Efloys.length;i++)
					Efloys[i] = NewFloys[i];
		}

	}