我只想要一次“BombenGenerieren(anzahlMinen)”,我该怎么写呢,它每周都不会产生新的炸弹?
public Game(int anzahlMinen, int xeingabe, int yeingabe)
{
_minenArray = new int[5, 5];
_emptyArray = new int[5, 5];
_boolArray = new bool[5, 5];
program = new Program();
zeichnen = new Draw();
BombenGenerieren(anzahlMinen);
FillPlayMap();
Umdreher(yeingabe, xeingabe);
zeichnen.OpenField(_minenArray, _boolArray);
//SeenMap();
}
答案 0 :(得分:1)
我假设Game
是构造函数,并且您希望执行一次BombenGenerieren
并在实例之间共享它。
你应该做的是使BombenGenerieren
静态并存储BombenGenerieren
在一个或多个静态字段或属性中的影响。然后,您应该在实例化新的Game.BombenGenerieren
对象之前调用Game
,或者创建一个静态构造函数,如下所示:
public static Game()
{
BombenGenerieren(anzahlMinen);
}
第一次使用Game
类型时,将执行静态构造函数。请注意,它不带参数,因此anzahlMinen必须是常量。如果这是一个问题,请使用常规静态方法。
另一种方法是将BombenGenerieren
方法的结果封装在一个对象中,并将其传递给Game
构造函数,这可以将结果应用于每个新类。
答案 1 :(得分:0)
基本上,使用boolean
变量来跟踪BombenGenerieren
的执行情况。
boolean bombenGeneriert = false;
public Game(int anzahlMinen, int xeingabe, int yeingabe) {
//...
BombenGenerieren(anzahlMinen);
//...
}
public void BombenGenerieren(int minen) {
if (!bombenGeneriert) {
bombenGeneriert = true;
//the rest of your code in this method
}
}
这将在第一个方法执行时将bombenGeneriert
设置为true。现在,在每次执行时,它都会检查!bombenGeneriert
,它将评估为false
。
此外,您应该考虑重新安排代码。我怀疑您不止一次致电Game()
,因此您应该重新定位BombenGenerieren()
方法,Game()
以外的地方。
如果Game
是类而Game()
是构造函数,那么bombenGeneriert
必须是静态的:
static boolean bombenGeneriert = false;