There are lots of ways to extend this program; it's a small world, after all. You could add lots of specialized types of Item (door, key, weapon, etc.). You could add multi-playerness (this would involve finding a way to get data from multiple players, say a binding to BSD-style sockets, and switching from Text_IO to an IO routine that would use the interface). You could permit dynamic creation and modification of the world at run-time (add a "wizard" command, and then add wizard-only commands like @create object, @destroy object, @view object, and @set object attribute=value). I haven't implemented independently active monsters, or a combat system, or magic; you might want one or more of them. Perhaps you could permit scripts to be executed at run-time.
The best way to understand Small is probably to look at it. There are several ways you can look at it:
You are strongly encouraged to wander about and look at the hypertext source code for Small, but you do not have to. The Lovelace home page has a link to Small if you choose to look at it later.
Note that the following legal note appears in each file of program Small:
-- -- Copyright (C) 1996 Ada Resource Association (ARA), Columbus, Ohio. -- Author: David A. Wheeler -- -- -- Permission to use, copy, modify, and distribute this software and its -- documentation for any purpose and without fee is hereby granted, -- provided that the above copyright and authorship notice appear in all -- copies and that both that copyright notice and this permission notice -- appear in supporting documentation. -- -- The ARA makes no representations about the suitability of this software -- for any purpose. It is provided "as is" without express -- or implied warranty. --
There is no quiz question for this section.
You may go to the next section.
Go back to the previous section
Go up to the outline of lesson 18
David A. Wheeler (dwheeler@ida.org)