I was playing Skunk, and had enough brain-power free to wonder if there is any meaningful strategy possible. It reminds me a lot of the "tit for tat" computer tournament where different strategies would win in different populations, but the most general good strategy was surprising and simple.

So, I'm thinking of a Perl Skunk Tourney. Everyone who cares would submit a module that defines an object representing his player. At the simplest, it need only provide a function that returns true/false when called to ask if he wants to roll again or stand. Passed in as parameters are immediatly interesting stats about his turn, and a "game" object that can be inspected for more details on what all players are doing.

What do you think?
About the Tourney program framework idea, not just the specific game.

I'm thinking that every submitted file will be placed in a directory for that purpose, and the names of the players can be picked up by loading all files in that directory. The main script would set up auto-turnaments of whatever sizes and elimination rules, or a turnament of whoever is specifically asked for. A player's object can have more than one instance.

So, what's an elegant way for a main script to figure out what was just loaded? Is the "return value" (the last statement executed) in a require saved anywhere? Update: Yes, it's the return from a require statement.

I'll trust the player's code not to cheat--modify the game object, write outside its package, etc. so I don't plan on doing any heavy security stuff.

—John


In reply to Family/Kids dice game 'Skunk' study by John M. Dlugosz

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.