package question; import java.util.Random; public class MiddleQuestionGenerator implements QuestionGenerator { private static final Random random = new Random(); private final QuestionGenerator primaryGenerator = new PrimaryQuestionGenerator(); @Override public Question generateQuestion() { Question q = primaryGenerator.generateQuestion(); if (random.nextBoolean()) { return new Question(q.getQuestion() + " ^ 2", evaluate(q.getQuestion() + "^2")); } else { return new Question("√" + q.getQuestion(), evaluate("Math.sqrt(" + q.getQuestion() + ")")); } } private String evaluate(String expr) { try { javax.script.ScriptEngineManager mgr = new javax.script.ScriptEngineManager(); javax.script.ScriptEngine engine = mgr.getEngineByName("JavaScript"); return String.valueOf(engine.eval(expr.replace("^", "**"))); } catch (Exception e) { return "?"; } } }