|
|
|
|
@ -24,11 +24,18 @@ public class JuniorHighGenerator implements QuestionGenerator {
|
|
|
|
|
|
|
|
|
|
private String generateSingleQuestion() {
|
|
|
|
|
List<String> parts = new ArrayList<>();
|
|
|
|
|
int operandCount = random.nextInt(4) + 2;
|
|
|
|
|
int operandCount = random.nextInt(5) + 1;
|
|
|
|
|
parts = generateBase(operandCount, parts);
|
|
|
|
|
// hasAdvancedOp用以检测下面的循环是否加入了高级运算符,如果没有就启动保底
|
|
|
|
|
boolean hasAdvancedOp = false;
|
|
|
|
|
if (operandCount > 2 && random.nextBoolean()) {
|
|
|
|
|
if (operandCount == 1) {
|
|
|
|
|
if ("平方".equals(ADVANCED_OPS[random.nextInt(ADVANCED_OPS.length)])) {
|
|
|
|
|
parts.add("平方");
|
|
|
|
|
} else {
|
|
|
|
|
parts.set(0, "开根号" + parts.get(0));
|
|
|
|
|
}
|
|
|
|
|
hasAdvancedOp = true;
|
|
|
|
|
} else {
|
|
|
|
|
// 遍历查找左括号的合理位置
|
|
|
|
|
for(int i = 0; i < parts.size() - 2; i++) {
|
|
|
|
|
// 该位置要为操作数且随机添加括号
|
|
|
|
|
|