Quiero inicializar una serie de objetos Player para un juego de BlackJack. He leído mucho sobre varias formas de inicializar objetos primitivos como una matriz de entradas o una matriz de cadenas, pero no puedo llevar el concepto a lo que estoy tratando de hacer aquí (ver más abajo). Me gustaría devolver una matriz de objetos Player inicializados. El número de objetos de jugador para crear es un número entero que le pregunto al usuario. Estaba pensando que el constructor podría aceptar un valor entero y nombrar al jugador en consecuencia mientras inicializaba algunas variables miembro del objeto Player. Creo que estoy cerca, pero todavía estoy bastante confundido.
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;
}
EDITAR - ACTUALIZAR: Esto es lo que obtengo después de cambiar esto, ya que entendí su sugerencia:
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
clase de suero sea estática? ¿Puede intentar quitarle lastatic
palabra clave?