From 0ea49dd4a52358f053c9be7138c392b16de05899 Mon Sep 17 00:00:00 2001 From: student Date: Fri, 17 Mar 2017 10:49:27 -0400 Subject: Move things around, and start on new parser. --- .../bjc/rgens/text/markov/StandaloneMarkov.java | 42 ++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java (limited to 'RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java') diff --git a/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java new file mode 100644 index 0000000..0edaaa8 --- /dev/null +++ b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java @@ -0,0 +1,42 @@ +package bjc.rgens.text.markov; + +import java.util.Map; + +public class StandaloneMarkov { + private int k; + + private Map markovHash; + private String firstSub; + + public StandaloneMarkov(int k, Map markovHash, + String firstSub) { + this.k = k; + this.markovHash = markovHash; + this.firstSub = firstSub; + } + + public String generateTextFromMarkov(int M) { + StringBuilder text = new StringBuilder(); + for (int i = k; i < M; i++) { + if (i == k) { + text.append(firstSub); + + if (text.length() > k) + i = text.length(); + } + + String sub = text.substring((i - k), (i)); + Markov tmp = markovHash.get(sub); + + if (tmp != null) { + Character nextChar = tmp.random(); + text.append(nextChar); + } else { + i = k - 1; + } + } + + return text.toString(); + } + +} -- cgit v1.2.3