亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何計算掃雷代碼中的炸彈數量?

如何計算掃雷代碼中的炸彈數量?

弒天下 2023-07-28 16:45:10
好吧,我嘗試創建一個更簡單的掃雷游戲,但遇到了一個主要問題..我無法計算炸彈的數量并將其打印在一個關于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);            }        }
查看完整描述

1 回答

?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

據我了解,您可以使用隨機生成器來決定該圖塊在運行時是否是炸彈。這樣做你無法真正知道你的游戲中有多少個地雷。我認為你應該在游戲開始時決定地雷的數量,并將它們隨機放置到你的游戲板上(你可以根據難度級別選擇數量)。


編輯


您可以創建一個包含一些包含地雷的隨機點的列表


    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 數組代替列表,存儲布爾值(如果存儲更多狀態,則存儲 int)并進行循環,直到放置 10 個地雷。您應該保留您放置的地雷的計數器(placedMines,如 list.size()),并確保您不會將地雷添加到已經有地雷的圖塊中,并增加計數器(placedMines)直到它達到地雷數量。


查看完整回答
反對 回復 2023-07-28
  • 1 回答
  • 0 關注
  • 155 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號