My submission puts out a "story" that looks more like a transcript from
a turn-based MUD like dwemthy. It's basically just a poor man's markov
chain generator with a fixed model. Some of the turns are pretty funny
though. :)

#!/usr/bin/ruby

##
## A new Legend...
##

turns = (ARGV.first || 14).to_i

characters = ['Jack', 'Princess Lily', 'Honeythorn Gump',
              'Oona',  'Brown Tom', 'Screwball', 'Blunder',
              'Blix', 'The Lord of Darkness']

actions    = ['bites', 'conjugates', 'hits', 'scares', 'oogles',
              'thumps', 'extrapolates', 'undulates', 'pesters',
              'sputters', 'liquifies', 'castigates', 'gesticulates',
              'berates', 'circumscribes', 'burns', 'kicks',
              'punctures', 'disembowels', 'stabs', 'smells',
              'browbeats', 'villifies', 'deflagrates',
              'psychoanalyzes', 'dominates', 'cajoles']

modifiers  = ['near', 'under', 'around', 'past', 'next to',
              'about', 'with', 'by', 'above', 'beside',
              'close to', 'in the general vicinity of']

adjectives = ['actually', 'giddly', 'angrily', 'suddenly',
              'fearfully', 'faithfully', 'fiendishly',
              'maniacally', 'gradually', 'manually']

fragments  = ['until noon', 'when darkness falls',
              'in the mouth of chaos', 'as the rain falls',
              'all day long', 'while unicorns roam the earth',
              'as the world turns', 'in the belly of the beast',
              'on television', 'in Parliment', 'with gentle hands',
              'like a soccer scanger', 'with a cockney accent',
              'like a malevolent spirit', 'like a wild banshee']

plottwists = ['From out of nowhere..', 'All of a sudden..',
              'Somewhat randomly..', 'Then with utter abandon..',
              'In contempt of life..', 'When he finally realizes..',
              'Meanwhile in the forest..', 'After that..',
              'Back at the office..', 'During normal buisness hours..']

finales    = ['decimates destroys and otherwise obliterates',
              'pummels drop-kicks and powerfully suplexes',
              'burns explodes and utterly incinderates',
              'stabs cuts and overall perferates']

actions2   = ['hides', 'sneaks', 'knits sweaters', 'steals cheese',
              'answers the call of nature', 'aggrevates the wildlife',
              'saves the whales', 'clear cuts old-growth forests']

locations  = ['pools of bean curd', 'fountains of cheese dip',
              'deciduous forests', "farmer John's chicken coops",
              'Fruit Of The Loom underwear', 'the English Channel',
              'nests of burrowing rodents', 'festering sores',
              'public bathrooms', "Hugh Hefner's mansion",
              'Buddhist temples']

chains = [['characters', 'actions', 'characters', 'fragments'],
          ['characters', 'adjectives', 'actions', 'characters',
'fragments'],
          ['characters', 'actions', 'modifiers', 'characters',
'fragments'],
          ['characters', 'actions', 'modifiers', 'characters',
'adjectives', 'fragments'],
          ['characters', 'actions', 'characters', 'modifiers',
'characters']]

def choose(ary)
  ary[rand(ary.size)]
end

intervals = []
(turns/3).times {
  interval = rand(turns)
  while intervals.include?(interval) or
        intervals.include?(interval+1) or
        intervals.include?(interval-1)
    interval = rand(turns)
  end
  intervals << interval
}

story  = []
twists = []
turns.times {
  begin
    events = []
    choose(chains).each { |item|
      item   = eval(item)
      event = choose(item)
      while events.include?(event)
        event = choose(item)
      end
      events << event
    }
  end while story.include?(events)
  story << events
}

intervals.each { |i|
  twist = choose(plottwists)
  while twists.include?(twist)
    twist = choose(plottwists)
  end
  story.insert(i, [twist])
}

story.each { |event|
  puts event.join(' ') + '.'
}

print "\n~~~\n\nFinally, after much strife...\n#{choose(characters)} ",
 "#{choose(finales)} #{choose(characters)},\nwho #{choose(actions2)} ",
 "in or around #{choose(locations)} at night,\nand has thusly rid ",
 "the world of the scurrilous bane forever!\n\n~ The End ~\n"

__END__

Regards,
Jordan