Untitled
unknown
plain_text
a year ago
4.1 kB
6
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