#!/usr/bin/perl # # fortune4.pl, version 2- a random wisdom generating chomskybot # # all code original Dave Nelson # the Dave of daves... # #released to public domain December 1997 #re-released January 1999 srand; open (VERBS, "verbs.for"); open (NOUNS, "nouns.for"); open (ADJS, "adjs.for"); @verbs = ; @nouns = ; @adjs = ; chop (@verbs); chop (@nouns); chop (@adjs); @articles = ("a","the","your","this","that"); @plural = ("your","the","their","these","those"); @mod = (" never "," always "," eternally "," seldom "," "); $nagain = $nouns[rand(@nouns)]; $m = $mod[rand(@mod)]; $aagain = $adjs[rand(@adjs)]; $v = $verbs[rand(@verbs)]; $n = $nouns[rand(@nouns)]; $a = $adjs[rand(@adjs)]; if ($n =~ $nagain){ $n = $nouns[rand(@nouns)]; }; &gerund; if($n =~ /\b[aeiouy].+[^s]\b/i){ $nart = "an"; }elsif ($n =~ /.+s\b/){ $nart = $plural[rand(@plural)]; }elsif ($n =~ /\s.+s\b/){ $nart = $plural[rand(@plural)]; }else{ $nart = $articles[rand(@articles)]; }; if($a =~ /\b[aeiouy].+/i){ if ($nagain =~ /.+[^s]\b/){ $art = "an"; }elsif ($nagain =~ /\s.+[^s]\b/){ $art = "an"; }else{ $art = $plural[rand(@plural)]; }; }elsif ($nagain =~ /.+s\b/){ $art = $plural[rand(@plural)]; }elsif ($nagain =~ /\s.+s\b/){ $art = $plural[rand(@plural)]; }else{ $art = $articles[rand(@articles)]; }; if($aagain =~ /\b[aeiouy].+/i){ if ($n =~ /.+[^s]\b/){ $aart = "an"; }elsif ($n =~ /\s.+[^s]\b/){ $aart = "an"; }else{ $aart = $plural[rand(@plural)]; }; }elsif ($n =~ /.+s\b/){ $aart = $plural[rand(@plural)]; }elsif ($n =~ /\s.+s\b/){ $aart = $plural[rand(@plural)]; }else{ $aart = $articles[rand(@articles)]; }; @choose = (1..5); $choice = $choose[rand(@choose)]; if ($choice =~ 5){ $print = "You will"."$m"."$v $art $a $nagain."; }elsif ($choice =~ 2){ $print = "You are"."$m"."$tempverb $art $a $nagain."; }elsif ($choice =~ 3){ $print = "Do not $v $art $a $nagain with $aart $aagain $n."; }elsif ($choice =~ 4){ $print = "Avoid $tempverb $art $a
$nagain because of $aart $aagain $n."; }else{ $_ = (rand(@adjs)) * 100000000000; s/\..+//g; s/(\d\d?)/\1, /g; chop($_); chop($_); if ($a =~ /\b[aeiou].+/i){ $en = "n"; }; $print = "You are a$en $a person.
Your lucky numbers are:
$_."; }; print "Content-type: text/html"; print "\n\n"; print "Your fortune reads:"; print ""; print "

"; print "$print"; print "

To recieve another fortune, press Ctril-R.
"; print "
"; sub gerund{ local ($one); local ($two); $_ = $v; /(\w+)(\s.*)?/; $one = $1; $two = $2; if ($1 =~ /\b[^aeiou]{1,2}[aeiou][^aeiouy]\b/){ $one =~ s/\b(.*)(.)\b/\1\2\2/g; }elsif ($1 =~ /[^aeiouy]+e\b/) { chop($one); }; $tempverb = "$one"."ing"."$two"; };