gpt4 book ai didi

java - 如何计算扫雷代码中的炸弹数量?

转载 作者:行者123 更新时间:2023-12-02 09:31:33 25 4
gpt4 key购买 nike

我尝试创建一款更简单的扫雷游戏,但遇到了一个主要问题..我无法计算炸弹的数量并将其打印在 JTextField 中关于如何计算这些的任何想法,因为我正在设置一个随机值来检查它们是否是炸弹

尝试在 ActionListener 中对其进行计数,但仅在单击按钮后才对炸弹进行计数。

     if(e.getSource()==b[i][j])
{
b[i][j].setVisible(false);

tf[i][j].setVisible(true);
int r1 = rand.nextInt(6);
if(r1>1)
{
tf[i][j].setText("Safe");
tf[i][j].setBackground(Color.green);

}
else
{ count++;
tf[i][j].setText("Bomb");
tf[i][j].setBackground(Color.red);
f.setVisible(false);
restart.setVisible(true);
}
}

最佳答案

据我了解,您可以使用随机生成器来决定该图 block 在运行时是否是炸弹。这样做你无法真正知道你的游戏中有多少个地雷。我认为你应该在游戏开始时决定地雷的数量,并将它们随机放置到你的游戏板上(你可以根据难度级别选择数量)。

编辑

您可以创建一个包含一些包含地雷的随机点的列表

    int numOfMines =  10;

int rows=5,columns=5;


ArrayList listWithMines = new ArrayList();

while(listWithMines.size()<numOfMines) {

int randRow = random.nextInt(rows);
int randCol = random.nextInt(columns);

Point point = new Point(randRow, randCol);

if(listWithMines.contains(point))
continue;
else
listWithMines.add(point);
}

此列表现在包含拥有地雷的点。您可以检查 Point(x,y) 是否有矿井,如下所示:

if(listWithMines.contains(new Point(1, 2))) {...}

您可以使用 2D 数组代替列表,存储 boolean 值(如果存储更多状态,则存储 int)并进行循环,直到放置 10 个地雷。您应该保留您放置的地雷的计数器(placedMines,如 list.size()),并确保您不会将地雷添加到已经有地雷的图 block 中,并增加计数器(placedMines)直到它达到地雷数量。

关于java - 如何计算扫雷代码中的炸弹数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57917665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com