如何将所有值设置回原始起始值

时间:2014-04-03 01:07:04

标签: java

我有一款类似于生命游戏的游戏。游戏涉及创建房屋和重新安排邻居等。我想重新启动游戏,只需要将所有这些值设置回原始的起始值。我如何使用代码执行此操作。我理解它的英文,但似乎无法将其转换为代码。

这是我的一些主要程序(如果有人希望我发布我可以发布的整个主程序),但要简单,我不想让你们混淆。

所以我想要的是:要重新启动游戏,我只想将所有这些值设置回原始起始值。

一些主要计划:

public class Ghetto extends JFrame implements ActionListener,      MouseListener,MouseMotionListener 
{

protected Grids theGrid;
JButton resetButton;
javax.swing.Timer timer; // generates ticks that drive the animation

public final static int SIZE = 5;
public final static int BLUE = 10;
public final static int RED = 8;
public final static int DIVERSITY_PERCENTAGE = 70;

public static void main(String[] args) 
{
   new Ghetto();

}

public Ghetto() {
setDefaultCloseOperation(EXIT_ON_CLOSE);

addMouseListener(this);
addMouseMotionListener(this);
setLayout(new FlowLayout());

theGrid = new Grids(SIZE, BLUE, RED, DIVERSITY_PERCENTAGE);
add(theGrid);

resetButton = new JButton("Reset");
add(resetButton);
resetButton.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        resetWithCurrent();
    }
});


setSize(new Dimension(550, 600));
setVisible(true);
}



//public void resetWithCurrent()
//{

//}

@Override
public void actionPerformed(ActionEvent e) 
{
timer.addActionListener(new ActionListener()
{
    public void actionPerformed(ActionEvent e) 
    {
        performStep();
     }
  });

 }

}

2 个答案:

答案 0 :(得分:1)

通常,最简单的方法是重置"不是。扔掉物体,做一个全新的!构造函数会为您处理所有事情,您不必担心遗漏某些事情。如果你真的需要,你可以创建一个执行所有必要设置的重置方法,并让构造函数调用它。您必须确保捕获所有内容,因此特别是您不能使用任何类似Foo x = bar的字段初始化,并且您无法使用任何初始化程序块。

我建议的方法:

Ghetto ghetto = new Ghetto();

//Do stuff with the ghetto.

ghetto = new Ghetto();

//BLAM! The old ghetto is *gone*, and we have a new one to play with.

答案 1 :(得分:0)

如果这些"值"存储在一个单独的类中,比如class" GameProperties"那么你只需要通过创建GameProperties的新实例来调用构造函数。 构造函数应该注意分配默认值。 所以,假设您在Ghetto类中有一个名为 props GameProperties 实例:

添加GameProperties类的新实例并在Ghetto类中更改resetWithCurrent:

   GameProperties props = new GameProperties(); 

   public void resetWithCurrent(){
    //This will reset the values to their defaults as defined in the constructor
    props = new GameProperties();

    }

在使用GameProperties时删除值常量。使用getters方法 获取属性值。

创建新类:

public class GameProperties {
//assign initial default values 
private int size= 5;
private int blue= 10;
private int red= 8;
private int diversity_percentage= 70;

 //calling default constructor will set the properties default values
public GameProperties(){

}

public int getSize(){
     return size;
}

public int getBlueValue(){
     return size;
}

public int getRedValue(){
     return size;
}

public int getDiversityPercentage(){
     return diversity_percentage;
}

}

希望它有所帮助。