127 lines
4.5 KiB
Java
127 lines
4.5 KiB
Java
import java.util.ArrayDeque;
|
|
import java.util.ArrayList;
|
|
import java.util.Deque;
|
|
|
|
import it.kibo.fp.lib.Menu;
|
|
import it.kibo.fp.lib.RandomDraws;
|
|
|
|
public class Partita {
|
|
private static String titolo = "seleziona la scelta";
|
|
private static String [] selezioni = {"Lancia il dado", "usa la tessera tifo o inveimento", "scommetti su un cavallo", "giocati la casa", "visualizza la mappa", "visualizza i soldi di tutti"};
|
|
private static String titolo2 = "seleziona il cavallo su cui scommettere";
|
|
private static String [] selezioniCavalli ={"Nawt, Rosso", "Blanco, Blu", "Pound, Giallo", "Bang, Verde", "Bupkus, Viola"};
|
|
private Deque <Giocatore> giocatori = new ArrayDeque<>();
|
|
private ArrayList <Cavallo> cavalli = new ArrayList<>();
|
|
private Mappa mappa;
|
|
private Pila pila;
|
|
private Menu menu = new Menu (titolo, selezioni, true, true, true);
|
|
private Menu menu2 = new Menu (titolo2, selezioniCavalli, true, true, true);
|
|
|
|
|
|
public Partita(Deque <Giocatore> giocatori, ArrayList<Cavallo> cavalli, Mappa mappa, Pila pila){
|
|
this.giocatori = giocatori;
|
|
this.cavalli = cavalli;
|
|
this.mappa = mappa;
|
|
this.pila = pila;
|
|
}
|
|
|
|
public void sceltaCavaliere(){
|
|
int i = RandomDraws.drawInteger(0, giocatori.size()-1);
|
|
for(int j = 0; j < i; j++){
|
|
giocatori.addLast(giocatori.getFirst());
|
|
giocatori.removeFirst();
|
|
}
|
|
giocatori.getFirst().setCavaliere(true);
|
|
}
|
|
|
|
public void inizioTappa(){
|
|
int dado = 0;
|
|
do{
|
|
new Output().annuncioTurno(giocatori.getFirst());
|
|
int s = menu.choose();
|
|
switch (s){
|
|
case 1:
|
|
giocatori.getFirst().lanciaDado(cavalli, mappa);
|
|
giocatori.addLast(giocatori.getFirst());
|
|
giocatori.removeFirst();
|
|
dado ++;
|
|
|
|
break;
|
|
|
|
case 2:
|
|
int x = giocatori.getFirst().posizionaTesseraTifoInveimento(mappa);
|
|
mappa.getCasella(x).setGiocatoreTessera(giocatori.getFirst());
|
|
giocatori.addLast(giocatori.getFirst());
|
|
giocatori.removeFirst();
|
|
break;
|
|
|
|
case 3:
|
|
boolean checkTesserePiene = false;
|
|
int cavalloScelto = 0;
|
|
do{
|
|
cavalloScelto = menu2.choose();
|
|
if (cavalli.get(cavalloScelto - 1).getTessereSize() >= 4){
|
|
checkTesserePiene = true;
|
|
new Output().erroreTesserePiene();
|
|
}
|
|
}while(checkTesserePiene == true);
|
|
giocatori.getFirst().scommettiCavallo(cavalli.get(cavalloScelto-1));
|
|
break;
|
|
|
|
case 4:
|
|
int cartaCavallo = 0;
|
|
boolean checkCartaUsata = false;
|
|
do{
|
|
cartaCavallo = menu2.choose();
|
|
for(int i = 0; i < pila.vincitoriSize(); i ++){
|
|
if(pila.getCartaVincitore(i).equals(giocatori.getFirst().getCarta(cartaCavallo))){
|
|
checkCartaUsata = true;
|
|
System.out.println("seleziona una carta che non hai mai usato ");
|
|
break;
|
|
}
|
|
}
|
|
if(checkCartaUsata == false){
|
|
for(int i = 0; i < pila.perdentiSize(); i++){
|
|
if(pila.getCartaPerdente(i).equals(giocatori.getFirst().getCarta(cartaCavallo))){
|
|
checkCartaUsata = true;
|
|
System.out.println("seleziona una carta che non hai mai usato ");
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
giocatori.getFirst().giocaCasa(cartaCavallo, pila);
|
|
}while(checkCartaUsata == true);
|
|
break;
|
|
|
|
case 5:
|
|
new Output().mostraMappa(mappa);
|
|
break;
|
|
|
|
case 6:
|
|
new Output().visualizzaSoldi(giocatori);
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
for(int i = 0; i < cavalli.size(); i++){
|
|
if(cavalli.get(i).getPosizione() >= 17){
|
|
finePartita();
|
|
}
|
|
}
|
|
|
|
}while(dado < 5);
|
|
}
|
|
|
|
public void fineTappa(){
|
|
|
|
}
|
|
|
|
public void finePartita(){
|
|
|
|
}
|
|
|
|
|
|
}
|