-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathcurse.lua
More file actions
executable file
·91 lines (82 loc) · 4.14 KB
/
Copy pathcurse.lua
File metadata and controls
executable file
·91 lines (82 loc) · 4.14 KB
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/usr/bin/env lua
--------------------------------------------------------------------------------
-- Shakespearian Curse Generator -- Based on lists compiled by Jerry Maguire, --
-- English teacher at Center Grove High School in Greenwood, Indiana. --
-- Public domain implementations by Trevor Stone http://trevorstone.org/curse --
--------------------------------------------------------------------------------
WordList = {}
WordList.__index = WordList
function WordList:new(...)
return setmetatable({...}, self)
end
function WordList:pick()
return self[math.random(1, #self)]
end
adjectives1 = WordList:new("artless", "bawdy", "beslubbering", "bootless", "brazen",
"churlish", "cockered", "clouted", "craven", "currish", "dankish",
"dissembling", "distempered", "droning", "errant", "fawning", "fitful",
"fobbing", "froward", "frothy", "gleeking", "gnarling", "goatish",
"gorbellied", "greasy", "grizzled", "haughty", "hideous", "impertinent",
"infectious", "jaded", "jarring", "knavish", "lewd", "loggerheaded",
"lumpish", "mammering", "mangled", "mewling", "paunchy", "peevish",
"pernicious", "prating", "pribbling", "puking", "puny", "purpled", "quailing",
"queasy", "rank", "reeky", "roguish", "roynish", "ruttish", "saucy",
"sottish", "spleeny", "spongy", "surly", "tottering", "unmuzzled", "vacant",
"vain", "venomed", "villainous", "waggish", "wanton", "warped", "wayward",
"weedy", "wenching", "whoreson", "yeasty")
adjectives2 = WordList:new("base-court", "bat-fowling", "beef-witted",
"beetle-headed", "boil-brained", "bunched-backed", "clapper-clawed",
"clay-brained", "common-kissing", "crook-pated", "dismal-dreaming",
"dizzy-eyed", "dog-hearted", "dread-bolted", "earth-vexing", "elf-skinned",
"empty-hearted", "evil-eyed", "eye-offending", "fat-kidneyed", "fen-sucked",
"flap-mouthed", "fly-bitten", "folly-fallen", "fool-born", "full-gorged",
"guts-griping", "half-faced", "hasty-witted", "heavy-handed", "hedge-born",
"hell-hated", "horn-mad", "idle-headed", "ill-breeding", "ill-composed",
"ill-nurtured", "iron-witted", "knotty-pated", "lean-witted", "lily-livered",
"mad-bread", "milk-livered", "motley-minded", "muddy-mettled", "onion-eyed",
"pale-hearted", "paper-faced", "pinch-spotted", "plume-plucked",
"pottle-deep", "pox-marked", "raw-boned", "reeling-ripe", "rough-hewn",
"rude-growing", "rug-headed", "rump-fed", "shag-eared", "shard-borne",
"sheep-biting", "shrill-gorged", "spur-galled", "sour-faced", "swag-bellied",
"tardy-gaited", "tickle-brained", "toad-spotted", "unchin-snouted",
"weak-hinged", "weather-bitten", "white-livered")
nouns = WordList:new("apple-john", "baggage", "barnacle", "bladder", "boar-pig",
"bugbear", "bum-bailey", "canker-blossom", "clack-dish", "clotpole",
"coxcomb", "codpiece", "crutch", "cutpurse", "death-token", "dewberry",
"dogfish", "egg-shell", "flap-dragon", "flax-wench", "flirt-gill",
"foot-licker", "fustilarian", "giglet", "gudgeon", "gull-catcher", "haggard",
"harpy", "hedge-pig", "hempseed", "horn-beast", "hugger-mugger",
"jack-a-nape", "jolthead", "lewdster", "lout", "maggot-pie", "malignancy",
"malkin", "malt-worm", "mammet", "manikin", "measle", "minimus", "minnow",
"miscreant", "moldwarp", "mumble-news", "nut-hook", "pantaloon", "pigeon-egg",
"pignut", "puttock", "pumpion", "rabbit-sucker", "rampallion", "ratsbane",
"remnant", "rudesby", "ruffian", "scantling", "scullion", "scut",
"skainsmate", "snipe", "strumpet", "varlot", "vassal", "waterfly",
"whey-face", "whipster", "wagtail", "younker")
function curse()
local adjective1 = adjectives1:pick()
local adjective2 = adjectives2:pick()
local noun = nouns:pick()
return string.format('Thou %s %s %s!', adjective1, adjective2, noun)
end
local num
if #arg > 0 then
if arg[1] == '-h' then
print(string.format(
'Usage: %s [-h] [n] (n is the number of curses you want)', arg[0]))
os.exit(false)
end
num = math.tointeger(arg[1])
if not num then
io.stderr:write('Not a valid number: ', arg[1], '\n')
os.exit(false)
end
else
repeat
io.write('Number of curses: ')
num = math.tointeger(io.read('l'))
until num
end
for i = 1, num do
print(curse())
end