Overview
Comment: | updates |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
ab1b71a07a2839ce1f66394f20d03eee |
User & Date: | lexi on 2020-10-17 06:26:30 |
Other Links: | manifest | tags |
Context
2021-08-29
| ||
17:08 | $100 will make me extremely more racist check-in: ca1d956dff user: lexi tags: trunk | |
2020-10-17
| ||
06:26 | updates check-in: ab1b71a07a user: lexi tags: trunk | |
2020-10-15
| ||
08:07 | updates check-in: c572c01910 user: lexi tags: trunk | |
Changes
Modified monster.ml from [a6081fd51c] to [dce9a8bc7b].
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 .. 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 .. 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
"verve"; "pulchritude"; "beneficence"; "dismay"; "wit"; "cheer"; "glee"; "malevolence"; "wickedness"; "cruelty"; "sagacity"; "splendor"; "pride"; "rage"; "fury"; "snazz"; "foolishness"; "sleepiness"; "curiosity"; "brevity"; "lust"; "confidence"; "bashfulness"; "awkwardness"; "terror"; "accuracy"; "insanity"; "sorrow"; "gladness"; "weariness"; "depression"; "passion"; "dread"; "popularity"; "vulgarity"; "madness"; "compassion"; "tact"; |] let mods = [| "filled"; "overcome"; "shining"; "vivacious"; "burning"; "blazing"; "morose"; "gleeful"; "mad"; "shaking"; "howling"; "snarling"; "gruesome"; "helpless"; "vibrant"; "desperate"; "triumphant"; "glum"; "sorrowful"; "struck"; |] let advs = [| "cruelly"; "angrily"; "madly"; "hopelessly"; "thoughtlessly"; "wickedly"; "hopefully"; "quickly"; "speedily"; "furiously"; "kindly"; "maniacally"; "tearfully"; "bashfully"; "angrily"; "wondrously"; "splendidly"; "tremendously"; "badly"; "terribly"; "foolishly"; "snazzily"; "toplessly"; "balefully"; "beautifully"; "kindly"; "thoughtfully"; "cautiously"; "severely"; "wisely"; "lustfully"; "tactfully"; |] let adjs = [| "cheerful"; "wondrous"; "overwhelming"; "adorable"; "snazzy"; "hopeful"; "desperate"; "lustful"; "dour"; "sad"; "sorrowful"; "hopeless"; "all-consuming"; "mad"; "cruel"; "dreadful"; "terrible"; "fearsome"; "inescapable"; "thoughtless"; "vile"; "bashful"; "topless"; "naked"; "dire"; "baleful"; "vulgar"; "beautiful"; "horrid"; "cautious"; "violent"; "wise"; "supreme"; "marvelous"; "tactful"; |] let verbs = [| "shines"; "toots"; "honks"; "mutters"; "whispers"; "growls"; "roars"; "whuffles"; "warbles"; "howls"; "screams"; "shrieks"; "quivers"; "dances"; "hops up and down"; "grins"; "mumbles"; "counsels you"; "glares"; "stares at you"; "looks up"; "gazes at you"; "marvels"; "laughs"; "sins"; "whistles"; "whungles"; "jangles"; "twerks"; "blinks"; "blorps"; "flunks"; "planks"; "glitters"; "gleams"; "grumbles"; "grouches"; "bites you"; "gnaws on you"; "glimmers"; "gripes"; "plots"; "wonders"; "whittles"; "plays the fiddle"; "ponders"; "contemplates you"; "scrunches"; "zaps"; "zaps you"; |] let pick a = a.(Random.int (Array.length a)) type rule = R of string array | S of string | B of rule list | A of rule array | O of rule;; let rec eval r : string = match r with | R x -> pick x | S x -> x | B x -> List.fold_left (^) "" (List.map eval x) | A x -> eval (pick x) | O x -> if Random.int 2 = 0 then eval x else "" let syl () = ................................................................................ let obs = A [| stop; fric; vstop; nasal; liq; |] in let v = R [| "a"; "e"; "u"; "o"; "i"; "ee"; "oo"; "au"; "ai";"oi";|] in let sr = A [| B[obs; v; O obs]; B[A [|stop;vstop;fric;vfric;|]; O liq; v; O obs]; |] in eval sr ;; let prefixes = [| "ur-"; "dire "; "dire ur-"; "super "; "ultra "; "great "; "grand "; "terror-"; "horror-"; "giant "; "evil "; "dark ";|] let name () = let size = 1 + (Random.int 3) in let rec loop n acc = if n = 0 then acc else loop (n-1) (acc^(syl ())) in (if Random.int 2 = 0 then (pick prefixes) else "") ^ loop size "";; let isvowel c = match c with | 'a' | 'e' | 'i' | 'o' | 'u' -> true ................................................................................ "egads!"; "how wondrous!"; "how marvelous!"; "how gruesome!"; "how splendid!"; "oh no!"; |] in let kinds = B [ R [|"it";"she";"he";|]; S" "; A [| B[ R verbs; S " "; A [| B[ S "with "; O(B[R adjs; S" "]); R nouns;]; R advs; |]; ]; B[S"is "; O(B[R advs;S " ";]); R mods; O(B[ S " with "; O(B[R adjs; S" "]); R nouns;]); ]; |]; S "!"; ] in (pick msgs)^" "^(indef (name()))^"! " ^ (eval kinds);; let rec times n a = if n = 0 then () else (a (); times (n-1) a);; let () = Random.self_init (); (* times 20 (fun () ->*) print_string ((encounter ()) ^ "\n") (* )*) |
| > | | > > > > > > | > > | > > > > > > | > > > > < | | > > | < > | | > > > |
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 .. 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 ... 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 |
"verve"; "pulchritude"; "beneficence"; "dismay"; "wit"; "cheer"; "glee"; "malevolence"; "wickedness"; "cruelty"; "sagacity"; "splendor"; "pride"; "rage"; "fury"; "snazz"; "foolishness"; "sleepiness"; "curiosity"; "brevity"; "lust"; "confidence"; "bashfulness"; "awkwardness"; "terror"; "accuracy"; "insanity"; "sorrow"; "gladness"; "weariness"; "depression"; "passion"; "dread"; "popularity"; "vulgarity"; "madness"; "compassion"; "tact"; "evil"; "hate"; "hatred"; "horror"; "omnipotence"; "charisma"; "radiance"; "depravity"; |] let mods_w = [| "filled"; "overcome"; "shining"; "vivacious"; "burning"; "blazing"; "morose"; "gleeful"; "mad"; "shaking"; "howling"; "snarling"; "gruesome"; "helpless"; "vibrant"; "desperate"; "triumphant"; "glum"; "sorrowful"; "struck"; "grumbling"; "griping"; "hissing"; "hooting"; "crackling"; "glowing"; "radiant"; |] let mods_f = [| "full of"; "struck by"; "overcome by"; |] let mods = Array.append (Array.map (fun a -> a ^ " with") mods_w) mods_f let advs = [| "cruelly"; "angrily"; "madly"; "hopelessly"; "thoughtlessly"; "wickedly"; "hopefully"; "quickly"; "speedily"; "furiously"; "kindly"; "maniacally"; "tearfully"; "bashfully"; "angrily"; "wondrously"; "splendidly"; "tremendously"; "badly"; "terribly"; "foolishly"; "snazzily"; "toplessly"; "balefully"; "beautifully"; "kindly"; "thoughtfully"; "cautiously"; "severely"; "wisely"; "lustfully"; "tactfully"; "winsomely"; "watchfully"; "irresponsibly"; "headlessly"; "charismatically"; "radiantly"; "sinfully"; "lawlessly"; "unlawfully"; "lawfully"; |] let adjs = [| "cheerful"; "wondrous"; "overwhelming"; "adorable"; "snazzy"; "hopeful"; "desperate"; "lustful"; "dour"; "sad"; "sorrowful"; "hopeless"; "all-consuming"; "mad"; "cruel"; "dreadful"; "terrible"; "fearsome"; "inescapable"; "thoughtless"; "vile"; "bashful"; "topless"; "naked"; "dire"; "baleful"; "vulgar"; "beautiful"; "horrid"; "cautious"; "violent"; "wise"; "supreme"; "marvelous"; "tactful"; "evil"; "wretched"; "fearful"; "awe-inspiring"; "vengeful"; "wrathful"; "omnipotent"; "charismatic"; "radiant"; "lawless"; "unlawful"; "lawful"; |] type rule = R of string array | S of string | B of rule list | A of rule array | O of rule;; let mkb = Array.map (fun a -> S a) let verbs = Array.append (mkb [| "shines"; "toots"; "honks"; "mutters"; "whispers"; "growls"; "roars"; "whuffles"; "warbles"; "howls"; "screams"; "shrieks"; "quivers"; "dances"; "hops up and down"; "grins"; "mumbles"; "counsels you"; "glares"; "stares at you"; "looks up"; "gazes at you"; "marvels"; "laughs"; "sins"; "whistles"; "whungles"; "jangles"; "twerks"; "blinks"; "blorps"; "flunks"; "planks"; "glitters"; "gleams"; "grumbles"; "grouches"; "bites you"; "gnaws on you"; "glimmers"; "gripes"; "plots"; "wonders"; "whittles"; "plays the fiddle"; "ponders"; "contemplates you"; "scrunches"; "zaps"; "zaps you"; "hoots"; "crackles"; "glows"; "blogs"; |]) [| B[S"radiates "; R nouns]; B[S"oozes "; R nouns]; |] let pick a = a.(Random.int (Array.length a)) let rec eval r : string = match r with | R x -> pick x | S x -> x | B x -> List.fold_left (^) "" (List.map eval x) | A x -> eval (pick x) | O x -> if Random.int 2 = 0 then eval x else "" let syl () = ................................................................................ let obs = A [| stop; fric; vstop; nasal; liq; |] in let v = R [| "a"; "e"; "u"; "o"; "i"; "ee"; "oo"; "au"; "ai";"oi";|] in let sr = A [| B[obs; v; O obs]; B[A [|stop;vstop;fric;vfric;|]; O liq; v; O obs]; |] in eval sr ;; let prefixes = [| "ur-"; "dire "; "dire ur-"; "super "; "ultra "; "great "; "grand "; "terror-"; "horror-"; "giant "; "evil "; "dark "; "vorpal "; "royal ";|] let name () = let size = 1 + (Random.int 3) in let rec loop n acc = if n = 0 then acc else loop (n-1) (acc^(syl ())) in (if Random.int 2 = 0 then (pick prefixes) else "") ^ loop size "";; let isvowel c = match c with | 'a' | 'e' | 'i' | 'o' | 'u' -> true ................................................................................ "egads!"; "how wondrous!"; "how marvelous!"; "how gruesome!"; "how splendid!"; "oh no!"; |] in let kinds = let maybe x = O(B[x; S" "]) in let adjp = B[maybe (R advs); R adjs] in B [ R [|"it";"she";"he";|]; S" "; A [| B[A verbs; S " "; A [| B[ S "with "; maybe adjp; R nouns;]; R advs; |]; ]; B[S"is "; maybe (R advs); A [| B[R mods; S" "; maybe adjp; R nouns;]; R mods_w; |] ]; |]; S "!"; ] in (pick msgs)^" "^(indef (name()))^"! " ^ (eval kinds);; let rec times n a = if n = 0 then () else (a (); times (n-1) a);; let () = Random.self_init (); (* times 20 (fun () ->*) print_string ((encounter ()) ^ "\n") (* )*) |