I originally wrote this in QBasic, unfortunately the source was lost a while ago. The insults come from the works of William Shakespeare.
// Blah blah blah GPL blah blah blah
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
int main()
{
char part1[][20] = {
"artless",
"bawdy",
"beslubbering",
"bootless",
"churlish",
"cockered",
"clouted",
"craven",
"currish",
"dankish",
"dissembling",
"droning",
"errant",
"fawning",
"fobbing",
"froward",
"frothy",
"gleeking",
"goatish",
"gorbellied",
"impertinent",
"infectious",
"jarring",
"loggerheaded",
"lumpish",
"mammering",
"mangled",
"mewling",
"paunchy",
"pribbling",
"puking",
"puny",
"qualling",
"rank",
"reeky",
"roguish",
"ruttish",
"saucy",
"spleeny",
"spongy",
"surly",
"tottering",
"unmuzzled",
"vain",
"venomed",
"villainous",
"warped",
"wayward",
"weedy",
"yeasty"
};
char part2[][20] = {
"base-court",
"bat-fowling",
"beefwitted",
"beetle-headed",
"boil-brained",
"clapper-clawed",
"clay-brained",
"common-kissing",
"crook-pated",
"dismal-dreaming",
"dizzy-eyed",
"doghearted",
"dread-bolted",
"earth-vexing",
"elf-skinned",
"fat-kidneyed",
"fen-sucked",
"flap-mouthed",
"fly-bitten",
"folly-fallen",
"fool-born",
"full-gorged",
"guts-griping",
"half-faced",
"hasty-witted",
"hedge-born",
"hell-hated",
"idle-headed",
"ill-breeding",
"ill-nurtured",
"knotty-pated",
"milk-livered",
"motley-minded",
"onion-eyed",
"plume-plucked",
"pottle-deep",
"pox-marked",
"reeling-ripe",
"rough-hewn",
"rude-growing",
"rump-fed",
"shard-borne",
"sheep-biting",
"spur-galled",
"swag-bellied",
"tardy-gaited",
"tickle-brained",
"toad-spotted",
"unchin-snouted",
"weather-bitten"
};
char part3[][20] = {
"apple-john",
"baggage",
"barnacle",
"bladder",
"bear-pig",
"bugbear",
"bum-bailey",
"canker-blossom",
"clack-dish",
"clotpole",
"coxcomb",
"codpiece",
"death-token",
"dewberry",
"flap-dragon",
"flax-wench",
"flirt-gill",
"foot licker",
"fustilarian",
"giglet",
"gudgeon",
"haggard",
"harpy",
"hedge-pig",
"horn-beast",
"hugger-mugger",
"joithead",
"lewdster",
"lout",
"maggot pie",
"malt-worm",
"mammet",
"measle",
"minnow",
"miscreant",
"moldwarp",
"mumble-news",
"nut-hook",
"pigeon egg",
"pignut",
"puttock",
"pumpion",
"ratsbane",
"scut",
"skainsmate",
"strumpet",
"varlet",
"vassal",
"whey-face",
"wagtail",
};
float i = sizeof part1 / sizeof part1[0]; //All 3 arrays are same size
i /= RAND_MAX;
srand((unsigned)time(0));
int n;
cout << "How many insults?";
cin >> n;
for(int j=0;j<n;j++) {
cout << "Thou "
<< part1[(int)(rand()*i)] << " "
<< part2[(int)(rand()*i)] << " "
<< part3[(int)(rand()*i)] << "!"
<< endl;
}
return 0;
}