Ich möchte ein Array von Player-Objekten für ein BlackJack-Spiel initialisieren. Ich habe viel über verschiedene Möglichkeiten gelesen, primitive Objekte wie ein Array von Ints oder ein Array von Strings zu initialisieren, aber ich kann das Konzept nicht auf das übertragen, was ich hier versuche (siehe unten). Ich möchte ein Array initialisierter Player-Objekte zurückgeben. Die Anzahl der zu erstellenden Player-Objekte ist eine Ganzzahl, für die ich den Benutzer auffordere. Ich dachte, der Konstruktor könnte einen ganzzahligen Wert akzeptieren und den Player entsprechend benennen, während einige Mitgliedsvariablen des Player-Objekts initialisiert werden. Ich denke, ich bin nah dran, aber immer noch ziemlich verwirrt.
static class Player
{
private String Name;
private int handValue;
private boolean BlackJack;
private TheCard[] Hand;
public Player(int i)
{
if (i == 0)
{
this.Name = "Dealer";
}
else
{
this.Name = "Player_" + String.valueOf(i);
}
this.handValue = 0;
this.BlackJack = false;
this.Hand = new TheCard[2];
}
}
private static Player[] InitializePlayers(int PlayerCount)
{ //The line below never completes after applying the suggested change
Player[PlayerCount] thePlayers;
for(int i = 0; i < PlayerCount + 1; i++)
{
thePlayers[i] = new Player(i);
}
return thePlayers;
}
EDIT - UPDATE: Folgendes erhalte ich, nachdem ich dies geändert habe, da ich Ihren Vorschlag verstanden habe:
Thread [main] (Suspended)
ClassNotFoundException(Throwable).<init>(String, Throwable) line: 217
ClassNotFoundException(Exception).<init>(String, Throwable) line: not available
ClassNotFoundException.<init>(String) line: not available
URLClassLoader$1.run() line: not available
AccessController.doPrivileged(PrivilegedExceptionAction<T>, AccessControlContext) line: not available [native method]
Launcher$ExtClassLoader(URLClassLoader).findClass(String) line: not available
Launcher$ExtClassLoader.findClass(String) line: not available
Launcher$ExtClassLoader(ClassLoader).loadClass(String, boolean) line: not available
Launcher$AppClassLoader(ClassLoader).loadClass(String, boolean) line: not available
Launcher$AppClassLoader.loadClass(String, boolean) line: not available
Launcher$AppClassLoader(ClassLoader).loadClass(String) line: not available
BlackJackCardGame.InitializePlayers(int) line: 30
BlackJackCardGame.main(String[]) line: 249
Player
statisch ist? Können Sie vielleicht versuchen, dasstatic
Schlüsselwort daraus zu entfernen ?