我试图通过添加保存/加载功能(不幸地使用文件)来完成使用python的任务的最后润色。我定义了四个函数,并为每个函数编写代码,但我没有提出任何内容,因为它不想工作,我们的教师对文件的指令非常基本。
def savegame():
f=open("savefile.txt","w")
f.write(playeroneright/playeroneleft/playertworight/playertwoleft/playertworight/computerright/computerleft)
f.close()
def opengame():
f=open("savefile.txt")
lines=f.readlines()
playeroneright=lines[0]
playeroneleft=lines[1]
playertworight=lines[2]
playertwoleft=lines[3]
computerright=lines[4]
computerright=lines[5]
f.close()
def newgame():
deletecontent("savefile.txt")
f=open("savefile.txt","w")
f.write(1)
f.write(1)
f.write(1)
f.write(1)
f.write(1)
f.write(1)
f.close()
opengame()
def deletecontent(pfile):
fn=pfile.name
pfile.close()
第一个函数(savegame)应该取每个变量,并将它的数值保存在游戏中当前保存的不同行上(游戏操纵变量,playeroneright等等)。它应该将它保存在savefile.txt文件中。
第二个函数(opengame)应该取当前保存在文件中的内容,并将该文件分配给变量,基本上是一个加载函数。
第三个功能(newgame)应该将游戏重置为起始点(所有变量都取值1),然后使用上述功能打开游戏。
最后一个函数(deletecontent)仅在第三个函数中用于清除文档,以便它可以分配所有新值。
这些是我到目前为止的尝试,而且我还不是很擅长文件,但我想把它们弄清楚一点。如果有人有任何想法(最好是简单的,如果可能的话),这将是非常棒的。谢谢!
答案 0 :(得分:2)
只是为了让你去(不在这里做其他人的作业;))
def savegame(playerone_right, playerone_left, ....):
f=open("savefile.txt","w")
f.write(playerone_right + "\n")
f.write(playerone_left + "\n")
...
f.close()
“\ n”会导致换行(新行) +两个字符串连接它们。
一般情况下,你会选择其他方式pickle,json,...,但看起来你的例子中给出了所需的格式。
要真正使用在某处保存变量所需的函数,并将它们作为需要它们的参数赋予它们,或者使用global variables。
要使用全局变量,请添加:
global playeroneright, playeroneleft, playertworight, playertwoleft, playertworight, computerright, computerleft
使用此变量到每个函数的开头。 现在你不再需要将它们作为参数赋予它们,因为每个函数都可以使用全局变量。
这不是解决这个问题的最好办法,但如果不向你介绍更多模式,这应该是最简单的方法。