public void WordsInPhraseTest() { var builderParams = SetupFakeGame(); var builder = new WordsInPhraseQuestionBuilder(nPacks: nPacks, nCorrect: nCorrect, nWrong: nWrong, useAllCorrectWords: false, usePhraseAnswersIfFound: true, parameters: builderParams); builder.CreateAllQuestionPacks(); }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; var builderParams = InitQuestionBuilderParamaters(); switch (Variation) { case ReadingGameVariation.SongAlphabet: case ReadingGameVariation.SongDiacritics: builder = new EmptyQuestionBuilder(); break; case ReadingGameVariation.ReadingGame_Words: builderParams.wordFilters.requireDrawings = true; builderParams.phraseFilters.requireAnswersOrWords = true; builder = new WordsInPhraseQuestionBuilder(nPacks: 10, nCorrect: 1, nWrong: 6, usePhraseAnswersIfFound: true, parameters: builderParams); break; case ReadingGameVariation.Song_Word_Animals: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.Animals); break; case ReadingGameVariation.Song_Word_Nature: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.Nature); break; case ReadingGameVariation.Song_Word_Home: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.Home); break; case ReadingGameVariation.Song_Word_ObjectsClothes: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.Objects, WordDataCategory.Clothes); break; case ReadingGameVariation.Song_Word_City: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.City); break; case ReadingGameVariation.Song_Word_Family: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.Family); break; case ReadingGameVariation.Song_Word_Food: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.Food); break; case ReadingGameVariation.Song_Word_Body: builder = CreateCategoryGameBuilder(builderParams, WordDataCategory.Body); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
public int N_ROUNDS = 15; // a few more than the base line to allow for more errors public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; int nPacks = N_ROUNDS; int nCorrect = 1; int nWrong = 5; var builderParams = InitQuestionBuilderParamaters(); switch (Variation) { case MissingLetterVariation.LetterInWord: // Find a letter with the given form inside the word (no diacritics) // wrong answers are other letters in different forms & diacritics builderParams.letterFilters.excludeDiacritics = LetterFilters.ExcludeDiacritics.All; builderParams.letterFilters.excludeDiphthongs = true; builderParams.wordFilters.excludeDipthongs = true; builder = new LetterAlterationsInWordsQuestionBuilder(nPacks, 1, parameters: builderParams, keepBasesOnly: false, letterAlterationFilters: LetterAlterationFilters.FormsAndPhonemesOfMultipleLetters); break; case MissingLetterVariation.LetterForm: // Find the correct form of the letter in the given word // wrong answers are the other forms of the same letter (not the same visually, tho) builder = new LetterAlterationsInWordsQuestionBuilder(nPacks, 1, parameters: builderParams, keepBasesOnly: false, letterAlterationFilters: LetterAlterationFilters.VisualFormsOfSingleLetter); break; case MissingLetterVariation.Phrase: builderParams.phraseFilters.requireWords = true; builderParams.phraseFilters.maxWords = 6; builderParams.wordFilters.requireDrawings = true; builder = new WordsInPhraseQuestionBuilder(nPacks, nCorrect, nWrong, usePhraseAnswersIfFound: true, parameters: builderParams); break; case MissingLetterVariation.Image: builderParams.wordFilters.requireDrawings = true; builder = new RandomWordsQuestionBuilder(nPacks, nCorrect, nWrong, firstCorrectIsQuestion: true, parameters: builderParams); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
public IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; var builderParams = new Teacher.QuestionBuilderParameters(); switch (Variation) { case ReadingGameVariation.AlphabetSong: builder = new EmptyQuestionBuilder(); break; case ReadingGameVariation.ReadAndAnswer: builderParams.wordFilters.excludeColorWords = true; builderParams.wordFilters.requireDrawings = true; builderParams.phraseFilters.requireAnswersOrWords = true; builder = new WordsInPhraseQuestionBuilder(nPacks: 10, nCorrect: 1, nWrong: 6, usePhraseAnswersIfFound: true, parameters: builderParams); break; } return(builder); }
public IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; int nPacks = 10; int nCorrect = 1; int nWrong = 5; var builderParams = new Teacher.QuestionBuilderParameters(); switch (Variation) { case MissingLetterVariation.MissingLetter: builder = new LettersInWordQuestionBuilder(nPacks, nCorrect, nWrong, parameters: builderParams); break; case MissingLetterVariation.MissingWord: builderParams.phraseFilters.requireWords = true; builderParams.phraseFilters.requireAtLeastTwoWords = true; builder = new WordsInPhraseQuestionBuilder(nPacks, nCorrect, nWrong, parameters: builderParams); break; } return(builder); }
private void SimulateQuestionBuilder(QuestionBuilderType builderType) { LetterAlterationFilters letterAlterationFilters = null; switch (lettersVariationChoice) { case 0: letterAlterationFilters = LetterAlterationFilters.FormsOfSingleLetter; break; case 1: letterAlterationFilters = LetterAlterationFilters.FormsOfMultipleLetters; break; case 2: letterAlterationFilters = LetterAlterationFilters.MultipleLetters; break; case 3: letterAlterationFilters = LetterAlterationFilters.PhonemesOfSingleLetter; break; case 4: letterAlterationFilters = LetterAlterationFilters.PhonemesOfMultipleLetters; break; case 5: letterAlterationFilters = LetterAlterationFilters.FormsAndPhonemesOfMultipleLetters; break; } var builderParams = SetupBuilderParameters(); IQuestionBuilder builder = null; switch (builderType) { case QuestionBuilderType.RandomLetters: builder = new RandomLettersQuestionBuilder(nPacks: nPacks, nCorrect: nCorrectAnswers, nWrong: nWrongAnswers, firstCorrectIsQuestion: true, parameters: builderParams); break; case QuestionBuilderType.RandomLetterForms: builder = new RandomLetterAlterationsQuestionBuilder(nPacks: nPacks, nCorrect: nCorrectAnswers, nWrong: nWrongAnswers, letterAlterationFilters: letterAlterationFilters, parameters: builderParams); break; case QuestionBuilderType.Alphabet: builder = new AlphabetQuestionBuilder(parameters: builderParams); break; case QuestionBuilderType.LettersBySunMoon: builder = new LettersBySunMoonQuestionBuilder(nPacks: nPacks, parameters: builderParams); break; case QuestionBuilderType.LettersByType: builder = new LettersByTypeQuestionBuilder(nPacks: nPacks, parameters: builderParams); break; case QuestionBuilderType.LettersInWord: builder = new LettersInWordQuestionBuilder(nRounds: nPacks, nPacksPerRound: nPacksPerRound, nCorrect: nCorrectAnswers, nWrong: nWrongAnswers, useAllCorrectLetters: true, parameters: builderParams); break; case QuestionBuilderType.LetterFormsInWords: builder = new LetterFormsInWordsQuestionBuilder(nPacks, nPacksPerRound, parameters: builderParams); break; case QuestionBuilderType.LetterAlterationsInWords: builder = new LetterAlterationsInWordsQuestionBuilder(nPacks, nPacksPerRound, parameters: builderParams, letterAlterationFilters: letterAlterationFilters); break; case QuestionBuilderType.CommonLettersInWords: builder = new CommonLetterInWordQuestionBuilder(nPacks: nPacks, nWrong: nWrongAnswers, parameters: builderParams); break; case QuestionBuilderType.RandomWords: builder = new RandomWordsQuestionBuilder(nPacks: nPacks, nCorrect: nCorrectAnswers, nWrong: nWrongAnswers, firstCorrectIsQuestion: true, parameters: builderParams); break; case QuestionBuilderType.OrderedWords: builderParams.wordFilters.allowedCategories = new[] { WordDataCategory.Numbers }; builder = new OrderedWordsQuestionBuilder(parameters: builderParams); break; case QuestionBuilderType.WordsWithLetter: builder = new WordsWithLetterQuestionBuilder(nRounds: nPacks, nPacksPerRound: nPacksPerRound, nCorrect: nCorrectAnswers, nWrong: nWrongAnswers, parameters: builderParams); break; case QuestionBuilderType.WordsByForm: builder = new WordsByFormQuestionBuilder(nPacks: nPacks, parameters: builderParams); break; case QuestionBuilderType.WordsByArticle: builder = new WordsByArticleQuestionBuilder(nPacks: nPacks, parameters: builderParams); break; case QuestionBuilderType.WordsBySunMoon: builder = new WordsBySunMoonQuestionBuilder(nPacks: nPacks, parameters: builderParams); break; case QuestionBuilderType.WordsInPhrase: builder = new WordsInPhraseQuestionBuilder(nPacks: nPacks, nCorrect: nCorrectAnswers, nWrong: nWrongAnswers, useAllCorrectWords: false, usePhraseAnswersIfFound: true, parameters: builderParams); break; case QuestionBuilderType.PhraseQuestions: builder = new PhraseQuestionsQuestionBuilder(nPacks: nPacks, nWrong: nWrongAnswers, parameters: builderParams); break; } var questionPacksGenerator = new QuestionPacksGenerator(); questionPacksGenerator.GenerateQuestionPacks(builder); }