ho aggiunto qualche commento, messo il modulo 2 e finito la tappa, per favore leggete il README le ultime 2 righe

This commit is contained in:
gababababibbo 2025-06-09 18:40:32 +02:00
parent e216374961
commit efbb65d01d
19 changed files with 37 additions and 17 deletions

View file

@ -6,8 +6,6 @@ public class Carta {
this.cavallo = new Cavallo(); this.cavallo = new Cavallo();
} }
public Carta(Cavallo cavallo){ public Carta(Cavallo cavallo){
this.cavallo = cavallo; this.cavallo = cavallo;
} }

View file

@ -10,6 +10,7 @@ public class Cavallo {
private int posizione; private int posizione;
private boolean matto; private boolean matto;
//costruttore null
public Cavallo(){ public Cavallo(){
nome = null; nome = null;
colore = null; colore = null;
@ -27,7 +28,7 @@ public class Cavallo {
this.posizione = RandomDraws.drawInteger(1, 3); this.posizione = RandomDraws.drawInteger(1, 3);
} }
} }
//getters
public String getNome() { public String getNome() {
return nome; return nome;
} }
@ -43,7 +44,7 @@ public class Cavallo {
public int getTessereSize(){ public int getTessereSize(){
return tessere.size(); return tessere.size();
} }
//setters
public void setNome(String nome) { public void setNome(String nome) {
this.nome = nome; this.nome = nome;
} }

View file

@ -55,17 +55,22 @@ public class Giocatore {
this.tesseraTifoInveimento = tesseraTifoInveimento; this.tesseraTifoInveimento = tesseraTifoInveimento;
} }
//alla fine della tappa converte le tessereSbleuro
public void convertiTessereSbleuro(){ public void convertiTessereSbleuro(){
this.sbleuri += this.tessereSbleuri; this.sbleuri += this.tessereSbleuri;
tessereSbleuri = 0;
} }
//aggiunge un soldo
public void aggiungiSbleuro(){ public void aggiungiSbleuro(){
this.sbleuri ++; this.sbleuri ++;
} }
//aggiunge tanti soldi
public void aggiungiSbleuri(int i){ public void aggiungiSbleuri(int i){
this.sbleuri += i; this.sbleuri += i;
} }
//metodo che piazza la tessera tifo sulla mappa
public int posizionaTesseraTifoInveimento(Mappa mappa){ public int posizionaTesseraTifoInveimento(Mappa mappa){
int i = new Input().sceltaTifoInvimento(mappa); int i = new Input().sceltaTifoInvimento(mappa);
boolean s = new Input().sceltaTifoInveimento(); boolean s = new Input().sceltaTifoInveimento();
@ -80,6 +85,7 @@ public class Giocatore {
return i; return i;
} }
//lancia randomicamente un dado per colore(0,6) e risultato
public void lanciaDado(ArrayList <Cavallo> cavalli, Mappa mappa){ public void lanciaDado(ArrayList <Cavallo> cavalli, Mappa mappa){
int i = RandomDraws.drawInteger(0, 6); int i = RandomDraws.drawInteger(0, 6);
int m = RandomDraws.drawInteger(1, 3); int m = RandomDraws.drawInteger(1, 3);
@ -94,7 +100,7 @@ public class Giocatore {
public Carta getCarta(int i){ public Carta getCarta(int i){
return carte.get(i); return carte.get(i);
} }
//Scommette sul cavallo che vincerà alla fine(non sono risucito a implementarlo tutto quindi si può ignorare)
public void giocaCasa(int i, Pila p){ public void giocaCasa(int i, Pila p){
boolean s = new Input().vincitorePerdente(); boolean s = new Input().vincitorePerdente();
if (s == true){ if (s == true){

View file

@ -4,6 +4,8 @@ import it.kibo.fp.lib.InputData;
public class Input { public class Input {
//anche questo pezzo faceva parte del modulo 1
/* /*
private int nWords; private int nWords;
private ArrayList<String> encryptedWords; private ArrayList<String> encryptedWords;
@ -41,7 +43,7 @@ public class Input {
//per il resto sono i vari input che ho usato
public Input(){ public Input(){

View file

@ -17,7 +17,11 @@ public class Mappa {
return caselle.get(i); return caselle.get(i);
} }
public int getCaselleSize(){
return caselle.size();
}
//controlla se le celle adiancenti hanno tessere tifo
public boolean controllaAdiacenti(int i){ public boolean controllaAdiacenti(int i){
if (caselle.get(i-1).getTifoInveimento() != 0 || caselle.get(i+1).getTifoInveimento() != 0 || caselle.get(i).getTifoInveimento() != 0){ if (caselle.get(i-1).getTifoInveimento() != 0 || caselle.get(i+1).getTifoInveimento() != 0 || caselle.get(i).getTifoInveimento() != 0){
new Output().erroreAdiacenti(); new Output().erroreAdiacenti();
@ -37,6 +41,7 @@ public class Mappa {
return stringa; return stringa;
} }
//calcola i movimenti dei cavalli e dei cavalli posizionati sopra
public void movimentoCavalli(Cavallo cavallo, int i, Mappa mappa){ public void movimentoCavalli(Cavallo cavallo, int i, Mappa mappa){
if(cavallo.isMatto()){ if(cavallo.isMatto()){
i = i * (-1); i = i * (-1);

View file

@ -1,6 +1,7 @@
import java.util.Deque; import java.util.Deque;
public class Output { public class Output {
//metodi abbastanza autoesplicativi
public Output(){ public Output(){

View file

@ -4,7 +4,6 @@ import java.util.Deque;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import it.kibo.fp.lib.InputData;
import it.kibo.fp.lib.Menu; import it.kibo.fp.lib.Menu;
import it.kibo.fp.lib.RandomDraws; import it.kibo.fp.lib.RandomDraws;
@ -37,12 +36,14 @@ public class Partita {
giocatori.getFirst().setCavaliere(true); giocatori.getFirst().setCavaliere(true);
} }
//fa una tappa intera, quindi continua finche non si è lanciato 5 volte il dado o un cavallo è arrivato alla posizione 17
public void inizioTappa(){ public void inizioTappa(){
int dado = 0; int dado = 0;
do{ do{
new Output().annuncioTurno(giocatori.getFirst()); new Output().annuncioTurno(giocatori.getFirst());
int s = menu.choose(); int s = menu.choose();
switch (s){ switch (s){ù
//dado
case 1: case 1:
giocatori.getFirst().lanciaDado(cavalli, mappa); giocatori.getFirst().lanciaDado(cavalli, mappa);
giocatori.addLast(giocatori.getFirst()); giocatori.addLast(giocatori.getFirst());
@ -50,14 +51,14 @@ public class Partita {
dado ++; dado ++;
break; break;
//posiziona tessera
case 2: case 2:
int x = giocatori.getFirst().posizionaTesseraTifoInveimento(mappa); int x = giocatori.getFirst().posizionaTesseraTifoInveimento(mappa);
mappa.getCasella(x).setGiocatoreTessera(giocatori.getFirst()); mappa.getCasella(x).setGiocatoreTessera(giocatori.getFirst());
giocatori.addLast(giocatori.getFirst()); giocatori.addLast(giocatori.getFirst());
giocatori.removeFirst(); giocatori.removeFirst();
break; break;
//piazza scommessa
case 3: case 3:
boolean checkTesserePiene = false; boolean checkTesserePiene = false;
int cavalloScelto = 0; int cavalloScelto = 0;
@ -70,7 +71,7 @@ public class Partita {
}while(checkTesserePiene == true); }while(checkTesserePiene == true);
giocatori.getFirst().scommettiCavallo(cavalli.get(cavalloScelto-1)); giocatori.getFirst().scommettiCavallo(cavalli.get(cavalloScelto-1));
break; break;
//lancia la casa
case 4: case 4:
int cartaCavallo = 0; int cartaCavallo = 0;
boolean checkCartaUsata = false; boolean checkCartaUsata = false;
@ -97,11 +98,11 @@ public class Partita {
giocatori.getFirst().giocaCasa(cartaCavallo, pila); giocatori.getFirst().giocaCasa(cartaCavallo, pila);
}while(checkCartaUsata == true); }while(checkCartaUsata == true);
break; break;
//mostra la mappa, può essere invocate più volte in quanto non consuma un turno
case 5: case 5:
new Output().mostraMappa(mappa); new Output().mostraMappa(mappa);
break; break;
//mostra i soldi
case 6: case 6:
new Output().visualizzaSoldi(giocatori); new Output().visualizzaSoldi(giocatori);
break; break;
@ -113,6 +114,7 @@ public class Partita {
Algoritmo soluzione = new Algoritmo(nWords, dati.getEncryptedWords(), dati.getKeyWords()); Algoritmo soluzione = new Algoritmo(nWords, dati.getEncryptedWords(), dati.getKeyWords());
break;*/ break;*/
//modulo 2
case 8: case 8:
for(int i = 0; i < cavalli.size(); i++){ for(int i = 0; i < cavalli.size(); i++){
if(cavalli.get(i).isMatto()){ if(cavalli.get(i).isMatto()){
@ -185,12 +187,17 @@ public class Partita {
cavalli.get(i).svuotaTessere(); cavalli.get(i).svuotaTessere();
} }
//calcolo tessereSbleuro //calcolo tessereSbleuro e ne approfitto per ricaricare le tessere tifo
for(int i = 0; i < giocatori.size(); i++){ for(int i = 0; i < giocatori.size(); i++){
giocatori.getFirst().convertiTessereSbleuro(); giocatori.getFirst().convertiTessereSbleuro();
giocatori.getFirst().setTesseraTifoInveimento(true);
giocatori.addLast(giocatori.getFirst()); giocatori.addLast(giocatori.getFirst());
giocatori.removeFirst(); giocatori.removeFirst();
} }
//pulisco il terreno dalle tessere tifo
for(int i = 0; i < mappa.getCaselleSize(); i++){
mappa.getCasella(i).setTifoInveimento(0);
}
} }
public void finePartita(){ public void finePartita(){

View file

@ -6,6 +6,7 @@ public class Pila {
private Deque <Carta> vincitori = new ArrayDeque<>(); private Deque <Carta> vincitori = new ArrayDeque<>();
private Deque <Carta> perdenti = new ArrayDeque<>(); private Deque <Carta> perdenti = new ArrayDeque<>();
//metodi invocati dai giocatori quando scommettono su un cavallo
public void aggiungiVincitori(Carta carta){ public void aggiungiVincitori(Carta carta){
vincitori.addLast(carta); vincitori.addLast(carta);
} }
@ -21,6 +22,7 @@ public class Pila {
return perdenti.size(); return perdenti.size();
} }
//ritorna la carta all'indice stabilito
public Carta getCartaVincitore(int i){ public Carta getCartaVincitore(int i){
ArrayList <Carta> vincitoriArray = new ArrayList<>(vincitori); ArrayList <Carta> vincitoriArray = new ArrayList<>(vincitori);
return vincitoriArray.get(i); return vincitoriArray.get(i);

View file

@ -37,6 +37,7 @@ public class Posizione {
} }
} }
//metodo alternativo di quello che c'è sotto
/*if(cavalli.size() > 0){ /*if(cavalli.size() > 0){
for(int i = 0; i < cavalli.size(); i++){ for(int i = 0; i < cavalli.size(); i++){
stringa += cavalli.getFirst().getNome() + " ---> "; stringa += cavalli.getFirst().getNome() + " ---> ";
@ -48,9 +49,6 @@ public class Posizione {
for(int i = 0; i < cavalliArray.size(); i ++){ for(int i = 0; i < cavalliArray.size(); i ++){
stringa += cavalliArray.get(i).getNome() + " ---> "; stringa += cavalliArray.get(i).getNome() + " ---> ";
} }
return stringa; return stringa;
} }