用户:
lsk666666查看:0 回复:0 评论:0 创建时间:2020-07-25T20:09:27
前一阵想写一个文字游戏框架,已经写了一部分了,然后我又懒得搞下去了,在这里把代码开放,希望有人帮我把这个程序写完!!!
import xml.sax
variables = {}
dialogs = {}
class Dialog:
def __init__(self):
self.name = ""
self.say = ""
self.answers = {}
def getName(self):
return self.name
def getSay(self):
return self.say
def getAnswers(self):
return self.answers
def setName(self,name):
self.name = name
def setSay(self,say):
self.say = say
def setAnswers(self,answers):
self.answers = answers
def addAnswer(self,answer):
self.answers.append(answer)
class Variable():
def __init__(self,name,value):
self.name = name
self.value = value
def set(self,value):
self.value = value
def get(self):
return self.value
class Answer():
def __init__(self,name,executeOn,do):
self.name = name
self.executeOn = executeOn
self.do = do
def executOn(self):
return self.executeOn
def getDo(self):
return self.do
class Do():
def __init__(self):
pass
def execute(self):
pass
class Say(Do):
def __init__(self,text):
self.text = text
def execute(self):
print(self.text)
class Jump(Do):
def __init__(self,targetDialogId):
self.targetDialogId = targetDialogId
def execute(self):
executeDialog(dialogs[targetDialogId])
class Win(Do):
def __init__(self,text):
self.text = text
def execute(self):
print(self.text)
exit(0)
class Loss(Do):
def __init__(self,text):
self.text = text
def execute(self):
print(self.text)
exit(1)
class Parser(xml.sax.ContentHandler):
def __init__(self):
self.dialogs = []
self.variables = {}
self.currentDialogId = 0
def startElement(self,tag,attributes):
if tag == "variable":
name = attributes["name"]
value = attributes["value"]
variable = Variable(name,value)
self.variables[name] = variable
elif tag == "dialog":
dialog = Dialog()
self.dialogs.append(dialog)
self.currentDialogId = self.dialogs.index(dialog)
elif tag == "answer":
answer = Answer
def parse(gamefile):
def execute(gamefile):
variables,dialogs = parse(gamefile)