对字符串进行重做和撤消,如何实现?

时间:2017-03-20 14:17:48

标签: java stack undo undo-redo

我想为我的数独游戏实现重做和撤消功能。但它似乎不起作用。以下是我的一些代码:

数独课程:

声明,(信息在构造函数中被赋予第一个网格值,因此起始长度为1):

Board board;
String[][] redoS;
Stack<String[][]> info = new Stack<String[][]>();

撤消和重做功能:

public boolean undo(){
        if(info.size()>2){
            redoS=(String[][])info.pop();   
            board.grid=(String[][])info.pop();
               return true;
        }
        return false;
    }
public boolean redo(){
        if(redoS!=null){
            board.grid=(String[][])redoS;
            info.push(redoS);
            return true;
        }
        return false;
    }

(添加输入法有info.push(),删除有info.pop()。)

游戏控制器文件/类:

@FXML
    public void gjenta(){
        if(game.redo()){
            console.setText("Gjentok");
        }
        console1.setText(game.toString());
    }
@FXML
    public void angre(){
        if(game.undo()){
            console.setText("Angret");
        }
        console1.setText(game.toString());
    }

获得0错误,在调用方法时,电路板不会改变。

0 个答案:

没有答案