Ciao ho un piccolo problemino nella risoluzione di un metodo; in pratica non riesco a capire come posso richiamare una classe(con i relativi parametri) in un altra classe:
tutta la classe è:
nello specifico il metodo problematico è:codice:import java.util.*; class Torre{ String nome; ArrayList<Blocco> a; Torre(String nome){ this.nome=nome; a=new ArrayList<Blocco>(); } /** addBlocco(Blocco b) Pone in cima alla torre il blocco b se questo è possibile, cioè se sono rispettati i vincoli 1, 2 e 3.*/ public boolean addBlocco(Blocco b){ Torre t=new Torre(nome); //oggetto = altraClasse.nomeOggetto; BloccoColorato n=(BloccoColorato)b; // è l'ogetto successivo? boolean o=false; if(!t.containsBlocco(b) && b.puoStareSopraA(n)){ a.add(b); o=true; }return o; } public int numColorati(){ int count=0; for(Blocco b:a){ if(b instanceof BloccoColorato){ count++; } } return count; } public int numJolly(){ int count=0; for(Blocco b:a){ if(b instanceof BloccoJolly){ count++; } } return count; } /**Restituisce true se la torre contiene un blocco il cui numero e uguale al numero del blocco b , false altrimenti*/ public boolean containsBlocco(Blocco b){ boolean bx=false; for(Blocco u:a){ if(u instanceof BloccoJolly ||u instanceof BloccoColorato && u.numero==b.numero){ bx=true; } }return bx; } public String toString(){ String s=""; for(Blocco v:a){ if(v instanceof BloccoJolly ||v instanceof BloccoColorato){ s+=v.toString(); } }return s; } public static void main(String[] args){ Torre t=new Torre("fff"); BloccoColorato g=new BloccoColorato(9,"rosso"); BloccoColorato dv=new BloccoColorato(9,"arancione"); BloccoJolly h=new BloccoJolly(3); System.out.println(t.addBlocco(g)); System.out.println(t.addBlocco(dv)); } }
Il mio problema è il metodo dentro all'if,b.puoStareSopraA(n),perchè n è il BloccoColorato successivo;volendo anche creare un nuovo oggetto BloccoColorato... che ciufolo di parametri metto? In parole povere come faccio a creare in una classe un ogetto di un altra classe con parametri viversi e che risulti quindi l'oggetto successivo nel metodo main?codice:/** addBlocco(Blocco b) Pone in cima alla torre il blocco b se questo è possibile, cioè se sono rispettati i vincoli 1, 2 e 3.*/ public boolean addBlocco(Blocco b){ Torre t=new Torre(nome); BloccoColorato n=(BloccoColorato)b; //è l'ogetto successivo? boolean o=false; if(!t.containsBlocco(b) && b.puoStareSopraA(n)){ a.add(b); o=true; }return o; }scusate per i giri di parole
![]()

scusate per i giri di parole
Rispondi quotando