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

好吧,我尝试创建一个更简单的扫雷游戏,但遇到了一个主要问题..我无法计算炸弹的数量并将其打印在一个关于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);

            }

        }


弑天下
浏览 103回答 1
1回答

临摹微笑

据我了解,您可以使用随机生成器来决定该图块在运行时是否是炸弹。这样做你无法真正知道你的游戏中有多少个地雷。我认为你应该在游戏开始时决定地雷的数量,并将它们随机放置到你的游戏板上(你可以根据难度级别选择数量)。编辑您可以创建一个包含一些包含地雷的随机点的列表&nbsp; &nbsp; int numOfMines =&nbsp; 10;&nbsp; &nbsp; int rows=5,columns=5;&nbsp; &nbsp; ArrayList listWithMines = new ArrayList();&nbsp; &nbsp; while(listWithMines.size()<numOfMines) {&nbsp; &nbsp; &nbsp; &nbsp; int randRow = random.nextInt(rows);&nbsp; &nbsp; &nbsp; &nbsp; int randCol = random.nextInt(columns);&nbsp; &nbsp; &nbsp; &nbsp; Point point = new Point(randRow, randCol);&nbsp; &nbsp; &nbsp; &nbsp; if(listWithMines.contains(point))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; continue;&nbsp; &nbsp; &nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; listWithMines.add(point);&nbsp; &nbsp; }该列表现在包含有地雷的点。您可以检查 Point(x,y) 是否有矿井,如下所示:if(listWithMines.contains(new Point(1, 2))) {...}您可以使用 2D 数组代替列表,存储布尔值(如果存储更多状态,则存储 int)并进行循环,直到放置 10 个地雷。您应该保留您放置的地雷的计数器(placedMines,如 list.size()),并确保您不会将地雷添加到已经有地雷的图块中,并增加计数器(placedMines)直到它达到地雷数量。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java