我正在制作一个扫雷游戏,在第一部分中,我决定使用boolean1
(该字段是16x16阵列)是否在某个按钮上有炸弹我已经测试了这个部分,输出正确。 50个随机true
值,其余为false
我的问题从第二部分开始,我想根据boolean1
的值通过按钮获取某个操作。在实现代码时,所有jbuttons
都会跟随第二个ActionListener
,其中图标设置为bomb
我希望jbuttons
也跟随第一个处理程序。< / p>
第一个程序
static void placeMines()
{
for (int x=0;x<16;x++)
{
for (int y=0;y<16;y++)
{
if(boolean1[x][y]=(true))
{
boolean1[x][y]=false;
}
}
}
int minesPlaced = 0;
Random random = new Random();
while(minesPlaced < 50)
{
int a = random.nextInt(Width);
int b = random.nextInt(Height);
boolean1[a][b]=(true);
minesPlaced ++;
}
}
第二个程序:
static void buttonfunctions()
{
for(int c=0;c<16;c++)
{
for(int d=0;d<16;d++)
{
if (boolean1[c][d]=false)
{
final int temp3=c;
final int temp4=d;
jbuttons[c][d].addActionListener(new ActionListener()
{
@Override
public void actionPerformed (ActionEvent e)
{
jbuttons[temp3][temp4].setIcon(clickedCell);
}
});
}
if(boolean1[c][d]=true)
{
final int temp1=c;
final int temp2=d;
jbuttons[temp1][temp2].addActionListener(new ActionListener()
{
@Override
public void actionPerformed (ActionEvent e)
{
jbuttons[temp1][temp2].setIcon(bomb);
}
});
}
}
}
}
答案 0 :(得分:2)
为了检查布尔值是否为真,你想做:
if (myBoolean)
做
if (myBoolean == true)
是等价的,但比需要的更详细。
做
if(myBoolean = true)在语法上是正确的,但具有为myBoolean赋值true的效果,然后评估赋值的结果,即true
。所以,回到你的代码:
如果以下代码的意图是重置矩阵:
if(boolean1[x][y]=(true))
{
boolean1[x][y]=false;
}
然后你应该做
boolean1[x][y] = false;
另外
if (boolean1[c][d]=false)
应该是:
if (! boolean1[c][d])
您的代码可能有更多错误,但您可能想要开始解决此问题。