I recently wrote on in C (primarily to play with C which I haven't done in about 10 years). My biggest friend was tok(). I would be very surprised if there wasn't a wrapper around tok() already built. Or, even better, you can probably build your own version of tok() quite easily.

As for mapping what you parse from the commandline into your data structures, I found it very useful to write callbacks and associate them with commands. So, the "examine" command would have a function associated with it that would be called whenever the "examine" command was entered. This is sometimes known as a dispatch table. Although I worked primarily with the command, there is no reason why you cannot extend that idea to a function that will, given the name of something, return back a list of objects that map to that something. You could even have that function constrain based on various criteria, such as what the player can see, what the player has in inventory, etc.

I have a node here regarding the testing of this game. The "Adventure" link links to the a PDF written by Donald Knuth dissecting the original Adventure game. It's a C translation of the original game in Fortran, but it has a number of good ideas.

------
We are the carpenters and bricklayers of the Information Age.

Then there are Damian modules.... *sigh* ... that's not about being less-lazy -- that's about being on some really good drugs -- you know, there is no spoon. - flyingmoose

I shouldn't have to say this, but any code, unless otherwise stated, is untested


In reply to Re: Writing a text adventure in Perl by dragonchild
in thread Writing a text adventure in Perl by Trag

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.