#!/usr/local/bin/guile \ -e main -s !# ; ******************************************************************* ; ; Copyright 2006 by Sean Conner. All Rights Reserved. ; ; This program is free software; you can redistribute it and/or ; modify it under the terms of the GNU General Public License ; as published by the Free Software Foundation; either version 2 ; of the License, or (at your option) any later version. ; ; This program is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; ; You should have received a copy of the GNU General Public License ; along with this program; if not, write to the Free Software ; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ; ; Comments, questions and criticisms can be sent to: sean@conman.org ; ; ******************************************************************* (define adj/awards #( "Nobel" "Pulitzer" "Olympic" "Oscar" "Emmy" "Tony" "Newberry" ) ) (define adj/politicalparty #( "Rebublican" "Democrat" "Whig" "Communist" "Socialist" "Independent" "Facist" "Green" "Libertarian" ) ) (define adj/populations #( "American" "Amish" "African" "European" "Asian" "Irish" "German" "Native" "Bolivian" "Catholic" "Jewish" ) ) (define adj #( ((ref adj/populations) "-American") "French-Canadian" ((ref adj/awards) " prize-wining") ((ref adj/politicalparty)) "albino" "alcoholic" "amnesiac" "antique-collecting" "arachnophobic" "artistic" "beautiful" "belly-dancing" "benighted" "bisexual" "blind" "blonde" "bloodthirsty" "bohemian" "bookish" "brilliant" "burnt out" "cat-loving" "chain-smoking" "chivalrous" "cigar-chomping" "coffee-fuelled" "cold-hearted" "communist" "cosmopolitan" "crooked" "cynical" "day-dreaming" "deeply religious" "devious" "disco-crazy" "dishevelled" "ditzy" "drug-addicted" "elegant" "enchanted" "extravagent" "fast talking" "fiendish" "flyboy" "foul-mouthed" "foxy" "gay" "genetically engineered" "globe-trotting" "gold-digging" "goth" "green-fingered" "green-skinned" "guerilla" "guitar-strumming" "gun-slinging" "gypsy" "hard-bitten" "hate-fuelled" "high-kicking" "hip-hop" "hunchbacked" "hypochondriac" "immortal" "impetuous" "insomniac" "jaded" "junkie" "kleptomaniac" "leather-clad" "lonely" "lounge-singing" "lovable" "man-hating" "manipulative" "maverick" "mentally unstable" "misogynist" "mistrustful" "moralistic" "motormouth" "mutant" "mute" "neurotic" "new-age" "ninja" "notorious" "nymphomaniac" "obese" "old-fashioned" "one-eyed" "one-legged" "orphaned" "otherworldly" "out-of-work" "overambitious" "oversexed" "overworked" "paranoid" "pirate" "playboy" "plucky" "pregnant" "provocative" "psychic" "psychotic" "punk" "radical" "red-headed" "renegade" "sarcastic" "scantily clad" "scarfaced" "scrappy" "shark-wrestling" "sharp-shooting" "short-sighted" "shy" "skateboarding" "small-town" "snooty" "soccer-playing" "streetsmart" "strong-willed" "suave" "suicidal" "superhumanly strong" "supernatural" "sweet-toothed" "sword-wielding" "tempestuous" "thirtysomething" "time-tossed" "time-travelling" "tomboy" "tortured" "transdimensional" "umbrella-wielding" "uncontrollable" "unconventional" "underprivileged" "ungodly" "uprooted" "vegetarian" "vengence seeking" "violent" "virginal" "vivacious" "voodoo" "war-weary" "warm-hearted" "wealthy" "white trash" "winged" "wisecracking" "witless" "world-famous" "zombie" ) ) (define jointmission #( "capture the FBI's number one most wanted." "deliver battle plans to the rebels." "drive across the country." "fight crime." "infiltrate a crime syndicate to root out a high ranking FBI agent." "infiltrate the FBI to root out a high ranking crime lord." "prevent an alien invasion." "prevent nuclear armageddon." "save the world." "solve bizarre murders." "steal the gold from Ft. Knox." "take out seven samurai terrorizing a small town." "take out the Illinois Nazis." "operate an orphanage for wayward girls." "steal several million dollars from the Russian Mob." "work their way across the country in search of an elephant." "reposses the car of the President." ) ) (define mission/planets #( "Mercury" "Venus" "Earth" "Mars" "Jupiter" "Saturn" "Uranus" "Neptune" "Pluto" "Nibiru" "X" "Klingon" "Romulus" "Remus" "Vulcan" "Alderran" ) ) (define mission/from #( ((ref mission/planets)) "a different time and place" "a doomed world" "a family of eight older brothers" ("a secret island of " (ref adj) " women") ("aristocratic " (ref adj/populations) " stock") "beyond the grave" "out of town" "the 'hood" "the Mississippi delta" "the wrong side of the tracks" ) ) (define mission/employer #( "God" "Buddha" "Jesus" "Shiva" "Allah" "Jehova" "YHWH" ) ) (define mission/relations #( ((ref mission/relation)) ((ref mission/close_relation) "-in-law") ) ) (define mission/close_relation #( "mother" "father" "sister" "brother" ) ) (define mission/relation #( ((ref mission/close_relation)) "sibling" "aunt" "uncle" "cousin" "neice" "nephew" "grandfather" "grandmother" ) ) (define mission/crime #( "murder" "theft" "grand theft" "embezzlement" "car accident" ) ) (define mission/on #( ("a mission from " (ref mission/employer)) ("a search for " (f-his) " missing " (ref mission/relations)) ((f-her) " way to prison for a " (ref mission/crime) " " (f-she) " didn't commit") ((f-his) " last day on the job") "the edge" "the hunt for the last specimen of a great and near-mythical creature" "the run from a secret government giggle squad" "the run" "the trail of a serial killer" "the wrong side of the law" ) ) (define mission/who #( ("believes " (f-he) " can never love again.") ("believes " (f-she) " is the reincarnation of an ancient " (ref adj/populations) " " (xpick mission/rulers)) "can talk to animals" "don't take no shit from nobody" ("dotes on " (f-his) " loving old ma") "dreams of becoming Elvis" "hangs with the wrong crowd" ("hides " (f-her) " beauty behind a pair of thick-framed spectacles") ("hides " (f-his) " scarred face behind a mask") ("inherited a spooky stately manor from " (f-her) " late " (ref adj) " " (ref mission/relations)) "knows the secret of the alien invasion" "must take medication to keep him sane" ) ) (define mission/with #( "a birthmark shaped like Liberty's torch" "a flame-thrower" "a knack for trouble" "a love of Aquanet" "a mysterious suitcase handcuffed to %his% arm" "a passion for fast cars" "a passion for mummies" "a robot buddy named Sparky" "a secret" ("a song in " (f-her) " heart and a spring in " (f-her) " step") "a weak spot for Judy Garland and a penchant for papercuts" "a winning smile and a way with the ladies" "acid for blood" "an MBA from Harvard" "an evil twin sibling" "an incredible destiny" ((f-her) " own daytime radio talk show") "no name" "nothing left to lose" ("only " (f-her) "self to blame") "someone else's memories" "the power to bend men's minds" "the power to see death" "the soul of a mighy warrior" ) ) (define mission #( "descended from a line of powerful witches." "dreaming of a virtual world of stage names and jet packs." "fleeing from a Satanic cult." "fleeing from a secret government programme." "for the 21st century." ("from " (ref mission/from)) "gone bad." "haunted by an iconic dead American confidante" "haunted by memories of 'Nam." "hiding under the cloak of justice." "in a wheelchair." "in drag." "in the witness protection scheme." "in the wrong place at the wrong time." "living homeless in New York's sewers." "living on borrowed time." "living undercover at Ringling Bros. Circus." "looking for 'the Big One.'" "looking for a cure to the poison coursing through %his% veins." "looking for love in all the wrong places." "married to the Mob." "moving from town to town, helping folk in trouble." ("on " (ref mission/on)) "operating on the wrong side of the law." ("plagued by the memory of " (f-his) " family's brutal murder.") "possessed of the uncanny powers of an insect." "prone to fits of savage, blood-crazed rage." ("searching for " (f-his) " wife's true killer.") ("trapped in a world " (f-he) " never made.") "trying to make a difference in a man's world." ("who " (ref mission/who)) "whom everyone believes is mad." ("with " (ref mission/with)) ) ) (define occupation #( "Green Beret" "Hell's Angel" "Miss Teen Kentucky" "Valkyrie" "ad-exec" "administrative assistant" "advertising executive" "angel" "archaeologist" "assassin" "astronaut" "barbarian" "barmaid" "bodyguard" "bounty hunter" "boxer" "cab driver" "card sharp" "cat burglar" "college professor" "cop" "cowboy" "cyborg" "detective" "doctor" "dog-catcher" "dwarf" "ex-con" "fairy princess" "farmboy" "femme fatale" "filmmaker" "firefighter" "former first lady" "gangster" "gentleman spy" "grifter" "hairdresser" "hooker" "househusband" "inventor" "journalist" "jungle king" "lawyer" "lemon harvester" "librarian" "magician's assistant" "master criminal" "matador" "mechanic" "mercenary" "mermaid" "messiah" "museum curator" "nun" "opera singer" "paramedic" "paranormal investigator" "pearl diver" "photographer" "politician" "psychobotanist" "queen of the dead" "research scientist" "rock star" "romance novelist" "safe cracker" "schoolgirl" "senator" "shaman" "single mother" "snake charmer" "soap star" "socialite" "sorceror" "stage actor" "stripper" "techguy" "traffic cop" "vagrant" "vampire" "vampire hunter" "video geek" "waffle chef" "werewolf" "widow" "wrestler" ) ) (define malename #( "Bob" "Joe" "Sam" ) ) (define femalename #( "Alice" "Darleen" "Frances" ) ) (define lastname #( "Smith" "Jones" "Johnson" "Washington" ) ) (define default-template #( ( (f-male) (ref malename) " " (ref malename) " " (ref lastname) " is a " (ref adj) " " (ref adj) " " (ref occupation) " " (ref mission) " " (f-female) (ref femalename) " " (ref femalename) " " (ref lastname)" is a " (ref adj) " " (ref adj) " " (ref occupation) " " (ref mission) " And together they must " (ref jointmission) ) ) ) ; ******************************************************************** (define rndstate 0) (define refn array-ref) (define sex 'male) (set! rndstate (seed->random-state (current-time))) (define (f-his) (if (eq? sex 'male) "his" "her" ) ) (define (f-he) (if (eq? sex 'male) "he" "she" ) ) (define (f-male) (set! sex 'male) "" ) (define (f-female) (set! sex 'female) "" ) (define f-her f-his) (define f-she f-he) (define (main args) (display (racter)) (display "\n\n") (exit 0) ) (define (nref a) (car (array-dimensions a))) (define (ref a) (let ((result (array-ref a (random (nref a) rndstate)))) (cond ((string? result) result) ((list? result) (eval (cons 'string-append result) (interaction-environment) )) ) ) ) (define (racter) (ref default-template))