-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
madLibPhrases.js
52 lines (42 loc) · 1.67 KB
/
madLibPhrases.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// Available categories:
// noun, language, person, adjective, verb, gerund, phrase, abbreviation
// combine nouns and languages for now
const sample = require('lodash/sample')
const words = require('./wordsSorted')
function noun() {
return sample(words.noun)
}
function language() {
return sample(words.language)
}
function person() {
return sample(words.person)
}
function adjective() {
return sample(words.adjective)
}
function verb() {
return sample(words.verb)
}
function gerund() {
return sample(words.gerund)
}
function phrase() {
return sample(words.phrase)
}
function abbreviation() {
return sample(words.abbreviation)
}
const templates = [
() => `If we ${verb()} the ${noun()}, we can get to the ${abbreviation()} ${noun()} through the ${adjective()} ${abbreviation()} ${noun()}!`,
() => `We need to ${verb()} the ${adjective()} ${abbreviation()} ${noun()}!`,
() => `Try to ${verb()} the ${abbreviation()} ${noun()}, maybe it will ${verb()} the ${adjective()} ${noun()}!`,
() => `You can't ${verb()} the ${noun()} without ${gerund()} the ${adjective()} ${abbreviation()} ${noun()}!`,
() => `Use the ${adjective()} ${abbreviation()} ${noun()}, then you can ${verb()} the ${adjective()} ${noun()}!`,
() => `The ${abbreviation()} ${noun()} is down, ${verb()} the ${adjective()} ${noun()} so we can ${verb()} the ${abbreviation()} ${noun()}!`,
() => `So ${gerund()} the ${noun()} won't do anything, we need to ${verb()} the ${adjective()} ${abbreviation()} ${noun()}!`,
() => `I'll ${verb()} the ${adjective()} ${abbreviation()} ${noun()}, that should ${noun()} the ${abbreviation()} ${noun()}!`
]
module.exports = function madLib() {
return sample(templates)()
}