From f54c043b252ee64eddd7b4d0e434f7d0cffde7ab Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Fri, 18 Mar 2016 15:16:42 -0400 Subject: Categorized examples --- .../java/bjc/utils/examples/DiabloItemGen.java | 88 ---------------------- .../utils/examples/DiceExpressionParserTest.java | 62 --------------- .../bjc/utils/examples/RandomStringExamples.java | 55 -------------- .../java/bjc/utils/examples/ShuntTester.java | 26 ------- .../java/bjc/utils/examples/TreeConstructTest.java | 47 ------------ .../examples/parsing/DiceExpressionParserTest.java | 62 +++++++++++++++ .../bjc/utils/examples/parsing/ShuntTester.java | 26 +++++++ .../utils/examples/parsing/TreeConstructTest.java | 47 ++++++++++++ .../bjc/utils/examples/rangen/DiabloItemGen.java | 88 ++++++++++++++++++++++ .../examples/rangen/RandomStringExamples.java | 55 ++++++++++++++ 10 files changed, 278 insertions(+), 278 deletions(-) delete mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/DiabloItemGen.java delete mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/DiceExpressionParserTest.java delete mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/RandomStringExamples.java delete mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java delete mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java create mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java create mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/ShuntTester.java create mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/TreeConstructTest.java create mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/DiabloItemGen.java create mode 100644 BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/RandomStringExamples.java (limited to 'BJC-Utils2/src/examples/java') diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/DiabloItemGen.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/DiabloItemGen.java deleted file mode 100644 index 8445056..0000000 --- a/BJC-Utils2/src/examples/java/bjc/utils/examples/DiabloItemGen.java +++ /dev/null @@ -1,88 +0,0 @@ -package bjc.utils.examples; - -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.FunctionalStringTokenizer; -import bjc.utils.gen.WeightedGrammar; - -/** - * Example showing how to use the weighted random number generator. - * - * @author ben - * - */ -public class DiabloItemGen { - private static WeightedGrammar parts = new WeightedGrammar<>(); - - private static void addCase(String rn, int prob, String prts) { - parts.addCase(rn, prob, - FunctionalStringTokenizer.fromString(prts).toList(s -> s)); - } - - private static void addInfixRules() { - String rn = ""; - - addCase(rn, 60, "sword"); - addCase(rn, 50, "armor"); - addCase(rn, 40, "rune"); - addCase(rn, 30, "scroll"); - addCase(rn, 20, "potion"); - addCase(rn, 10, "helm"); - } - - private static void addItemRules() { - String rn = ""; - - addCase(rn, 10, ""); - addCase(rn, 20, " "); - addCase(rn, 30, " "); - addCase(rn, 40, " "); - addCase(rn, 50, " "); - addCase(rn, 60, " "); - } - - private static void addPrefixRules() { - String rn = ""; - - addCase(rn, 60, "sturdy"); - addCase(rn, 50, "fine"); - addCase(rn, 40, "strong"); - addCase(rn, 30, "azure"); - addCase(rn, 20, "crimson"); - addCase(rn, 10, "phasing"); - } - - private static void addSuffixRules() { - String rn = ""; - - addCase(rn, 60, "of Health"); - addCase(rn, 50, "of Wealth"); - addCase(rn, 40, "of Life"); - addCase(rn, 30, "of the Jackal"); - addCase(rn, 20, "of Vitality"); - addCase(rn, 10, "of Ability"); - } - - public static void main(String[] args) { - parts.addRule(""); - addItemRules(); - - parts.addRule(""); - addSuffixRules(); - - parts.addRule(""); - addPrefixRules(); - - parts.addRule(""); - addInfixRules(); - - for (int i = 0; i < 100; i++) { - FunctionalList ls = parts.genList("", " "); - - StringBuilder sb = new StringBuilder(); - - ls.forEach(sp -> sb.append(sp)); - - System.out.println(sb.toString().replaceAll("\\s+", " ")); - } - } -} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/DiceExpressionParserTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/DiceExpressionParserTest.java deleted file mode 100644 index 002501b..0000000 --- a/BJC-Utils2/src/examples/java/bjc/utils/examples/DiceExpressionParserTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package bjc.utils.examples; - -import java.util.Scanner; - -import bjc.utils.dice.DiceExpressionParser; -import bjc.utils.dice.IDiceExpression; - -/** - * Driver class for testing expression parser - * - * @author ben - * - */ -public class DiceExpressionParserTest { - /** - * Run the parser test - * - * @param args - * Unused CLI arguments - */ - public static void main(String[] args) { - /* - * Get a scanner for input - */ - Scanner scn = new Scanner(System.in); - - /* - * Ask to enter a expression - */ - System.out.print("Enter dice expression: "); - - String exp = scn.nextLine(); - - /* - * Enter amount of times to roll an expression - */ - System.out.print("Enter number of times to roll: "); - - int nTimes = Integer.parseInt(scn.nextLine()); - - /* - * Parse the string expression into a dice expression - */ - DiceExpressionParser dep = new DiceExpressionParser(); - - IDiceExpression dexp = dep.parse(exp); - - /* - * Roll the dice a specified amount of times - */ - for (int i = 1; i <= nTimes; i++) { - int roll = dexp.roll(); - - System.out.println("Rolled " + roll); - } - - /* - * Clean up after ourselves - */ - scn.close(); - } -} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/RandomStringExamples.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/RandomStringExamples.java deleted file mode 100644 index d7e1bd1..0000000 --- a/BJC-Utils2/src/examples/java/bjc/utils/examples/RandomStringExamples.java +++ /dev/null @@ -1,55 +0,0 @@ -package bjc.utils.examples; - -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.FunctionalStringTokenizer; -import bjc.utils.gen.RandomGrammar; - -public class RandomStringExamples { - private static RandomGrammar rg; - - public static void main(String[] args) { - rg = new RandomGrammar<>(); - - addRule("", " ", - " thinks that I am ", - "I ", "You think that I am "); - - addRule("", "dancing", "eating", "sleeping"); - - addRule("", "", "life", "my computer", - "my friends"); - - addRule("", "hate", "am jealous of", "love"); - - addRule("", "hates", "loves"); - - addRule("", "my sister", "my father", "my girlfriend", - "the man next door"); - - addRule("", "creative", "intelligent"); - - addRule("", "", " with ", - ""); - - for (int i = 0; i < 10; i++) { - FunctionalList ls = rg.genList("", " "); - - StringBuilder sb = new StringBuilder(); - - ls.forEach(sp -> sb.append(sp)); - - System.out.println(sb.toString().replaceAll("\\s+", " ")); - } - } - - private static void addRule(String rule, String... cases) { - FunctionalList> cses = new FunctionalList<>(); - - for (String strang : cases) { - cses.add(FunctionalStringTokenizer.fromString(strang) - .toList(s -> s)); - } - - rg.makeRule(rule, cses); - } -} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java deleted file mode 100644 index b1d8487..0000000 --- a/BJC-Utils2/src/examples/java/bjc/utils/examples/ShuntTester.java +++ /dev/null @@ -1,26 +0,0 @@ -package bjc.utils.examples; - -import java.util.Scanner; - -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.FunctionalStringTokenizer; -import bjc.utils.parserutils.ShuntingYard; - -public class ShuntTester { - public static void main(String[] args) { - Scanner scn = new Scanner(System.in); - - System.out.print("Enter a expression to shunt: "); - String ln = scn.nextLine(); - - ShuntingYard yard = new ShuntingYard<>(); - - FunctionalList ls = yard.postfix( - new FunctionalStringTokenizer(ln).toList((s) -> s), - (s) -> s); - - System.out.println(ls.toString()); - - scn.close(); - } -} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java deleted file mode 100644 index 1c5c9b2..0000000 --- a/BJC-Utils2/src/examples/java/bjc/utils/examples/TreeConstructTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package bjc.utils.examples; - -import java.util.Scanner; -import java.util.function.Predicate; - -import bjc.utils.funcdata.FunctionalList; -import bjc.utils.funcdata.FunctionalStringTokenizer; -import bjc.utils.parserutils.AST; -import bjc.utils.parserutils.ShuntingYard; -import bjc.utils.parserutils.TreeConstructor; - -public class TreeConstructTest { - public static void main(String[] args) { - Scanner scn = new Scanner(System.in); - - System.out.print("Enter a expression to parse: "); - String ln = scn.nextLine(); - - ShuntingYard yard = new ShuntingYard<>(); - - FunctionalList ls = yard.postfix( - new FunctionalStringTokenizer(ln).toList((s) -> s), - (s) -> s); - - System.out.println("Shunted: " + ls.toString()); - - AST ast = TreeConstructor.constructTree(ls, - new Predicate() { - @Override - public boolean test(String tok) { - switch (tok) { - case "+": - case "-": - case "*": - case "/": - return true; - default: - return false; - } - } - }); - - System.out.println("AST: " + ast.toString()); - - scn.close(); - } -} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java new file mode 100644 index 0000000..75f73c6 --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/DiceExpressionParserTest.java @@ -0,0 +1,62 @@ +package bjc.utils.examples.parsing; + +import java.util.Scanner; + +import bjc.utils.dice.DiceExpressionParser; +import bjc.utils.dice.IDiceExpression; + +/** + * Driver class for testing expression parser + * + * @author ben + * + */ +public class DiceExpressionParserTest { + /** + * Run the parser test + * + * @param args + * Unused CLI arguments + */ + public static void main(String[] args) { + /* + * Get a scanner for input + */ + Scanner scn = new Scanner(System.in); + + /* + * Ask to enter a expression + */ + System.out.print("Enter dice expression: "); + + String exp = scn.nextLine(); + + /* + * Enter amount of times to roll an expression + */ + System.out.print("Enter number of times to roll: "); + + int nTimes = Integer.parseInt(scn.nextLine()); + + /* + * Parse the string expression into a dice expression + */ + DiceExpressionParser dep = new DiceExpressionParser(); + + IDiceExpression dexp = dep.parse(exp); + + /* + * Roll the dice a specified amount of times + */ + for (int i = 1; i <= nTimes; i++) { + int roll = dexp.roll(); + + System.out.println("Rolled " + roll); + } + + /* + * Clean up after ourselves + */ + scn.close(); + } +} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/ShuntTester.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/ShuntTester.java new file mode 100644 index 0000000..d535a70 --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/ShuntTester.java @@ -0,0 +1,26 @@ +package bjc.utils.examples.parsing; + +import java.util.Scanner; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.FunctionalStringTokenizer; +import bjc.utils.parserutils.ShuntingYard; + +public class ShuntTester { + public static void main(String[] args) { + Scanner scn = new Scanner(System.in); + + System.out.print("Enter a expression to shunt: "); + String ln = scn.nextLine(); + + ShuntingYard yard = new ShuntingYard<>(); + + FunctionalList ls = yard.postfix( + new FunctionalStringTokenizer(ln).toList((s) -> s), + (s) -> s); + + System.out.println(ls.toString()); + + scn.close(); + } +} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/TreeConstructTest.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/TreeConstructTest.java new file mode 100644 index 0000000..ad8bf36 --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/parsing/TreeConstructTest.java @@ -0,0 +1,47 @@ +package bjc.utils.examples.parsing; + +import java.util.Scanner; +import java.util.function.Predicate; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.FunctionalStringTokenizer; +import bjc.utils.parserutils.AST; +import bjc.utils.parserutils.ShuntingYard; +import bjc.utils.parserutils.TreeConstructor; + +public class TreeConstructTest { + public static void main(String[] args) { + Scanner scn = new Scanner(System.in); + + System.out.print("Enter a expression to parse: "); + String ln = scn.nextLine(); + + ShuntingYard yard = new ShuntingYard<>(); + + FunctionalList ls = yard.postfix( + new FunctionalStringTokenizer(ln).toList((s) -> s), + (s) -> s); + + System.out.println("Shunted: " + ls.toString()); + + AST ast = TreeConstructor.constructTree(ls, + new Predicate() { + @Override + public boolean test(String tok) { + switch (tok) { + case "+": + case "-": + case "*": + case "/": + return true; + default: + return false; + } + } + }); + + System.out.println("AST: " + ast.toString()); + + scn.close(); + } +} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/DiabloItemGen.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/DiabloItemGen.java new file mode 100644 index 0000000..9450416 --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/DiabloItemGen.java @@ -0,0 +1,88 @@ +package bjc.utils.examples.rangen; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.FunctionalStringTokenizer; +import bjc.utils.gen.WeightedGrammar; + +/** + * Example showing how to use the weighted random number generator. + * + * @author ben + * + */ +public class DiabloItemGen { + private static WeightedGrammar parts = new WeightedGrammar<>(); + + private static void addCase(String rn, int prob, String prts) { + parts.addCase(rn, prob, + FunctionalStringTokenizer.fromString(prts).toList(s -> s)); + } + + private static void addInfixRules() { + String rn = ""; + + addCase(rn, 60, "sword"); + addCase(rn, 50, "armor"); + addCase(rn, 40, "rune"); + addCase(rn, 30, "scroll"); + addCase(rn, 20, "potion"); + addCase(rn, 10, "helm"); + } + + private static void addItemRules() { + String rn = ""; + + addCase(rn, 10, ""); + addCase(rn, 20, " "); + addCase(rn, 30, " "); + addCase(rn, 40, " "); + addCase(rn, 50, " "); + addCase(rn, 60, " "); + } + + private static void addPrefixRules() { + String rn = ""; + + addCase(rn, 60, "sturdy"); + addCase(rn, 50, "fine"); + addCase(rn, 40, "strong"); + addCase(rn, 30, "azure"); + addCase(rn, 20, "crimson"); + addCase(rn, 10, "phasing"); + } + + private static void addSuffixRules() { + String rn = ""; + + addCase(rn, 60, "of Health"); + addCase(rn, 50, "of Wealth"); + addCase(rn, 40, "of Life"); + addCase(rn, 30, "of the Jackal"); + addCase(rn, 20, "of Vitality"); + addCase(rn, 10, "of Ability"); + } + + public static void main(String[] args) { + parts.addRule(""); + addItemRules(); + + parts.addRule(""); + addSuffixRules(); + + parts.addRule(""); + addPrefixRules(); + + parts.addRule(""); + addInfixRules(); + + for (int i = 0; i < 100; i++) { + FunctionalList ls = parts.genList("", " "); + + StringBuilder sb = new StringBuilder(); + + ls.forEach(sp -> sb.append(sp)); + + System.out.println(sb.toString().replaceAll("\\s+", " ")); + } + } +} diff --git a/BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/RandomStringExamples.java b/BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/RandomStringExamples.java new file mode 100644 index 0000000..7a9cdb4 --- /dev/null +++ b/BJC-Utils2/src/examples/java/bjc/utils/examples/rangen/RandomStringExamples.java @@ -0,0 +1,55 @@ +package bjc.utils.examples.rangen; + +import bjc.utils.funcdata.FunctionalList; +import bjc.utils.funcdata.FunctionalStringTokenizer; +import bjc.utils.gen.RandomGrammar; + +public class RandomStringExamples { + private static RandomGrammar rg; + + public static void main(String[] args) { + rg = new RandomGrammar<>(); + + addRule("", " ", + " thinks that I am ", + "I ", "You think that I am "); + + addRule("", "dancing", "eating", "sleeping"); + + addRule("", "", "life", "my computer", + "my friends"); + + addRule("", "hate", "am jealous of", "love"); + + addRule("", "hates", "loves"); + + addRule("", "my sister", "my father", "my girlfriend", + "the man next door"); + + addRule("", "creative", "intelligent"); + + addRule("", "", " with ", + ""); + + for (int i = 0; i < 10; i++) { + FunctionalList ls = rg.genList("", " "); + + StringBuilder sb = new StringBuilder(); + + ls.forEach(sp -> sb.append(sp)); + + System.out.println(sb.toString().replaceAll("\\s+", " ")); + } + } + + private static void addRule(String rule, String... cases) { + FunctionalList> cses = new FunctionalList<>(); + + for (String strang : cases) { + cses.add(FunctionalStringTokenizer.fromString(strang) + .toList(s -> s)); + } + + rg.makeRule(rule, cses); + } +} -- cgit v1.2.3