Quantcast
Channel: Programming Forums
Viewing all articles
Browse latest Browse all 51036

Class name / Import problem

$
0
0
the_game.py is like follows:
from sys import exit
from random import randint
from game_room import *

class Hallway(object):
	"""\tYou are in a warehouse with 2 doors.
	Which one do you try to open?
	Number 1 or 2?
	"""

	def run(self):
	
		door = raw_input("> ")
	
		if door == "first" or door == "1": 
			next_room = Puzzle_room()
			return next_room
		elif door == "second" or door == 2:
			next_room = death()
			return next_room
		else:
			print "DO NOT COMPUTE!"
			exit(0)
		
	
class Puzzle_room(object):
	"""\tPuzzles, puzzles, puzzles, oh the lovely puzzles.
	I hope you like them. Here is one:
	Which of the three boxes in front of you has the key to
	the next room? And which one has a poisonous snake in it
	and which one has a grenade in it? Choose wisely:
	"""
	
	def run(self):
		box = raw_input("Box #: ")
	
		if box == "1" or box == "one":
			print "\tYou chose the right box! Congratz!"
			print "\tGo explore some more!"
			next_room = Empty_room()
			return next_room
		elif box == "2" or box == "two":
			print "\tOh nooo, the grenades splint is removed..."
			print "\tand you got blow into pieces. That is sad!"
			print "\tGame over!"
			next_room = death()
			return next_room
		elif box == "3" or box == "three":
			print "\tYaaay, the snake is sleeping and you try to open another box"
			print "\tAs soon as you move the snake wakes up and screams:"
			print "\tHello, muthafucka! And then he bites you. After which you"
			print "\ttwist and turn in agonising pain for 10 minutes and die"
			print "\tNice JOB!"
			next_room = death()
			return next_room
		else:
			print "\tDo not COMPUTE!"
			next_room = Puzzle_room()
			return next_room
		
		
class Monster_room(object):
	"""\tYou have entered a dark room. In the center of the room
	is a fire. Above the fire is a sign. The sign says "Feed
	the beast". What do you do?
	"""
	
	def run(self):
	
	
		the_beast = raw_input("I will: ")
	
		if "run" in the_beast:
			print "\tYou chicken! You run around for hours and die of dehydration."
			next_room = death()
			return next_room
		elif "wait" in the_beast:
			print "\tYou wait for 3 hours and die of boredom"
			print "\tNice job!"
			next_room = death()
			return next_room
		elif "feed" in the_beast:
			print "\tYou are brave, young badavan!"
			print "\tYou take the meat from the feed box and wave it around"
			print "\tFinally a little chihaua or smt that looks like a rat"
			print "\tcomes to you. You throw it the meat and it gives you the"
			print "\tkey to the next room because it is so intelligent, but"
			print "\tcan not feed itself."
			next_room = Basement()
			return next_room
		else:
			print "\tDo not COMPUTE!"
			next_room = Monster_room()
			return next_room
		
	
class Basement(object):
	"""\tYou go down the stairs and into the basement.
	The basement has another door. The door has
	a keypad. You need to hack the massive 1 digit code.
	"""
	
	def run(self):
	
	
		code = "%d" % (randint(1,5))
		guesses = 0
		guess = raw_input("[Keypad]: ")
	
		while guess != code and guesses < 4:
			print "Try again:"
			guesses += 1
			guess = raw_input("[Keypad]: ")
	
		if guess == code:
			print "\tYay, good for you. You will not die of boredom."
			print "\tRight here right now anyway."
			print "\tYou see a misterious glow from behind another door"
			print "\tSice you got big cojones you open the door and enter."
			next_room = Gold_room()
			return next_room
		else:
			print "\tWhether you do not know your numbers or just suck"
			print "\tYou can not crack the code and die of hunger."
			next_room = death()
			return next_room
		
		
class Gold_room(object):
	"""\tYou enter a room that is made entirely out of gold.
	You have to go over a suspicious looking bridge in orde
	to get out of the warehouse. There is some gold on floor.
	How many bars do you take?
	"""
	
	def run(self):
		gold = int(raw_input("# of bars: "))
	
		if gold < 10:
			print "\tCongratz, you win! You got out of the warehouse."
			exit(0)
		else:
			print "\tYou greedy mofo!"
			print "\tThe bridge collapses beacause you took to much!"
			print "\tEnjoy beeing dead."
			next_room = death()
			return next_room
		
		
class death(object):
	"""\tYou are dead.
	"""
	
	def run(self):
	
		exit(0)
		


	
class runner(object):

	def __init__(self, start):
		self.start = start
		
	def play(self):
		next_room = self.start
			
	
		while True:
			print "---------------" * 4
			print next_room.__doc__
			next_room = next_room.run()
		
			
first_room = Hallway()

game = runner(first_room)

game.play()



game_room.py , which is just to use another file, contains 1 simple room / class
class Empty_room(object):
	"""\tThe room is totally empty.
	There is a crayon on the floor.
	Draw yourself a door to get out
	of this place.
	"""
	
	def run(self):
		print "\tThat is one ugly ass door."
		next_room = Monster_room()
		return next_room

When I run it, and get to the end of the Empty_room, Which should direct me to Monster_room, I get a name error:
global name Monster_room is not defined

I guess it is probably a simple solution to this problem, but I can not figure it out, since I do import
evrything from game_room.py so it should work, but obviously does not. Can someone help me? Any help is appreciated

Viewing all articles
Browse latest Browse all 51036

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>