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 giocatori = new ArrayDeque<>(); private ArrayList 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 giocatori, ArrayList 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(){ } }