Now, I'm no pro at programming in Python, but here's what I recommend you do. I would have a class at the beginning to define all of the rooms, and then have the rest of the code below that. Then, it makes it easier to follow. In addition, I would also have a function that stores the name of the room in a variable which can then call the "Look around" type function. I would also have a variable that has the number of all of the gold and then another one that has the amount of gold that the player has. I would place the entire program in a loop so that every time the loop runs and checks if the player has found all of the gold, and if the player has, it acts accordingly. For example:
class rooms: (code for the various rooms goes here) if all_gold != player_gold: do this (program goes here) else: do this Regarding the compass part (N, S, E, W) I would also do a bunch of if's for each possible answer, and then an if on top of those. For example: if value != None: if value == whatever_value: do this if value == other_value: do other thing If you need extra help, just let me know. On Fri, Aug 27, 2010 at 9:42 PM, kevin hayes <kevino...@gmail.com> wrote: > Hi all! I'm trying to write a basic text adventure game to start learning > python (just for fun). I've gone through the first four chapters of a "learn > python game programming book" and I'm having trouble with the exercise on > writing a text adventure. I've been piecing together what is in the book > with some examples I found online. My goal with this question is not to > necessarily make the code I've written work, but to gain a fundamental > understanding of the concepts. > Can someone show me how to organize a text-based game with these > things kept in mind: 1)Each room will be a function 2)Direction(N,S,E,W) > 3)"Look at" 4)Pick Up 5)Quit 6)Accumulated Gold Coins 7) Find all the Gold > 8)Win/Lose > I'm looking for the simplest version of this as possible, because > I'm having trouble with the concepts. I'm only showing my code to give you > an idea where I'm at. However, I would really like someone to lay out a > little code structure for me. > > I'm using Python 2.6.5 on a Mac Version 10.4.11 and don't consider myself > computer literate, so bear with my ignorance please. > Also, don't feel like you have to correct my code...please just > create your own example of code structure to get me on the right track. > > Here is the start of my game: > > """FirstGame.py > First try at creating a text-based adventure game. Trying to learn the > basics > of creating functions and using if and loops. > kevin: 8/27/10""" > > keepGoing = True > while keepGoing == True: > > global gold > gold = 0 > > def RoomOne(): > print "You find yourself in a large room. Above you is a massive > crystal" > print "chandelier. In front of you is round stone fountain, spewing > water" > print "from it's center. On the walls hang green satin drapery. > The ceiling" > print "is comprised of three ornate arches. There is an arch in > front of you" > print "and to your right and left. A staircase leads up from under > the arch" > print "in front of you. Under the arches to your left and right are > large wooden" > print "doors, each with an iron handle. Enter 'Help' for a full > list of commands." > RoomOne() > Command = raw_input("Please enter a command. ") > Command = Command.upper() > if Command == "N": > RoomFour() > elif Command == "S": > print "You ditched the creepy castle and headed for the road." > keepGoing == False > elif Command == "E": > RoomTwo() > elif Command == "HELP": > print "List of Commands: 'Help',then enter for this list." > print "'N', then enter = Door to the North." > print "'S', then enter = Door to the South." > print "'E', then enter = Door to the East." > print "'W', then enter = Door to the West." > print "'Look at', then 'objects name', then enter > = Looks at an object." > print "'Pick Up', then 'objects name', then enter > = Picks up an object." > print "'Q', then enter = Quit Game." > > elif Command == "W": > RoomSix() > elif Command == "LOOK AT FOUNTAIN": > print "There appears to be 4 gold coins in it." > elif Command == "PICK UP 4 GOLD COINS": > gold = gold + 4 > print "Current Gold = ", gold > elif Command == "Q": > keepGoing = False > > else: > print "That doesn't work." > > def RoomTwo(): > print "Current Gold = ", gold > print "In the middle of the room is a large Gargoyle with fiery red > eyes." > print "He's holding a cup. In the southeast corner of the room you > see a broom" > print "with dust and cob-webs on it. Next to the broom is a dead > rat." > print "To the north is another door. In front of the door is an > overturned basket." > > promptTwo = raw_input("What are you going to do? ") > promptTwo = promptTwo.upper() > > if promptTwo == "N": > RoomThree() > elif promptTwo == "S": > print "There is no door there." > elif promptTwo == "W": > RoomOne() > elif promptTwo == "E": > print "There is only a wall there." > elif promptTwo == "Q": > keepGoing = False > elif promptTwo == "PICK UP BASKET": > print "You pick up the basket, revealing 2 gold pieces." > RoomTwo() > elif promptTwo == "PICK UP 2 GOLD COINS": > gold = gold + 2 > print "Current Gold = ", gold > RoomTwo() > elif promptTwo == "LOOK AT GARGOYLE": > print "Looking at the Gargoyle you notice he's really mean, and > really still." > RoomTwo() > elif promptTwo == "LOOK AT BROOM": > print "Looking at the broom, you notice it's unnecessarity dirty." > elif promptTwo == "PICK UP BROOM": > print " You pick up the broom. But you don't notice anything > special, so you" > print "set it back down where it was." > elif promptTwo == "LOOK AT CUP": > print "You look at the cup, and find nothing of interest." > elif promptTwo == "LOOK AT DEAD RAT": > print "You look at the dead rat and find it utterly disgusting." > elif promptTwo == "HELP": > print "List of Commands: 'Help',then enter for this list." > print "'N', then enter = Door to the North." > print "'S', then enter = Door to the South." > print "'E', then enter = Door to the East." > print "'W', then enter = Door to the West." > print "'Look at', then 'objects name', then enter > = Looks at an object." > print "'Pick Up', then 'objects name', then enter > = Picks up an object." > print "'Q', then enter = Quit Game." > else: > print "That didn't work." > > > def RoomThree(): > print "Current Gold = ", gold > print "To the north is a giant replica of a wooley mamoth. His > tusks are made" > print "of gold. To the east is a painting of Mother Theresa. Under > the painting" > print "is a baby's crib. The only doors you see are to the south > and west." > > promptThree = raw_input("What would you like to do? ") > promptThree = promptThree.upper() > > > > > > _______________________________________________ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > http://mail.python.org/mailman/listinfo/tutor > >
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor