|
Carte
> Partita.java > in depth
|
|
Partita.java
|
package carte;
import java.util.*;
public class Partita {
Collection giocatori=new HashSet();
int ngiocatori;
Mazzo mazzo;
Tavolo tavolo=new Tavolo();
Partita(int nGiocatori){
assert (36%nGiocatori==0):"numero di giocatori non valido";
for (int i=0; i<nGiocatori; i++) giocatori.add(new Giocatore(i,tavolo));
mazzo=new Mazzo(10);
mazzo.mescola();
aggiungiCarteInTavola();
while (! mazzo.isEmpty()) {
distribuisciCarte(3);
for (int i=0;i<3;i++) faiUnaMano();
}
proclamaVincitore();
}
private void aggiungiCarteInTavola(){
for (int k=0;k<4;k++) tavolo.aggiungi((Carta)mazzo.prossimaCarta());
}
private void distribuisciCarte(int n){
assert (mazzo.size()>=n*giocatori.size()): "non ci sono abbastanza carte nel mazzo";
Iterator iter=giocatori.iterator();
while (iter.hasNext()) {
Giocatore g=(Giocatore)iter.next();
for (int i=0;i<n;i++) g.aggiungiCarta(mazzo.prossimaCarta());
}
}
private void faiUnaMano(){
Iterator iter=giocatori.iterator();
while (iter.hasNext()) {
Giocatore g=(Giocatore)iter.next();
g.gioca();
}
}
private void proclamaVincitore(){
int maxPunti=0;
String vincitore=null;
Iterator iter=giocatori.iterator();
while (iter.hasNext()) {
Giocatore g=(Giocatore)iter.next();
int punti=g.contaPunti();
System.out.println(g.nome+" : "+punti+"n");
if (punti>maxPunti) {
maxPunti=punti;
vincitore=g.nome;
}
}
System.out.println("IL VINCITORE E' : "+vincitore);
}
public static void main(String s[]){
Partita p=new Partita(2);
}
}
|
|
|