diff --git a/src/main/java/me/trouper/Functions/Complexers.java b/src/main/java/me/trouper/Functions/Complexers.java new file mode 100644 index 0000000..479f0af --- /dev/null +++ b/src/main/java/me/trouper/Functions/Complexers.java @@ -0,0 +1,33 @@ +package me.trouper.Functions; + +import java.util.Random; + +import static me.trouper.Functions.Eval.eval; + +public class Complexers { + public static String divide(int i) { + Random random = new Random(); + int factor = random.nextInt(9)+1; + int doubled = i * factor; + String result = "(" + doubled + "/" + factor + ")"; + + if (eval(result) == i) { + return result; + } + return "(" + i + ")"; + } + + public static String root(int i) { + int squared = (int) Math.pow(i,2); + String result = "sqrt(" + squared + ")"; + if (eval(result) == i){ + return result; + } + return "(" + i + ")"; + } + + /*public static String power(int i) { + int + } + */ +} diff --git a/src/main/java/me/trouper/Functions/Eval.java b/src/main/java/me/trouper/Functions/Eval.java new file mode 100644 index 0000000..1a30ee5 --- /dev/null +++ b/src/main/java/me/trouper/Functions/Eval.java @@ -0,0 +1,11 @@ +package me.trouper.Functions; + +import net.objecthunter.exp4j.Expression; +import net.objecthunter.exp4j.ExpressionBuilder; + +public class Eval { + public static double eval(String expression) { + Expression exp = new ExpressionBuilder(expression).build(); + return exp.evaluate(); + } +} diff --git a/src/main/java/me/trouper/Main.java b/src/main/java/me/trouper/Main.java index 979eb7f..ebc1a5b 100644 --- a/src/main/java/me/trouper/Main.java +++ b/src/main/java/me/trouper/Main.java @@ -1,10 +1,12 @@ package me.trouper; -import net.objecthunter.exp4j.Expression; -import net.objecthunter.exp4j.ExpressionBuilder; + +import me.trouper.Functions.Complexers; import java.util.Random; import java.util.Scanner; +import static me.trouper.Functions.Eval.eval; + public class Main { public static void main(String[] args) { @@ -43,19 +45,15 @@ public class Main { while (eval(expression.toString()) != target) { System.out.println("Current: " + eval(expression.toString())); int ri = random.nextInt(9)+1; + int op = random.nextInt(2); System.out.println("Random: " + ri); if (eval(expression.toString()) < target) { - int squared = (int) Math.pow(ri,2); - String back = "sqrt(" + squared + ")"; - expression.append("+").append(back); + expression.append("+").append((op == 0) ? Complexers.divide(ri) : Complexers.root(ri)); System.out.println("Less than"); } if (eval(expression.toString()) > target) { - int f = random.nextInt(9)+1; - int doubled = ri * f; - String back = "(" + doubled + "/" + f +")"; - expression.insert(0,"("); - expression.append(")").append("-").append(back); + expression.insert(0,"(").append(")"); + expression.append("-").append((op == 0) ? Complexers.divide(ri) : Complexers.root(ri)); System.out.println("Greater than"); } } @@ -66,36 +64,5 @@ public class Main { return expression.toString(); } - public static double eval(String expression) { - Expression exp = new ExpressionBuilder(expression).build(); - return exp.evaluate(); - } -/* - public static void main(String[] args) { - Scanner reader = new Scanner(System.in); - while (true) { - System.out.println("Enter a target Integer: "); - if (reader.hasNextInt()) { - int target = reader.nextInt(); - String obfuscatedExpression = generateObfuscatedExpression(target); - Expression exp = new ExpressionBuilder(obfuscatedExpression).build(); - if (exp.evaluate() == target) { - System.out.println("Target Integer: " + target + "\n" + - "Output is Verified Correct!\n" + - "Expression: " + obfuscatedExpression); - } else { - System.out.println("Target Integer: " + target + "\n" + - "INCORRECT OUTPUT GENERATED!\n" + - "Expression: " + obfuscatedExpression); - } - } else { - System.out.println("Exiting the program."); - break; - } - } - - reader.close(); - } - */ }