|
Projects
Spring 2012 Older Courses Fall 2011 Spring 2011 Fall 2010 Spring 2010 Fall 2009 Spring 2009
Fall 2008
Spring 2008
Fall 2007 HOWTOs |
Text-basedRPGMike Feole OverviewUsing a previous assignment of a simulation of the third floor of Olsen Hall I created a Text-based RPG. This RPG utilizes the code and methods from Homework 6 and of the external Scheme library Dice. Screenshot![]() Concepts DemonstratedData Directed Style: I use the message passing style implemented in the problem set 6, but with expanded uses and overwritten values. Data abstraction: Using the dice class damage is abstracted by getting dice values when needed. The characters don't know how to deal with the dice until you reach the base level of the program. The dice are merely passed as a function until needed. Type systems: Each class (orc, troll, and character) are all built off of the "person" class. If a message cannot be found in the class(orc, troll, or character) they are based to the lower level of person to see if a match is found. Local State Variables: Each class has its' own hp. Each class must also keep track of their own hp. This is done using Local State Variables assigned via let. External TechnologyMy external technology is both the dice class and the Olsen Hall third floor simulation. InnovationIn this project I took a previous piece of work and tied whole new pieces in to it. Instead of being eaten by grendel if he were in the room, he would do damage to you and you would return the favor. Also in this version items control damage done. For instance if you have a dagger you do 1-3 damage, on the other hand, if you have a katana you do 1-24 damage. Keeping track of hp is done by each character with local state variables. The map was also redone as to simulate a dungeon. Another main factor is that the interface allows for anyone not familiar with scheme to operate the character in the game. The object is the Mystical Gem! Technology Used Block DiagramCreate a simple block diagram of your software system that illustrates the major technical components and how they interact; e.g.: ![]() Additional RemarksThis project takes a previous piece of work and makes it more fun. The objective can be hard to obtain depending on the path you take there. This version can be manipulated and added on to make a full version text-based RPG. |