返回blackjack程序bufferdimage的java方法
我一直在尝试为学校作业制作一个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;
}
# 1 楼答案
为什么要递归调用同一个方法?这是作业吗?如果不是,这是一种非常糟糕的做法。为什么您需要精确的图像?您可以将值作为10打印到控制台中♥ 或者说我喜欢它。将更容易实施。 再说一遍,你为什么要读卡值的字符串?最好的方法是让Card类定义适合和价值,而不是读取 String num=字符串。(i)的价值
无递归的更好实践:
但如果坚持使用递归,请将方法的结果指定给变量: