All pastes #2054910 Raw Edit

Someone

public python v1 · immutable
#2054910 ·published 2011-05-07 17:13 UTC
rendered paste body
import osdef Game(FileName):	def LoadGame(FileName):		def CreateRoom(DataRecord, GameData):			def ParseVariableRecords(VariableRecords, Deliminator):				def AssignVariableRecordToRecords(VariableRecord, Records):					Records[VariableRecord[0]] = VariableRecord[1]					return								ParsedVariableRecords = {}				if VariableRecords == '': return {}				for VariableRecord in VariableRecords.split(Deliminator):					AssignVariableRecordToRecords(VariableRecord.split('='),							ParsedVariableRecords)								return ParsedVariableRecords						#Record Columns			ID = 0			RoomName = 1			RoomDescription = 2			Exits = 3			HiddenExits = 4			FreeActions = 5						RoomRecord = {}			RoomRecord["RoomName"] = DataRecord[RoomName]			RoomRecord["Description"] = DataRecord[RoomDescription]			RoomRecord["Exits"] = ParseVariableRecords(DataRecord[Exits], ',')			RoomRecord["HiddenExits"] = ParseVariableRecords(DataRecord[HiddenExits], ',')			RoomRecord["FreeActions"] = ParseVariableRecords(DataRecord[FreeActions], '\\')						GameData[DataRecord[ID]] = RoomRecord			return				GameData = {}		for DataRecord in open(FileName, 'r'):			CreateRoom(DataRecord.rstrip(os.linesep).split('|'), GameData)				return GameData		def RunGame(GameData):		def DisplayRoom(Room):			print			print Room["RoomName"]			print Room["Description"]			print "Exits: %s" % (', '.join(Room["Exits"].keys()),)			return				def PlayerInteraction(Input, CurrentRoom):			def DisplayAndChangeToRoom(Room):				DisplayRoom(Room)				return Room						if Input == "look": DisplayRoom(CurrentRoom)			elif CurrentRoom["Exits"].has_key(Input):				return DisplayAndChangeToRoom(GameData[CurrentRoom["Exits"][Input]])			elif CurrentRoom["HiddenExits"].has_key(Input):				return DisplayAndChangeToRoom(GameData[CurrentRoom["HiddenExits"][Input]])			elif CurrentRoom["FreeActions"].has_key(Input):				print CurrentRoom["FreeActions"][Input]			else:				print "Sorry, I don't understand."						return CurrentRoom					CurrentRoom = GameData["Start"]		DisplayRoom(CurrentRoom)		while True:			CurrentRoom = PlayerInteraction(raw_input("> ").lower(), CurrentRoom)		return		RunGame(LoadGame(FileName))Game("game.txt")