Untitled
unknown
plain_text
a year ago
4.1 kB
3
Indexable
``` // например определим class QuizBot { final BotDifficulty difficulty; final Random _random = Random(); QuizBot(this.difficulty); // пример, каким может метод для генерации времени ответа бота (генерируем время ответа от 1 до 10 секунд, т.е. +1000 чтобы не было 0) Duration generateAnswerTime() { return Duration(milliseconds: _random.nextInt(9000) + 1000); } } // пример, каким может быть метод для определения, выберет ли бот правильный ответ по своей вероятности bool chooseCorrectAnswer() { double probability; switch (difficulty) { case BotDifficulty.easy: probability = 0.2; break; case BotDifficulty.medium: probability = 0.5; case BotDifficulty.hard: probability = 0.8; break; } //генерируем случайное число и сравниваем с вероятностью (т.е. чем меньше вероятность бота, тем вероятнее что рандом будет больше) return _random.nextDouble() < probability; } // метод для выбора индекса ответа ( int chooseAnswerIndex(int totalAnswers, int correctAnswerIndex) { if (chooseCorrectAnswer()) { return correctAnswerIndex; // Выбираем правильный ответ если рандом оказался меньше, иначе выбираем любой из неправильных ответов } else { int randomIndex; do { randomIndex = _random.nextInt(totalAnswers); } while (randomIndex == correctAnswerIndex); return randomIndex; } } // пример, каким может метод для генерации времени ответа бота (генерируем время ответа от 1 до 10 секунд, т.е. +1000 чтобы не было 0) Duration generateAnswerTime() { return Duration(milliseconds: _random.nextInt(9000) + 1000); } } // пример, каким может быть метод для определения, выберет ли бот правильный ответ по своей вероятности bool chooseCorrectAnswer() { double probability; switch (difficulty) { case BotDifficulty.easy: probability = 0.2; break; case BotDifficulty.medium: probability = 0.5; case BotDifficulty.hard: probability = 0.8; break; } //генерируем случайное число и сравниваем с вероятностью (т.е. чем меньше вероятность бота, тем вероятнее что рандом будет больше) return _random.nextDouble() < probability; } // метод для выбора индекса ответа ( int chooseAnswerIndex(int totalAnswers, int correctAnswerIndex) { if (chooseCorrectAnswer()) { return correctAnswerIndex; // Выбираем правильный ответ если рандом оказался меньше, иначе выбираем любой из неправильных ответов } else { int randomIndex; do { randomIndex = _random.nextInt(totalAnswers); } while (randomIndex == correctAnswerIndex); return randomIndex; } } //теперь просто допустим QuizBot easyBot = QuizBot(BotDifficulty.easy); // у нас 4 варианта ответа, пусть как пример правильный ответ 2ой int totalAnswers = 4; int correctAnswerIndex = 2; //ну и в зависимости от выбранной сложности, можно допустим вызывать для каждого вопроса easyBot.chooseAnswerIndex(totalAnswers, correctAnswerIndex)}'); ```
Editor is loading...
Leave a Comment