Ho seguito i tuoi consigli e mi è uscito questo codice:
Classe Carta:
Classe giocatore:codice:package gioco2; public class Carta { public String seme; public int valore; Carta(String a,int b){ seme=a; valore=b; }; }
Classe Mazzo:codice:package gioco2; import java.util.ArrayList; import java.util.List; public class Giocatore { List g; Giocatore(int numerocarte, Mazzo mazzo){ //sceglie quante carte vuole e le estrae g= new ArrayList(); for(int i=0;i<numerocarte;i++){ Carta tmp =mazzo.estraimazzo(); //estrae dal mazzo quante volte hai scelto di pescare g.add(tmp); } } }
Classe Briscola:codice:package gioco2;import java.util.*; public class Mazzo { Set mazzo; // inizializzo il mazzo; Mazzo(){ // creo un set mazzo, costruttore this.mazzo= new HashSet(); for(int i=1;i<11;i++){ Carta c1= new Carta("Bastoni",i); mazzo.add(c1); Carta c2= new Carta("Spade",i); mazzo.add(c2); Carta c3= new Carta("Coppe",i); mazzo.add(c3); Carta c4= new Carta("Danari",i); mazzo.add(c4); } } Carta estraimazzo(){ //estraggo carta casuale dal mazzo Iterator x = mazzo.iterator(); Object tmp=x.next(); mazzo.remove(tmp); Carta res=(Carta)tmp; return res; } }
Classe Scopone:codice:package gioco2; import java.util.Comparator; /** * * @author FinallyDou */ public class Briscola implements Comparator<Carta> { @Override public int compare(Carta o1, Carta o2) { //ordina prima per numero poi per seme int res=0; if(o1.valore<o2.valore) res=-1; else if(o1.valore==o2.valore){ int x=o1.seme.compareTo(o2.seme); if(x<0) res=-1; else if(x==0) res=0; else res=1; } else res=1; return res; } }
Classe Main:codice:package gioco2; import java.util.Comparator; /** * * @author FinallyDou */ public class Scopone implements Comparator <Carta> { @Override public int compare(Carta o1, Carta o2) { //ordina prima per seme poi per numero int res=0; int x=o1.seme.compareTo(o2.seme); if(x<0) res=-1; else if(x==0) if(o1.valore==o2.valore) res=0; else if(o1.valore<o2.valore) res=-1; else res=1; return res; } }
L'esercizio chiedeva di ordinare le carte che pescavi secondo la briscola o scopone, nel main ho fatto un switch per scegliere tra le diverse modalità. Il mio dubbio è come faccio a dire al programma di restituirmi le carte che ho pescato? Ho provato un sort però mi da errore.codice:package gioco2; import javax.swing.JOptionPane; public class Gioco2 { public static void main(String[] args) { Mazzo m = new Mazzo(); Giocatore g = new Giocatore(Integer.parseInt(JOptionPane.showInputDialog("Quante carte vuoi?")),m); int risp=Integer.parseInt(JOptionPane.showInputDialog("1.Ordina briscola 2.Ordina scopa")); switch(risp){ case 1: Briscola b = new Briscola(); break; case 2: Scopone s = new Scopone(); break; } } }
Scusa la mia ignoranza ma sono alle prime armi in java. Ti ringrazio per la pazienza

. Ti ringrazio per la pazienza
Rispondi quotando