Posto le classi di Giocatore ed Avversario, per eventuali consigli e/o correzioni.
Giocatore
codice:
package singleplayer;
import java.util.HashSet;
import carta.Carta;
import classifica.RecordClassifica;
public class Giocatore
{
private String nome;
private RecordClassifica dati; //per la classifica
private HashSet<Carta> carte; //le carte in mano al giocatore
public Giocatore(String nome) {
this.nome = nome;
dati = new RecordClassifica(nome);
carte = new HashSet<Carta>();
}
public int quanteCarte() {
return carte.size();
}
public void setCarta(Carta c) {
carte.add(c);
}
public void rimuoviCarta(Carta c) {
carte.remove(c);
}
public String toString() {
return "Giocatore: " + this.nome;
}
/*Ho pensato ad una gestione degli eventi tramite stati.
* All'inizio i giocatori sono entrambi nello stato ATTENDI.
* A turno vanno nello stato GIOCA.
*/
public static enum Stato {
ATTENDI, GIOCA
}
Stato statocorrente = Stato.ATTENDI;
public Stato getStato() {
return statocorrente;
}
}
Avversario
codice:
package singleplayer;
import java.util.HashSet;
import carta.Carta;
public class Avversario {
private final String nome = "Computer";
private HashSet<Carta> carte;
public Avversario() {
carte = new HashSet<Carta>();
}
public int quanteCarte() {
return carte.size();
}
public void setCarta(Carta c) {
carte.add(c);
}
public void rimuoviCarta(Carta c) {
carte.remove(c);
}
public static enum Stato {
ATTENDI, GIOCA
}
Stato statocorrente = Stato.ATTENDI;
public Stato getStato() {
return statocorrente;
}
/*Qui gestisco l'intelligenza del computer?
* A seconda della carta passata come argomento (la carta presente sul tavolo)
* fa la sua mossa.
*/
public Carta mossa(Carta c) {
return null;
}
}
Ps: per rappresentare la Briscola è meglio estendere la classe Carta o inserire un flag nella classe carta?
Aggiornamento: credo che sia meglio un flag. La carta Briscola non avrebbe dei campi in più rispetto ad una carta normale.