text adventure question
Eric_Dexter at msn.com
Eric_Dexter at msn.com
Sat Dec 2 22:40:06 EST 2006
When I was playing around with adventure games using oop (in c++)
I had all charecters defined as a type, no need to seperate non-player
charecters with user defined charecters. Makes it easier to create a
party of charecters or monsters. I left it up to the logic of the
program to define behavior after it was loaded in.
http://www.stormpages.com/edexter/csound.html
Ara Kooser wrote:
> I am working on a text adventure game for python to get back into
> python programming. My version 0.1 used only functions so I could get
> familiar with how those work. I want to move beyond that. I am not
> sure what would be a good Python way of handling this. I was
> wondering if classes would help? What things should be included in the
> main program?
>
> A couple of my goals are:
> 1) Remove the rooms (or areas) from the main program and have them
> called in as needed.
> 2) Remove NPC's and monsters from the main program and have them
> called in as needed.
> 3) A way of keeping track of time passing in the game
> 4) Having the main character info stored somewhere else.
>
> Below is pasted a section of my code. Each room is a function that is
> later called. I included only one room to keep this short. Thanks you
> for suggestions and your time.
>
> Code:
>
> #A sample text adventure game
> #Version 0.1
> #By Ara Kooser
>
> import random
> import sys
> import string
>
>
>
> #Using global variables for the character
> #Want to use a function instead
>
> stre = 9
> con = 8
> inte = 11
> agl = 14
> app = 10
> mag = 6
> sz = 9
>
> hp = 17
>
> reputation = 0
>
> stealth = False
>
> quest1 = False
> quest2 = False
>
> cruse = False
> poison = False
> diseased = False
>
> ducats = 50
> lira = 25
> florin = 80
>
>
> equipment = {'Sword': 1, 'Dagger': 1, 'Walking staff': 1, 'Leather Armor':1}
> backpack = {'Flint and steel': 1, 'Rations': 7, 'dressing kit': 6,
> 'waterskin': 2}
> belt_pouch = {}
>
> #####################################################################################
>
> day = False
>
> ### Global variables for items ###
>
> #grass blades in meadow_1
> getGrass_m1 = 0
> #mushroom in edge_forest1
> getMushroom_ef1 = 0
> #orc in forest2
> aliveOrc = 0
>
>
>
> #####################################################################################
>
> # help function that will give you a list of commands
> def help():
> print "look, examine (object), n, w, e, s, take (item)"
> print "climb, stealth, fishing, herbalism, forage, haggle"
> print "field dressing"
> print "wield (object), attack, flee, close, withdraw, maintain"
> print "backpack, belt pouch, cs"
> print "Example: examine book, take ducats, attack orc"
>
> def character_sheet():
> print """\
> ============================================================================
> Name: Profession:
> Social Class: Race:
>
> ============================================================================
> Strength
> Constitution
> Intelligence
> Agility
> Appearance
> Magic
> Size
> ============================================================================
> Ducats: Lira: Florin:
>
> Skills: Forage, Haggle, Stealth, Fishing, Herbalism, Climb, Sword, Staff,
> Dagger, Field Dressing
>
> Equipment: Backpack, Belt Pouch, Run of the Mill Sword, Dagger, Flint&Steel
> 1 week food, 2 waterskins, walking stick, dressing kit
> ============================================================================
> """
>
>
>
> def start():
> print '''
> SAMPLE TEXT ADVENTURE V0.1
> You are the last person to leave the small village of Hommlet. The wooden
> gate closes behind you and twilight reaches across the land. A dense mist
> creeps up out of the ground, only to be kept at bay by the watchmens torches.
> Somewhere deep in the woods lies the foul orcs you have tracked for several
> days.
>
> '''
>
> print
>
> def outside1():
> global hp
> global reputation
> print " Current Hit Points = ",hp
> print " Current Reputation = ",reputation
> print ''' You are outside the town gates. The dirt road heads
> (N)orth to another
> town several days away. The forest lies (E)ast and (W)est through the
> meadows. The
> rumors you heard in town describe the orcs as being to the west. The town's gate
> is to the (S)outh but it is locked for the night.
> Type 'help' for a full list of commands.'''
> print
> prompt_out1()
>
> def out1_desc():
> print ''' The fog is growing denser as the sun sets on the meadows.
> The exits are (N)orth, (E)ast and (W)est.'''
> print
> prompt_out1()
>
> def prompt_out1():
> global day
> prompt_o1 = raw_input("Type a command: ").lower()
> try:
>
> if prompt_o1 == "help":
> help()
> print
> prompt_out1()
>
> elif prompt_o1 == "cs":
> character_sheet()
> print
> prompt_out1()
>
> elif prompt_o1 == "status":
> print " Current Hit Points = ",hp
> print " Current Reputation = ",reputation
> prompt_out1()
>
> elif prompt_o1 == "backpack":
> print backpack
> prompt_out1()
>
> elif prompt_o1 == "belt pouch":
> print belt_pouch
> prompt_out1()
>
> elif prompt_o1 == "equipment":
> print equipment
> prompt_out1()
>
> ########################################################################################
> elif prompt_o1 == "examine fog":
> print "The fog seems natural enough for this time of year."
> print
> prompt_out1()
>
> elif prompt_o1 == "examine road":
> print ''' The road is a well travelled dirt road
> winding many leagues'''
> print
> prompt_out1()
>
> elif prompt_o1 == "look":
> out1_desc()
>
> #######################################################################################
> elif prompt_o1 == "w":
> meadow1()
>
> elif prompt_o1 == "e":
> meadow2()
>
>
> elif prompt_o1 == "s":
> #if day = False
> print "The town's gate is closed for the night"
> print
> prompt_out1()
> #elif
> # town_1
>
> elif prompt_o1 == "n":
> n_road1()
>
> ######################################################################################
> elif prompt_o1 == "haggle":
> print "There is no one to haggle with here."
> promt_out1()
>
> elif prompt_o1 == "stealth":
> print "You try and be stealthy"
> prompt_out1()
>
> else:
> print "Please choose another command. That command is invalid"
> print
> prompt_out1()
>
> except ValueError:
> print "Please choose another command. That command is invalid"
> print
> prompt_out1()
>
> #there are 5 more rooms that follow using functions
>
> start()
> outside1()
>
>
> --
> Quis hic locus, quae regio, quae mundi plaga. Ubi sum. Sub ortu solis
> an sub cardine glacialis ursae.
More information about the Python-list
mailing list