簡體   English   中英

為二十一點程序返回緩沖圖像的方法

[英]Method returning bufferdimage for blackjack program

我一直在嘗試為學校作業制作一個 21 點程序,但我堅持使用我的方法,該方法采用隨機數並用它提取圖片並將一個添加到我用來確保不能有兩個的數組中同一張卡。 然而,我的問題在於我想在 if 語句中返回圖像,但它不允許我這樣做,我也必須將它放在外面,如果語句不正確,它返回 null,我想避免這種情況,而是使它重新運行該方法,直到選擇了未拍攝的圖片。 我感謝任何幫助,

public static BufferedImage ImportCards() {
    String FileLocation;
    Double Number;
    Number = GetRandom(53);

    int i = Number.intValue();
    String num = String.valueOf(i);
    String main = "DeckOfCards2//Card";
    String end = ".png";

    BufferedImage image = null;

    if (myArray[i] == 0) {
        myArray[i] = 1;
        playerValue = i;
        System.out.println("PLayerValue" + playerValue);
        FileLocation = main + num + end;
        File file = new File(FileLocation);

        try {
            image = ImageIO.read(file);
        } catch (IOException e) {
            System.out.println(e);
        }

        return image;
    } else {
        ImportCards();
    }

    return image;
}

為什么要遞歸調用相同的方法? 這是任務嗎? 如果沒有,這是一個非常糟糕的做法。 為什么你需要精確的圖像? 您可以將值以 10♥ 或 smth 的形式打印到控制台中。 實施起來會容易得多。 再說了,你為什么要讀取卡值的字符串? 最好的方法是讓 Card 類定義花色和價值,而不是讀取 String num = String.valueOf(i);

沒有遞歸的更好實踐:

while (image == null ){
   image = importCards();
}

但是如果你堅持使用遞歸,把方法的結果賦值給一個變量:

 }else {

    image = ImportCards();

    }
    return image;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM