I am working on this Questor game.
I keep getting an error thats posted below.
I am using Python IDLE 2.6.5
Someone please help me fix this error and make the game work
I have spent too much time on it already.
Thanks
-----
Traceback (most recent call last):
File "G:\Class\Modul e 4\Module 4 SLP\slp project num3.py", line 5, in <module>
result = Qnode('Phython' );
NameError: name 'Qnode' is not defined
I keep getting an error thats posted below.
I am using Python IDLE 2.6.5
Someone please help me fix this error and make the game work
I have spent too much time on it already.
Thanks
-----
Traceback (most recent call last):
File "G:\Class\Modul e 4\Module 4 SLP\slp project num3.py", line 5, in <module>
result = Qnode('Phython' );
NameError: name 'Qnode' is not defined
Code:
# define some constants for future use
kQuestion = 'question'
kGuess = 'guess'
result = Qnode('Phython');
def yesno(prompt):
ans = raw_input(prompt)
return (ans[0]=='y' or ans[0]=='Y')
class Qnode:
newAnsNode='';
newanswer = '';
oldAnsNode = '';
nodes = {}
def __init__(self,guess):
self.nodetype = kGuess
self.desc = guess
def query(self):
if (self.nodetype == kQuestion):
return self.desc + " "
elif (self.nodetype == kGuess):
return "Is it a " + self.desc + "? "
else:
return "Error: invalid node type!"
def nextnode(self,answer):
return self.nodes[answer]
def makeQuest( self, question, newitem, newanswer ):
newAnsNode = Qnode(newitem)
newAnsNode.newanswer = newanswer;
oldAnsNode = Qnode(self.desc)
self.nodetype = kQuestion
self.desc = question
self.nodes = {newanswer:newAnsNode, not newanswer:oldAnsNode}
def traverse(fromNode):
yes = yesno( fromNode.query() )
if (fromNode.nodetype == kGuess):
if (yes):
print "I'm a genius!!!"
return fromNode
return traverse( fromNode.nextnode(yes) )
def run():
topNode = Qnode('python')
item = ''
done = 0
while not done:
result = traverse( topNode )
if (result):
item = raw_input("OK, what were you thinking of? ")
print "Enter a question that distinguishes a",
print item, "from a", result.desc + ":"
q = raw_input()
item = q
ans = yesno("What is the answer for " + item + "? ")
result.makeQuest( q, item, ans )
print "Got it."
print
done = not yesno("Do another? ")
print
if __name__ == '__main__':
run()
print raw_input("press Return>")
else:
print "Module questor imported."
print "To run, type: questor.run()"
print "To reload after changes to the source, type: reload(questor)"
Comment