PgAr2025_Esame_GabrieleDome.../Spirit_Arnaldo_Selvaggio/src/Partita.java

78 lines
2.5 KiB
Java
Raw Normal View History

2025-06-09 11:23:39 +02:00
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
2025-06-09 14:44:23 +02:00
import it.kibo.fp.lib.Menu;
2025-06-09 12:59:11 +02:00
import it.kibo.fp.lib.RandomDraws;
2025-06-09 10:44:26 +02:00
public class Partita {
2025-06-09 14:44:23 +02:00
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"};
2025-06-09 12:29:29 +02:00
private Deque <Giocatore> giocatori = new ArrayDeque<>();
private ArrayList <Cavallo> cavalli = new ArrayList<>();
2025-06-09 11:23:39 +02:00
private Mappa mappa;
private Pila pila;
2025-06-09 14:44:23 +02:00
private Menu menu = new Menu (titolo, selezioni, true, true, true);
2025-06-09 10:44:26 +02:00
2025-06-09 11:23:39 +02:00
public Partita(Deque <Giocatore> giocatori, ArrayList<Cavallo> cavalli, Mappa mappa, Pila pila){
this.giocatori = giocatori;
this.cavalli = cavalli;
this.mappa = mappa;
this.pila = pila;
}
2025-06-09 12:59:11 +02:00
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(){
2025-06-09 15:39:10 +02:00
int dado = 0;
2025-06-09 14:44:23 +02:00
do{
new Output().annuncioTurno(giocatori.getFirst());
int s = menu.choose();
switch (s){
case 1:
2025-06-09 15:39:10 +02:00
giocatori.getFirst().lanciaDado(cavalli, mappa);
2025-06-09 14:44:23 +02:00
giocatori.addLast(giocatori.getFirst());
giocatori.removeFirst();
2025-06-09 15:39:10 +02:00
dado ++;
for(int i = 0; i < cavalli.size(); i++){
if(cavalli.get(i).getPosizione() >= 17){
dado = 5;
}
}
2025-06-09 14:44:23 +02:00
break;
case 2:
int i = giocatori.getFirst().posizionaTesseraTifoInveimento(mappa);
mappa.getCasella(i).setGiocatoreTessera(giocatori.getFirst());
giocatori.addLast(giocatori.getFirst());
giocatori.removeFirst();
break;
case 3:
break;
case 4:
break;
case 5:
new Output().mostraMappa(mappa);
break;
case 6:
new Output().visualizzaSoldi(giocatori);
break;
}
2025-06-09 15:39:10 +02:00
}while(dado < 5);
2025-06-09 12:59:11 +02:00
}
2025-06-09 10:44:26 +02:00
}