Last active
April 21, 2025 08:11
-
-
Save kidGodzilla/7233a4f07e8d9d4c8b2496a2e5a30f3a to your computer and use it in GitHub Desktop.
πΆ Barks Endlessly (2nd order markov chain but barking)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Barks endlessly in your console (Paste it in) | |
(function () { | |
class MarkovChainGenerator { | |
constructor(tokens, order = 2) { | |
this.order = order; | |
this.model = new Map(); | |
for (let i = 0; i <= tokens.length - order; i++) { | |
const key = tokens.slice(i, i + order).join(','); | |
const next = tokens[i + order]; | |
if (!next) continue; | |
if (!this.model.has(key)) { | |
this.model.set(key, []); | |
} | |
this.model.get(key).push(next); | |
} | |
} | |
generate(length = 12) { | |
const keys = Array.from(this.model.keys()); | |
const start = keys[Math.floor(Math.random() * keys.length)].split(','); | |
const result = [...start]; | |
for (let i = 0; i < length - this.order; i++) { | |
const key = result.slice(-this.order).join(','); | |
const choices = this.model.get(key); | |
if (!choices) break; | |
const next = choices[Math.floor(Math.random() * choices.length)]; | |
result.push(next); | |
} | |
return result; | |
} | |
} | |
const barks = [ | |
"woof", "woof", "arf", "bark", "bark", "grr", "ruff", | |
"yip", "yip", "woof", "grr", "woof", "arf", "ruff", | |
"bork", "roof" | |
]; | |
const emojis = ["πΆ", "π", "π©", "π¦΄", "πΎ", "π―οΈ"]; | |
const generator = new MarkovChainGenerator(barks, 2); | |
function makeBark(tokenCount = 8) { | |
const barkTokens = generator.generate(tokenCount); | |
// Add more emojis, possibly repeated | |
const numEmojis = Math.floor(Math.random() * 5) + 1; | |
for (let i = 0; i < numEmojis; i++) { | |
const emoji = emojis[Math.floor(Math.random() * emojis.length)]; | |
const pos = Math.floor(Math.random() * (barkTokens.length + 1)); | |
barkTokens.splice(pos, 0, emoji); | |
} | |
let text = barkTokens.join(' '); | |
// Apply random format variations | |
const modifiers = [ | |
t => t.toUpperCase(), | |
t => t + '!', | |
t => t + '?', | |
t => t + '!?', | |
t => t + ' ' + emojis[Math.floor(Math.random() * emojis.length)], | |
t => t // no change | |
]; | |
const variation = modifiers[Math.floor(Math.random() * modifiers.length)]; | |
return variation(text); | |
} | |
setInterval(() => { | |
console.log(makeBark(8)); | |
}, 2000); // Every 2 seconds | |
})(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
woof arf ruff 𦴠bork π© 𦴠roof!
woof grr woof arf ruff bork π―οΈ roof πΆ
grr π woof arf ruff π bork 𦴠𦴠roof?
woof woof arf bark bark grr ruff yip π¦΄!?
bark grr ruff π© yip yip woof grr πΎ woof π―οΈ?
bark grr ruff yip π yip woof grr woof πΎ
yip woof grr woof arf bark π bark grr πΎ
πΎ π π―οΈ bark grr ruff yip πΆ yip woof grr woof?
GRR RUFF YIP π π YIP WOOF πΆ GRR WOOF ARF πΎ
grr woof arf bark bark grr πΎ ruff π―οΈ yip!
𦴠π yip πΆ yip 𦴠woof grr πΆ woof arf bark bark!
πΎ πΆ grr woof arf ruff bork roof π
ruff yip yip woof grr π woof arf bark?
ARF RUFF π© BORK ROOF
πΆ ruff bork π© π 𦴠roof π―οΈ π©
grr woof πΎ arf π© bark π―οΈ bark π© grr ruff π―οΈ yip!
πΆ π© woof πΆ arf bark 𦴠bark grr ruff yip yip?
grr ruff yip yip woof grr woof arf π
grr ruff π© yip yip woof 𦴠grr woof πΆ 𦴠arf πΆ!
bark bark grr ruff yip π―οΈ yip woof grr π π―οΈ!
πΎ woof grr woof arf 𦴠𦴠bark bark grr 𦴠ruff!?
arf πΆ ruff bork roof?
ruff πΎ bork πΆ π© roof π¦΄!
yip 𦴠π© yip woof grr πΆ woof π© arf ruff bork π
yip woof 𦴠grr woof arf bark bark grr!
GRR WOOF ARF π© BARK πΆ πΆ BARK GRR RUFF YIP
grr πΆ 𦴠π© woof arf ruff bork π© π―οΈ roof
woof π arf bark bark grr ruff yip yip
yip woof grr woof arf ruff bork π roof!
grr woof arf bark π―οΈ bark grr πΎ πΎ ruff yip πΎ 𦴠π―οΈ
BARK πΆ πΎ BARK π―οΈ GRR RUFF YIP YIP WOOF GRR π―οΈ
arf bark bark grr ruff πΆ π―οΈ πΆ yip yip πΆ woof!?
πΎ woof woof arf ruff bork roof?
grr π ruff π―οΈ yip yip π© πΎ woof grr woof arf!
𦴠ruff yip yip πΆ woof grr woof arf ruff?
bark grr ruff yip yip woof grr woof π!?
grr woof arf bark bark grr 𦴠ruff yip 𦴠π!
ruff 𦴠π πΎ bork roof 𦴠πΆ!
woof arf ruff π© π bork roof π©!
arf π ruff 𦴠bork roof π©
πΎ ruff π© yip yip woof πΆ grr πΆ woof arf bark!
YIP WOOF π GRR WOOF ARF π© πΆ BARK π BARK GRR
woof woof arf π© ruff bork π―οΈ roof
bark bark grr ruff π―οΈ yip yip π―οΈ woof 𦴠πΆ grr!
π ruff bork roof
arf bark bark grr ruff yip yip woof πΎ!?
ARF π π―οΈ RUFF BORK ROOF 𦴠π¦΄
grr woof πΎ arf ruff bork roof
woof arf ruff bork roof πΆ π©
ruff bork πΎ πΎ πΎ roof
grr ruff yip πΎ πΆ yip 𦴠𦴠woof grr woof arf