0

我想编写一个函数,将用户插入到函数plays中的参数的所有字符串保存到函数move()中的字符串undo_strundo()。我在这里想念什么?

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]
4

1 回答 1

1

我希望这个对你有用。如果您添加更多的类属性来保存信息,它应该是相当容易的。这里的 init 方法会将 sokoban.plays 和 sokoban undo_str 初始化为空字符串。sokoban.move('string') 会将 sokoban.plays 更改为 'string',并且 sokoban.undo_str() 会将当前 sokoban.plays 添加到 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冲突)

于 2012-12-26T21:55:36.570 回答