2017-12-26 19 views
1

Ich habe versucht, ein Blackjack-Programm für eine Schulaufgabe zu erstellen, aber ich bin mit meiner Methode stecken geblieben, die eine zufällige Zahl nimmt und ein Bild mit ihm hinzufügt und ein Array zu einem Array hinzufügt um sicherzustellen, dass es nicht zwei derselben Karte geben kann. Allerdings liegt mein Problem darin, dass ich das Bild in der if-Anweisung zurückgeben möchte, aber es nicht erlaubt, ich muss es auch draußen haben und wenn die Aussage nicht wahr ist, gibt es null zurück, das ich vermeiden möchte und stattdessen mache es wird die Methode erneut ausgeführt, bis ein nicht ausgewähltes Bild ausgewählt wird. Ich bin dankbar für jede Hilfe,Methode, die bufferdimage für Blackjack-Programm zurückgibt

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; 
} 

Antwort

1

Warum würden Sie die gleiche Methode rekursiv aufrufen? Ist das eine Aufgabe? Wenn nicht, ist das eine sehr schlechte Übung. Warum brauchst du ein Bild genau? Sie können den Wert in die Konsole als 10 ♥ oder smth wie es drucken. Wäre viel einfacher zu implementieren. Mehr darüber, warum liest du die Zeichenfolge von Kartenwert? Der beste Ansatz besteht darin, eine Card-Klasse zu haben, die Farbe und Wert definiert, anstatt die zu lesen. String num = String.valueOf (i);

Bessere Praxis ohne Rekursion:

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

aber wenn Sie sich mit Rekursion bestehen, weisen Sie das Ergebnis des Verfahrens zu einer Variablen:

}else { 

    image = ImportCards(); 

    } 
    return image; 
Verwandte Themen