Lab 01#27
Conversation
| public static void main(String[] args) { | ||
| Map<String, Quiz> quizMap = getQuizMap(); | ||
| Scanner sc = new Scanner(System.in); | ||
| System.out.println("Введите название теста..."); |
There was a problem hiding this comment.
"Учитель врывается в класс и решает провести плановую проверку знаний, большими буквами на доске пишет название теста"
| ApplesTaskGenerator applesTaskGenerator = new ApplesTaskGenerator( | ||
| 0, 10); | ||
|
|
||
| List<Task> AnimalTasksPool = List.of( |
There was a problem hiding this comment.
Если вы про перенос, то Done.
| this.answer = other.answer; | ||
| } | ||
|
|
||
| @Override |
There was a problem hiding this comment.
Наверное, можно было объединить с TextTask.
There was a problem hiding this comment.
Пока не придумал как, у них ответ разного типа и в MathTask есть генератор, а в TextTask - нет.
| @@ -0,0 +1,7 @@ | |||
| package by.marmotikon.quizer.tasks.math_tasks; | |||
|
|
|||
| public class AnimalsTask extends AbstractMathTask { | |||
There was a problem hiding this comment.
Больше похоже на текстовую таску.
| private final ArrayList<Task> tasks; | ||
| Map<Result, Integer> Answers; | ||
| int index = -1; | ||
| private boolean isFinished = false; |
There was a problem hiding this comment.
Думаю, можно было обойтись Answers[WRONG] + Answers[OK] == tasks.size()
| answer = new Number(b.getValue() * a.toInt(), precision); | ||
| } | ||
| case DIVISION -> { | ||
| while (b.isZero()) { |
There was a problem hiding this comment.
Вот из-за того, что ты не сравнивашь на epsilon у тебя могут генерироваться примеры вида 0/0. Это касается и второго типа тасок.
| import java.util.*; | ||
|
|
||
| public class GroupTaskGenerator implements Task.TaskGenerator { | ||
| private final Vector<Task.TaskGenerator> generators; |
There was a problem hiding this comment.
Это не C++! В данном месте роли не играет, но лучше по-дефолту юзать ArrayList.
| public PoolTaskGenerator(boolean allowDuplicate, Collection<Task> tasks) { | ||
| this.allowDuplicate = allowDuplicate; | ||
| this.tasks = tasks.stream().toList(); | ||
| System.out.println(this.tasks.size() + " size"); |
| PoolTaskGenerator(boolean allowDuplicate, Task... tasks) { | ||
| this.allowDuplicate = allowDuplicate; | ||
| this.tasks = List.of(tasks); | ||
| freeTaskIndexes = Stream.iterate(0, n -> n + 1) |
There was a problem hiding this comment.
Изначально могут совпадать таски их тоже надо отфильтровать под флагом allowDuplicate.
| * @return случайная задача из списка | ||
| */ | ||
| public Task generate() { | ||
| System.out.println("freeTaks size " + freeTaskIndexes.size()); |
There was a problem hiding this comment.
Лучше было бы сделать randomShuffle, так мы кушаем доп память на список индексов.
|
Тут много комменатриев, но снимал я за:
Допы:
В итоге 8.15. В остальном классная работа и почти правильное деление)). +5 за допы. |
No description provided.