summaryrefslogtreecommitdiff
path: root/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java
diff options
context:
space:
mode:
authorstudent <student@student-OptiPlex-9020>2017-03-17 10:49:27 -0400
committerstudent <student@student-OptiPlex-9020>2017-03-17 10:49:27 -0400
commit0ea49dd4a52358f053c9be7138c392b16de05899 (patch)
tree802e275aaf279480ee8626136f56bfa1fbab6845 /RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java
parent36cf3a0f0604ef43ce838ff6e9a7fc4e7c299522 (diff)
Move things around, and start on new parser.
Diffstat (limited to 'RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java')
-rw-r--r--RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java42
1 files changed, 42 insertions, 0 deletions
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<String, Markov> markovHash;
+ private String firstSub;
+
+ public StandaloneMarkov(int k, Map<String, Markov> 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();
+ }
+
+}