我想写一个函数,保存用户在函数move()
中插入到参数plays
中的所有字符串,在函数undo()
中插入到字符串undo_str
中。这里我漏掉了什么?
class Sokoban:
def __init__(self, board):
self.board = board.copy()
def move(self, plays):
............
def undo(self):
undo_str=""
undo_str=undo_str[:]+plays
self.undo=undo_str[:-1]
发布于 2012-12-27 05:55:37
我希望这能有所帮助。如果再添加几个类属性来保存信息,应该会相当容易。在这里,init方法将sokoban.plays和sokoban undo_str初始化为空字符串。sokoban.move('string')会将sokoban.plays更改为'string',而sokoban.undo_str()会将当前字符串添加到sokoban.undo_str
class Sokoban:
def __init__(self, board):
self.board = board.copy()
self.plays = ''
self.undo_str = ''
def move(self, plays):
self.plays = plays
............
def undo(self):
undo_str=undo_str[:]+self.plays
sokoban = Sokoban(board)
sokoban.move('play1')
sokoban.undo()
sokoban.move('play2')
sokoban.undo()
In: sokoban.plays
Out 'play2'
In: sokoban.undo_str
Out: 'play1play2'
(注意,我去掉了行'self.undo = self.undo_str:-1‘。这将与函数self.undo冲突)
https://stackoverflow.com/questions/14046572
复制相似问题