Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回21点程序的bufferdimage的方法_Java_Eclipse_Image_Blackjack - Fatal编程技术网

Java 返回21点程序的bufferdimage的方法

Java 返回21点程序的bufferdimage的方法,java,eclipse,image,blackjack,Java,Eclipse,Image,Blackjack,我一直在尝试为学校作业制作一个21点程序,但我一直坚持使用我的方法,即取一个随机数并提取一张图片,然后将一张图片添加到一个数组中,我使用该数组来确保不能有两张相同的卡片。然而,我的问题在于,我想在if语句中返回图像,但它不允许我返回,我也必须将它放在外部,如果该语句不为true,它将返回null,这是我想要避免的,而是让它重新运行该方法,直到选择了未拍摄的图片。我感谢你的帮助 public static BufferedImage ImportCards() { String FileL

我一直在尝试为学校作业制作一个21点程序,但我一直坚持使用我的方法,即取一个随机数并提取一张图片,然后将一张图片添加到一个数组中,我使用该数组来确保不能有两张相同的卡片。然而,我的问题在于,我想在if语句中返回图像,但它不允许我返回,我也必须将它放在外部,如果该语句不为true,它将返回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打印到控制台中♥ 或者说我喜欢它。将更容易实施。 再说一遍,你为什么要读卡值的字符串?最好的方法是让Card类定义适合和价值,而不是读取 String num=String.valueOf(i)

无递归的更好实践:

while (image == null ){
   image = importCards();
}
但如果坚持使用递归,请将方法的结果指定给变量:

 }else {

    image = ImportCards();

    }
    return image;