public WordsWithLetterQuestionBuilder(int nPacks, int nCorrect = 1, int nWrong = 0, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.nCorrect = nCorrect; this.nWrong = nWrong; this.parameters = parameters; }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; int nPacks = 10; int nCorrect = 4; int nWrong = 4; var builderParams = new QuestionBuilderParameters(); switch (Variation) { case FastCrowdVariation.Alphabet: builder = new AlphabetQuestionBuilder(); break; case FastCrowdVariation.Counting: builder = new OrderedWordsQuestionBuilder(WordDataCategory.Number, builderParams, false); break; case FastCrowdVariation.LetterName: // Only base letters builderParams.letterFilters.excludeDiacritics = LetterFilters.ExcludeDiacritics.All; builderParams.wrongSeverity = SelectionSeverity.AsManyAsPossible; builder = new RandomLettersQuestionBuilder(nPacks, 5, 0, parameters: builderParams); break; case FastCrowdVariation.LetterForm: // @note: we pass 4 as nCorrect, so we get all the four forms of a single letter, which will be shown one after the other builder = new RandomLetterAlterationsQuestionBuilder(nPacks, 4, nWrong, letterAlterationFilters: LetterAlterationFilters.FormsOfSingleLetter); break; case FastCrowdVariation.BuildWord: builderParams.wordFilters.excludeColorWords = true; builderParams.wordFilters.requireDrawings = true; builderParams.wordFilters.excludeDipthongs = true; builder = new LettersInWordQuestionBuilder(nPacks, nWrong: nWrong, useAllCorrectLetters: true, parameters: builderParams); break; case FastCrowdVariation.Word: builderParams.wordFilters.excludeColorWords = true; builderParams.wordFilters.requireDrawings = true; builder = new RandomWordsQuestionBuilder(nPacks, nCorrect, nWrong, parameters: builderParams); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
QuestionBuilderParameters SetupBuilderParameters() { var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = correctHistory; builderParams.wrongChoicesHistory = wrongHistory; builderParams.correctSeverity = correctSeverity; builderParams.wrongSeverity = wrongSeverity; builderParams.useJourneyForCorrect = journeyEnabledForBase; builderParams.useJourneyForWrong = journeyEnabledForWrong; builderParams.sortPacksByDifficulty = sortPacksByDifficulty; return(builderParams); }
public RandomLettersQuestionBuilder(int nPacks, int nCorrect = 1, int nWrong = 0, bool firstCorrectIsQuestion = false, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.nCorrect = nCorrect; this.nWrong = nWrong; this.firstCorrectIsQuestion = firstCorrectIsQuestion; this.parameters = parameters; }
public WordsBySunMoonQuestionBuilder(int nPacks, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.parameters = parameters; // Forced parameters this.parameters.wordFilters.excludeArticles = false; }
public WordsByFormQuestionBuilder(int nPacks, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.parameters = parameters; // Forced parameters this.parameters.wordFilters.excludePluralDual = false; }
private IQuestionBuilder Setup_MatchLettersToWord_Form_Builder() { SimultaneosQuestions = 2; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.sortPacksByDifficulty = false; // TODO: handle forms using the returned letters instead return(new LetterFormsInWordsQuestionBuilder( nPacksPerRound: SimultaneosQuestions, nRounds: NumberOfRounds, parameters: builderParams)); }
QuestionBuilderParameters SetupFakeGame() { InitialisePlaySession(); var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = correctHistory; builderParams.wrongChoicesHistory = wrongHistory; builderParams.correctSeverity = correctSeverity; builderParams.wrongSeverity = wrongSeverity; builderParams.useJourneyForCorrect = journeyEnabledForBase; builderParams.useJourneyForWrong = journeyEnabledForWrong; return(builderParams); }
private IQuestionBuilder Setup_QuestionAnReply_Builder() { var builderParams = new QuestionBuilderParameters(); builderParams.sortPacksByDifficulty = false; SimultaneosQuestions = 1; int nWrongs = 4; return(new PhraseQuestionsQuestionBuilder( SimultaneosQuestions * NumberOfRounds, // totale questions nWrongs, // wrong additional answers parameters: builderParams)); }
public AlphabetQuestionBuilder(QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } parameters.letterFilters.excludeLetterVariations = true; parameters.letterFilters.excludeDiacritics = true; parameters.wordFilters.excludeLetterVariations = true; parameters.wordFilters.excludeDiacritics = true; this.parameters = parameters; }
public CommonLettersInWordQuestionBuilder(int nPacks, int nMinCommonLetters = 1, int nMaxCommonLetters = 1, int nWrong = 0, int nWords = 1, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.nMinCommonLetters = nMinCommonLetters; this.nMaxCommonLetters = nMaxCommonLetters; this.nWrong = nWrong; this.nWords = nWords; this.parameters = parameters; }
private IQuestionBuilder Setup_SunMoonLetter_Builder() { SimultaneosQuestions = 2; Answers = 2; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.sortPacksByDifficulty = false; return(new LettersBySunMoonQuestionBuilder( SimultaneosQuestions * NumberOfRounds * 2, builderParams )); }
private IQuestionBuilder Setup_WordArticle_Builder() { SimultaneosQuestions = 2; Answers = 2; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wordFilters.excludeArticles = false; builderParams.sortPacksByDifficulty = false; return(new WordsByArticleQuestionBuilder( Answers * NumberOfRounds * 3, builderParams)); }
private IQuestionBuilder Setup_SingularDualPlural_Builder() { SimultaneosQuestions = 3; Answers = 2; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wordFilters.excludePluralDual = false; builderParams.sortPacksByDifficulty = false; return(new WordsByFormQuestionBuilder( SimultaneosQuestions * NumberOfRounds * 4, builderParams)); }
public RandomWordsQuestionBuilder(int nPacks, int nCorrect = 1, int nWrong = 0, bool firstCorrectIsQuestion = false, Db.WordDataCategory category = Db.WordDataCategory.None, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.nCorrect = nCorrect; this.nWrong = nWrong; this.firstCorrectIsQuestion = firstCorrectIsQuestion; this.category = category; this.parameters = parameters; }
public WordsInPhraseQuestionBuilder(int nPacks, int nCorrect = 1, int nWrong = 0, bool useAllCorrectWords = false, bool usePhraseAnswersIfFound = false, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.nCorrect = nCorrect; this.nWrong = nWrong; this.useAllCorrectWords = useAllCorrectWords; this.usePhraseAnswersIfFound = usePhraseAnswersIfFound; this.parameters = parameters; }
public LettersInWordQuestionBuilder(int nPacks, int nCorrect = 1, int nWrong = 0, bool useAllCorrectLetters = false, Db.WordDataCategory category = Db.WordDataCategory.None, int maximumWordLength = 20, QuestionBuilderParameters parameters = null) { if (parameters == null) { parameters = new QuestionBuilderParameters(); } this.nPacks = nPacks; this.nCorrect = nCorrect; this.nWrong = nWrong; this.useAllCorrectLetters = useAllCorrectLetters; this.category = category; this.maximumWordLength = maximumWordLength; this.parameters = parameters; }
private IQuestionBuilder Setup_LetterName_Builder() { SimultaneosQuestions = 1; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongSeverity = SelectionSeverity.MayRepeatIfNotEnough; builderParams.sortPacksByDifficulty = false; builderParams.letterFilters.excludeDiacritics = LetterFilters.ExcludeDiacritics.All; return(new RandomLettersQuestionBuilder( SimultaneosQuestions * NumberOfRounds, // Total Answers 1, // CorrectAnswers 4, // WrongAnswers firstCorrectIsQuestion: true, parameters: builderParams)); }
private IQuestionBuilder Setup_LetterAny_Builder() { SimultaneosQuestions = 1; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongSeverity = SelectionSeverity.MayRepeatIfNotEnough; builderParams.sortPacksByDifficulty = false; return(new RandomLetterAlterationsQuestionBuilder( SimultaneosQuestions * NumberOfRounds, // Total Answers 1, // CorrectAnswers 4, // WrongAnswers letterAlterationFilters: LetterAlterationFilters.FormsAndPhonemesOfMultipleLetters_OneForm, avoidWrongLettersWithSameSound: true, parameters: builderParams)); }
private IQuestionBuilder Setup_CompleteWord_Builder() { SimultaneosQuestions = 1; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongSeverity = SelectionSeverity.MayRepeatIfNotEnough; builderParams.wordFilters.requireDrawings = true; builderParams.sortPacksByDifficulty = false; return(new LettersInWordQuestionBuilder( SimultaneosQuestions * NumberOfRounds, // Total Answers nCorrect: 1, // Always one! nWrong: 4, // WrongAnswers useAllCorrectLetters: false, parameters: builderParams)); }
private IQuestionBuilder Setup_SelectPronuncedWord_Builder() { var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongSeverity = SelectionSeverity.MayRepeatIfNotEnough; builderParams.sortPacksByDifficulty = false; SimultaneosQuestions = 1; int nCorrect = 1; int nWrong = 3; return(new RandomWordsQuestionBuilder( SimultaneosQuestions * NumberOfRounds, nCorrect, nWrong, firstCorrectIsQuestion: true, parameters: builderParams)); }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; int nPacks = 7; // One Extra for tutorial nCorrect = 1; int nWrong = 4; var builderParams = new QuestionBuilderParameters(); builderParams.wordFilters.excludeColorWords = true; builderParams.wordFilters.requireDrawings = true; switch (Variation) { case ScannerVariation.OneWord: nCorrect = 1; nWrong = 4; builder = new RandomWordsQuestionBuilder(nPacks, nCorrect, nWrong, parameters: builderParams); break; case ScannerVariation.MultipleWords: if (Difficulty < 0.5f) { nCorrect = 3; } else { nCorrect = 5; } nWrong = 0; builder = new RandomWordsQuestionBuilder(nPacks, nCorrect, nWrong, parameters: builderParams); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
private IQuestionBuilder Setup_WordsWithLetter_Builder() { // This assessment changes behaviour based on the current stage var jp = AppManager.I.Player.CurrentJourneyPosition; switch (jp.Stage) { case 1: SimultaneosQuestions = 1; break; case 2: case 3: SimultaneosQuestions = 2; break; case 4: case 5: case 6: default: SimultaneosQuestions = 3; break; } int nWrong = 6 - SimultaneosQuestions; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongSeverity = SelectionSeverity.MayRepeatIfNotEnough; builderParams.sortPacksByDifficulty = false; builderParams.letterEqualityStrictness = LetterEqualityStrictness.WithVisualForm; return(new WordsWithLetterQuestionBuilder( NumberOfRounds, SimultaneosQuestions, 1, // Correct Answers nWrong, // Wrong Answers parameters: builderParams )); }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; var builderParams = new QuestionBuilderParameters(); switch (Variation) { case MazeVariation.LetterName: builderParams.letterFilters.excludeDiacritics = LetterFilters.ExcludeDiacritics.All; builderParams.wordFilters.excludeDiacritics = true; builderParams.letterFilters.excludeLetterVariations = LetterFilters.ExcludeLetterVariations.AllButAlefHamza; builder = new RandomLettersQuestionBuilder(7, 1, parameters: builderParams); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
private IQuestionBuilder Setup_MatchLettersToWord_Builder() { // This assessment changes behaviour based on the current stage var jp = AppManager.I.Player.CurrentJourneyPosition; switch (jp.Stage) { case 1: SimultaneosQuestions = 1; break; case 2: case 3: SimultaneosQuestions = 2; break; case 4: case 5: case 6: default: SimultaneosQuestions = 3; break; } int nWrong = 6 - SimultaneosQuestions; var builderParams = new QuestionBuilderParameters(); builderParams.correctChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongChoicesHistory = PackListHistory.RepeatWhenFull; builderParams.wrongSeverity = SelectionSeverity.MayRepeatIfNotEnough; builderParams.sortPacksByDifficulty = false; return(new LettersInWordQuestionBuilder( NumberOfRounds, SimultaneosQuestions, nCorrect: 1, nWrong: nWrong, useAllCorrectLetters: false, parameters: builderParams)); }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; int nPacks = 6; int nCorrect = 3; int nWrong = 8; var builderParams = new QuestionBuilderParameters(); switch (Variation) { case BalloonsVariation.Spelling: builderParams.wordFilters.excludeColorWords = true; builderParams.wordFilters.requireDrawings = true; builder = new LettersInWordQuestionBuilder(nPacks, useAllCorrectLetters: true, nWrong: nWrong, parameters: builderParams); break; case BalloonsVariation.Words: builderParams.wordFilters.excludeColorWords = true; builderParams.wordFilters.requireDrawings = true; builder = new RandomWordsQuestionBuilder(nPacks, 1, nWrong, firstCorrectIsQuestion: true, parameters: builderParams); break; case BalloonsVariation.LetterInWord: builderParams.wordFilters.excludeDipthongs = true; builder = new WordsWithLetterQuestionBuilder(nPacks, nPacksPerRound: 1, nCorrect: nCorrect, nWrong: nWrong, parameters: builderParams); break; case BalloonsVariation.Counting: builder = new OrderedWordsQuestionBuilder(Database.WordDataCategory.Number, null, false); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; var builderParams = new QuestionBuilderParameters(); switch (Variation) { case ReadingGameVariation.Alphabet: case ReadingGameVariation.DiacriticSong: 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 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 = new QuestionBuilderParameters(); 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, 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, letterAlterationFilters: LetterAlterationFilters.VisualFormsOfSingleLetter); break; case MissingLetterVariation.Phrase: builderParams.phraseFilters.requireWords = true; builderParams.phraseFilters.requireAtLeastTwoWords = true; builder = new WordsInPhraseQuestionBuilder(nPacks, nCorrect, nWrong, parameters: builderParams); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; int nPacks = 10; int nWrong = 4; var builderParams = new QuestionBuilderParameters(); switch (Variation) { case ThrowBallsVariation.LetterName: builderParams.letterFilters.excludeDiacritics = LetterFilters.ExcludeDiacritics.All; builder = new RandomLettersQuestionBuilder(nPacks, 1, nWrong: nWrong, firstCorrectIsQuestion: true, parameters: builderParams); break; case ThrowBallsVariation.LetterAny: var letterAlterationFilters = LetterAlterationFilters.FormsAndPhonemesOfMultipleLetters; builder = new RandomLetterAlterationsQuestionBuilder(nPacks, 1, nWrong: nWrong, letterAlterationFilters: letterAlterationFilters, parameters: builderParams); break; case ThrowBallsVariation.Word: builderParams.wordFilters.requireDrawings = true; builder = new RandomWordsQuestionBuilder(nPacks, 1, nWrong, firstCorrectIsQuestion: true, parameters: builderParams); break; case ThrowBallsVariation.BuildWord: builderParams.wordFilters.excludeDipthongs = true; builder = new LettersInWordQuestionBuilder(nPacks, maximumWordLength: 7, nWrong: nWrong, useAllCorrectLetters: true, parameters: builderParams); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }
public override IQuestionBuilder SetupBuilder() { IQuestionBuilder builder = null; int nPacks = 10; int nCorrect = 1; int nWrong = 6; var builderParams = new QuestionBuilderParameters(); switch (Variation) { case HideAndSeekVariation.LetterPhoneme: var letterAlterationFilters = LetterAlterationFilters.FormsAndPhonemesOfMultipleLetters_OneForm; builder = new RandomLetterAlterationsQuestionBuilder(nPacks, nCorrect, nWrong: nWrong, letterAlterationFilters: letterAlterationFilters, parameters: builderParams, avoidWrongLettersWithSameSound: true); break; default: throw new ArgumentOutOfRangeException(); } return(builder); }