Differences From
Artifact [17f0b8d58f]:
2 2 "verve"; "pulchritude"; "beneficence"; "dismay"; "wit";
3 3 "cheer"; "glee"; "malevolence"; "wickedness"; "cruelty";
4 4 "sagacity"; "splendor"; "pride"; "rage"; "fury"; "snazz";
5 5 "foolishness"; "sleepiness"; "curiosity"; "brevity"; "lust";
6 6 "confidence"; "bashfulness"; "awkwardness"; "terror";
7 7 "accuracy"; "insanity"; "sorrow"; "gladness"; "weariness";
8 8 "depression"; "passion"; "dread"; "popularity"; "vulgarity";
9 - "madness"; "compassion";
9 + "madness"; "compassion"; "tact";
10 10 |]
11 11 let mods = [|
12 12 "filled"; "overcome"; "shining"; "vivacious";
13 13 "burning"; "blazing"; "morose"; "gleeful"; "mad";
14 14 "shaking"; "howling"; "snarling"; "gruesome";
15 - "helpless"; "vibrant"; "desperate";
15 + "helpless"; "vibrant"; "desperate"; "triumphant";
16 + "glum"; "sorrowful"; "struck";
16 17 |]
17 18 let advs = [|
18 19 "cruelly"; "angrily"; "madly"; "hopelessly"; "thoughtlessly";
19 20 "wickedly"; "hopefully"; "quickly"; "speedily"; "furiously";
20 21 "kindly"; "maniacally"; "tearfully"; "bashfully"; "angrily";
21 22 "wondrously"; "splendidly"; "tremendously"; "badly";
22 23 "terribly"; "foolishly"; "snazzily"; "toplessly"; "balefully";
23 24 "beautifully"; "kindly"; "thoughtfully"; "cautiously";
24 - "severely"; "wisely";
25 + "severely"; "wisely"; "lustfully"; "tactfully";
25 26 |]
26 27 let adjs = [|
27 28 "cheerful"; "wondrous"; "overwhelming"; "adorable";
28 29 "snazzy"; "hopeful"; "desperate"; "lustful"; "dour";
29 30 "sad"; "sorrowful"; "hopeless"; "all-consuming"; "mad";
30 31 "cruel"; "dreadful"; "terrible"; "fearsome"; "inescapable";
31 32 "thoughtless"; "vile"; "bashful"; "topless"; "naked"; "dire";
32 33 "baleful"; "vulgar"; "beautiful"; "horrid"; "cautious";
33 - "violent"; "wise"; "supreme"; "marvelous";
34 + "violent"; "wise"; "supreme"; "marvelous"; "tactful";
34 35 |]
35 36 let verbs = [|
36 37 "shines"; "toots"; "honks"; "mutters"; "whispers"; "growls";
37 38 "roars"; "whuffles"; "warbles"; "howls"; "screams"; "shrieks";
38 39 "quivers"; "dances"; "hops up and down"; "grins"; "mumbles";
39 40 "counsels you"; "glares"; "stares at you"; "looks up"; "gazes at you";
40 - "marvels"; "laughs";
41 + "marvels"; "laughs"; "sins"; "whistles"; "whungles"; "jangles";
42 + "twerks"; "blinks"; "blorps"; "flunks"; "planks"; "glitters";
43 + "gleams"; "grumbles"; "grouches"; "bites you"; "gnaws on you";
44 + "glimmers"; "gripes"; "plots"; "wonders"; "whittles"; "plays the fiddle";
45 + "ponders"; "contemplates you"; "scrunches"; "zaps"; "zaps you";
41 46 |]
42 47
43 48 let pick a = a.(Random.int (Array.length a))
44 49 type rule = R of string array | S of string | B of rule list | A of rule array | O of rule;;
45 50 let rec eval r : string = match r with
46 51 | R x -> pick x
47 52 | S x -> x
................................................................................
58 63 let obs = A [| stop; fric; vstop; nasal; liq; |] in
59 64 let v = R [| "a"; "e"; "u"; "o"; "i"; "ee"; "oo"; "au"; "ai";"oi";|] in
60 65 let sr = A [|
61 66 B[obs; v; O obs];
62 67 B[A [|stop;vstop;fric;vfric;|]; O liq; v; O obs];
63 68 |] in eval sr
64 69 ;;
65 -let prefixes = [| "ur-"; "dire "; "dire ur-"; "super " |]
70 +let prefixes = [| "ur-"; "dire "; "dire ur-"; "super "; "ultra "; "great "; "grand "; "terror-"; "horror-"; "giant "; "evil "; "dark ";|]
66 71 let name () =
67 72 let size = 1 + (Random.int 3) in
68 73 let rec loop n acc = if n = 0 then acc else loop (n-1) (acc^(syl ())) in
69 74 (if Random.int 2 = 0 then (pick prefixes) else "") ^ loop size "";;
70 75
71 76 let isvowel c = match c with
72 77 | 'a' | 'e' | 'i' | 'o' | 'u' -> true
................................................................................
94 99 A [|
95 100 B[ R verbs; S " ";
96 101 A [|
97 102 B[ S "with "; O(B[R adjs; S" "]); R nouns;];
98 103 R advs;
99 104 |];
100 105 ];
101 - B[S"is "; O(B[R advs;S" ";]); R mods;
106 + B[S"is "; O(B[R advs;S " ";]); R mods;
102 107 O(B[ S " with "; O(B[R adjs; S" "]); R nouns;]);
103 108 ];
104 109 |];
105 110 S "!";
106 111 ] in
107 112 (pick msgs)^" "^(indef (name()))^"! " ^ (eval kinds);;
108 113
109 114 let rec times n a = if n = 0 then () else (a (); times (n-1) a);;
110 115 let () = Random.self_init ();
111 116 (* times 20 (fun () ->*)
112 117 print_string ((encounter ()) ^ "\n")
113 118 (* )*)