From 2abf8d66776a61f7698830da3b80ab524d7318ef Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Sun, 26 Mar 2017 11:31:17 -0400 Subject: Update --- .../bjc/rgens/text/markov/StandaloneMarkov.java | 59 ++++++++++++++++------ 1 file changed, 43 insertions(+), 16 deletions(-) (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 index bc31847..8934daa 100644 --- a/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java +++ b/RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java @@ -2,39 +2,66 @@ package bjc.rgens.text.markov; import java.util.Map; +/** + * A standalone Markov generator. + * + * @author bjculkin + * + */ public class StandaloneMarkov { - private int k; + private int ord; - private Map markovHash; - private String firstSub; + private Map hash; + private String first; - public StandaloneMarkov(int k, Map markovHash, String firstSub) { - this.k = k; - this.markovHash = markovHash; - this.firstSub = firstSub; + /** + * Create a new standalone Markov generator. + * + * @param order + * The order of this generator. + * + * @param markovHash + * The generators to use. + * + * @param firstSub + * The string to start out with. + */ + public StandaloneMarkov(int order, Map markovHash, String firstSub) { + ord = order; + hash = markovHash; + first = firstSub; } - public String generateTextFromMarkov(int M) { + /** + * Generate random text from the markov generator. + * + * @param charsToGenerate + * The number of characters of text to generate. + * + * @return The randomly generate text. + */ + public String generateTextFromMarkov(int charsToGenerate) { StringBuilder text = new StringBuilder(); - for (int i = k; i < M; i++) { - if (i == k) { - text.append(firstSub); - if (text.length() > k) i = text.length(); + for (int i = ord; i < charsToGenerate; i++) { + if (i == ord) { + text.append(first); + + if (text.length() > ord) i = text.length(); } - String sub = text.substring((i - k), (i)); - Markov tmp = markovHash.get(sub); + String sub = text.substring(i - ord, i); + Markov tmp = hash.get(sub); if (tmp != null) { Character nextChar = tmp.random(); + text.append(nextChar); } else { - i = k - 1; + i = ord - 1; } } return text.toString(); } - } -- cgit v1.2.3