PDA

Visualizza la versione completa : [JAVA] Stampare il valore di un Object


robboso
25-08-2005, 22:15
ciao a tutti sto sviluppando il gioco della briscola in java, ho creato, per prima cosa, una classe Carte che funzione in modo seguente:



public Carte(int s, int n, int v){
segno=s;
number=n;
value=v;
}


dopo di ch ho creato una array di carte chiamato mazzo



Carte[] mazzo;
mazzo= new Carte[39];
mazzo[0]= new Carte(0,1,11);


ora mi servirebbe un metodo che scorra l'array e mi permetta di stampare su console i valori segno, number, value.
Come posso fare???
Grazie

:messner:

unomichisiada
26-08-2005, 02:26
Originariamente inviato da robboso
ciao a tutti sto sviluppando il gioco della briscola in java, ho creato, per prima cosa, una classe Carte che funzione in modo seguente:



public Carte(int s, int n, int v){
segno=s;
number=n;
value=v;
}


dopo di ch ho creato una array di carte chiamato mazzo



Carte[] mazzo;
mazzo= new Carte[39];
mazzo[0]= new Carte(0,1,11);


ora mi servirebbe un metodo che scorra l'array e mi permetta di stampare su console i valori segno, number, value.
Come posso fare???
Grazie

:messner:
Prima di tutto la classe Carte la chiamerei Carta visto che ogni sua istanza modella una singola carta, per il tuo problema ti sufficiente sovrascrivere il metodo toString della classe Carta e metterci le tre println per la stampa dei campi che vuoi visualizzare, poi scorri l'array di carte e per ogni carta chiami toString :ciauz:

robboso
26-08-2005, 12:19
ho seguito il tuo consiglio, ma ho un piccolo problema.



asso=new Card(0,1,11);
due=new Card(0,2,0);
tre=new Card(0,3,10);
quattro=new Card(0,4,0);
cinque=new Card(0,5,0);
sei=new Card(0,6,0);
sette=new Card(0,7,0);
donna=new Card(0,8,2);
cavallo=new Card(0,9,3);
re=new Card(0,10,4);

//denari=0

mazzo[0]= asso;
mazzo[1]= due;
mazzo[2]= tre;
mazzo[3]= quattro;
mazzo[4]= cinque;
mazzo[5]= sei;
mazzo[6]= sette;
mazzo[7]= donna;
mazzo[8]= cavallo;
mazzo[9]= re;


for(int i=0; i<mazzo.length; i++){
Card.printCard();
}



perch mi stampa sempre gli stessi valori per tutte le carte??? ovvero 0 10 4 che sono i valore del re???
Grazie

Gil Mour
26-08-2005, 12:22
Posta il codice del metodo printCard(), l'inghippo sta li

Vedo che non parametrico rispetto all'indice con cui scorri il ciclo for, quindi sembra logico che stampi sempre la stessa cosa

robboso
26-08-2005, 12:42
public static int getSegno(){
int x;
x=Card.segno;
//System.out.println(x);
return x;
}


public static int getNumber(){
int x;
x=Card.number;
return x;
}

public static int getValue(){
int x;
x=Card.value;
return x;
}

public static void printCard(){
System.out.println(Card.getSegno());
System.out.println(Card.getNumber());
System.out.println(Card.getValue());
}

Gil Mour
26-08-2005, 13:14
class Card {
// costruttore che hai fatto tu
public int getSegno() {return segno;}
public int getNumber() {return number;}
public int getValue() {return value;}

public String toString() {
return (segno+"\n"+number+"\n"+value);
}
//altri metodi
}




asso=new Card(0,1,11);
due=new Card(0,2,0);
tre=new Card(0,3,10);
quattro=new Card(0,4,0);
cinque=new Card(0,5,0);
sei=new Card(0,6,0);
sette=new Card(0,7,0);
donna=new Card(0,8,2);
cavallo=new Card(0,9,3);
re=new Card(0,10,4);

//denari=0

mazzo[0]= asso;
mazzo[1]= due;
mazzo[2]= tre;
mazzo[3]= quattro;
mazzo[4]= cinque;
mazzo[5]= sei;
mazzo[6]= sette;
mazzo[7]= donna;
mazzo[8]= cavallo;
mazzo[9]= re;


for(int i=0; i<mazzo.length; i++){
// Card.printCard(); non cosi
System.out.println(mazzo[i]);
}

floyd
26-08-2005, 13:53
direi anche che segno, number e value non devono essere static

Gil Mour
26-08-2005, 14:02
si infatti li ho messi nella classe card apposta

robboso
26-08-2005, 16:52
non cambia niente, stampa sempre gli stessi tre valori per tutti gli oggetti della classe Card: ovvero 0, 10 ,4.
:dh:

unomichisiada
26-08-2005, 19:29
Originariamente inviato da robboso
non cambia niente, stampa sempre gli stessi tre valori per tutti gli oggetti della classe Card: ovvero 0, 10 ,4.
:dh:
Non cos

for(int i=0; i<mazzo.length; i++){
Card.printCard();
}
ma cos


for(int i=0; i<mazzo.length; i++){
mazzo[i].printCard();//o toString o quello che
}

Loading