//Todo Criteria so machen dass man die gewichtung nur einmal für alle ändern muss
        /// <summary>
        /// returns p count of  Entries with 4 Criteria. The values of the Criteria are uniformly distributed(random).
        /// </summary>
        /// <param name="p">how many entries to generate</param>
        /// <returns>entries generated by random</returns>
        public static List <Participant> DummyEntries(IValueGenerator valueGenerator, int p, int numHet, int dimHet, int numHom, int dimHom, IRule _rule = null)
        {
            List <Participant> loEntries = new List <Participant>();

            List <float>[] values = new List <float> [(numHet * dimHet) + (numHom * dimHom)]; // store values here
            for (int i = 0; i < (numHet * dimHet) + (numHom * dimHom); i++)
            {
                // generate values for one specific dimension of a criterion for p players
                values[i] = valueGenerator.GenerateValues(0, 1, p);
            }

            for (int i = 0; i < p; i++)
            {
                System.Console.Out.WriteLine("Generating participant " + i + "..");
                List <Criterion> loCriteria = new List <Criterion>();
                //pseudoCriteria
                for (int j = 1; j <= numHet; j++)
                {
                    SpecificCriterion c = new Criteria.SpecificCriterion("Khet" + j, dimHet, 0, 1, false, 1);
                    loCriteria.Add(c);
                    for (int k = 1; k <= dimHet; k++)
                    {
                        c.Value[k - 1] = values[(j * k) - 1][i];
                    }
                }
                for (int j = 1; j <= numHom; j++)
                {
                    SpecificCriterion c = new Criteria.SpecificCriterion("Khom" + j, dimHom, 0, 1, true, 1);
                    loCriteria.Add(c);
                    for (int k = 1; k <= dimHom; k++)
                    {
                        c.Value[k - 1] = values[((numHet * dimHet) + j * k) - 1][i];
                    }
                }
                Participant participant = new Participant(loCriteria);
                loEntries.Add(participant);
            }

            if (_rule != null)
            {
                foreach (Participant part in loEntries)
                {
                    _rule.AdjustParticipant(part);
                }
            }
            return(loEntries);
        }