diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2017-03-26 11:31:17 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2017-03-26 11:31:17 -0400 |
| commit | 2abf8d66776a61f7698830da3b80ab524d7318ef (patch) | |
| tree | b68cb7bea4e89a0d90b1832ea04d72a543774ae8 /RGens/src/main/java/bjc/rgens/text/markov/StandaloneMarkov.java | |
| parent | 3cb61c2aede328e2c302f8cfd030478727fca66c (diff) | |
Update
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.java | 59 |
1 files changed, 43 insertions, 16 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 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<String, Markov> markovHash; - private String firstSub; + private Map<String, Markov> hash; + private String first; - public StandaloneMarkov(int k, Map<String, Markov> 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<String, Markov> 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(); } - } |
