Ciao, non sono un esperto ma mi pare che intanto questo metodo sia confusionario, cioè tu passi al metodo un Giocatore già instanziato e dentro al metodo invece che fare i controlli e scegliere se assegnarlo o no alla Casella crei un nuovo Giocatore copiando il nome di quello passato (g1=newGiocatore(g.getName());).codice:public void getinizio(Giocatore g){ g1=newGiocatore(g.getName()); if(g!=null&&g.getEnergia()>g1.getEnergia()){ g1=g; }else g1=g1; }
Poi controlli se il giocatore passato al metodo è null (mentre tu dici che devi verificare se la casella contiene già un giocatore quindi dovresti controllare se g1 della casella è null).
Infine usi due diverse variabili uguali a g1 e nell'ultima riga scrivi g1=g1 (brrrrrrrr).
Io questo metodo lo riscriverei nel seguente modo:
Poi per quanto riguarda il problema sul numero dei giocatori questo dipende dalla consegna:codice:public void getinizio(Giocatore g) { if(g1==null)g1=g; // se g1 e' null metto il giocatore nella Casella che è vuota else if(g.getEnergia()>g1.getEnergia()) g1=g; // se il giocatore passato ha energia maggiore lo sostituisco,volendo puoi usare un or e unire le due righe }
se ogni Casella può averne solo uno allora tieni quello con energia maggiore, se può averne di più ma vuoi che sia "attivo" solo quello con energia maggiore comunque gli altri devono essere memorizzati da qualche parte (Array,ArrayList,Map....)

Rispondi quotando