Exemplo n.º 1
0
        static public Quiz getQuiz(int beginRank, int endRank, int numberOfVariant)
        {
            List <DictionaryItem> currentList = itemList.Where(x => (x.rank >= beginRank) && (x.rank <= endRank)).ToList();

            double representFrequency = TotalFrequency(currentList) / TotalFrequency(itemList);
            Quiz   result             = new Quiz();

            Random ran = new Random();

            int            item         = ran.Next(currentList.Count);
            DictionaryItem trueResponse = currentList[item];

            result.word               = trueResponse.word;
            result.ansverNumber       = ran.Next(numberOfVariant);
            result.reprezentNumber    = currentList.Count;
            result.reprezentFrecuency = representFrequency;
            result.rank               = trueResponse.rank;

            for (int i = 0; i < numberOfVariant; i++)
            {
                if (i == result.ansverNumber)
                {
                    result.translationList.Add(trueResponse.translation);
                }
                else
                {
                    List <string> listOfVar = GetVariantList(currentList, trueResponse, result);
                    if (listOfVar.Count > 0)
                    {
                        result.translationList.Add(listOfVar[ran.Next(listOfVar.Count)]);
                    }
                    else
                    {
                        List <string> listOfVar2 = GetVariantList(itemList, trueResponse, result);
                        if (listOfVar2.Count > 0)
                        {
                            result.translationList.Add(listOfVar2[ran.Next(listOfVar.Count)]);
                        }
                        else
                        {
                            result.translationList.Add("");
                        }
                    }
                }
            }
            return(result);
        }
Exemplo n.º 2
0
 static private List <string> GetVariantList(List <DictionaryItem> DictList, DictionaryItem trueResponse, Quiz CurrentResult)
 {
     return(DictList.Where(x => ((x.pos == trueResponse.pos) && (x.translation != trueResponse.translation)))
            .Where(x => (isInto(CurrentResult.translationList, x.translation) == false))
            .Select(x => x.translation).ToList());
 }