diff --git a/Spirit_Arnaldo_Selvaggio/bin/Cavallo.class b/Spirit_Arnaldo_Selvaggio/bin/Cavallo.class index b456c2e..18d8952 100644 Binary files a/Spirit_Arnaldo_Selvaggio/bin/Cavallo.class and b/Spirit_Arnaldo_Selvaggio/bin/Cavallo.class differ diff --git a/Spirit_Arnaldo_Selvaggio/bin/Giocatore.class b/Spirit_Arnaldo_Selvaggio/bin/Giocatore.class index 1e6e669..4c1c8b6 100644 Binary files a/Spirit_Arnaldo_Selvaggio/bin/Giocatore.class and b/Spirit_Arnaldo_Selvaggio/bin/Giocatore.class differ diff --git a/Spirit_Arnaldo_Selvaggio/bin/Input.class b/Spirit_Arnaldo_Selvaggio/bin/Input.class index 2ffd9ec..1c6ce61 100644 Binary files a/Spirit_Arnaldo_Selvaggio/bin/Input.class and b/Spirit_Arnaldo_Selvaggio/bin/Input.class differ diff --git a/Spirit_Arnaldo_Selvaggio/bin/Output.class b/Spirit_Arnaldo_Selvaggio/bin/Output.class index 47ab17c..2089659 100644 Binary files a/Spirit_Arnaldo_Selvaggio/bin/Output.class and b/Spirit_Arnaldo_Selvaggio/bin/Output.class differ diff --git a/Spirit_Arnaldo_Selvaggio/bin/Partita$1.class b/Spirit_Arnaldo_Selvaggio/bin/Partita$1.class new file mode 100644 index 0000000..85d535c Binary files /dev/null and b/Spirit_Arnaldo_Selvaggio/bin/Partita$1.class differ diff --git a/Spirit_Arnaldo_Selvaggio/bin/Partita.class b/Spirit_Arnaldo_Selvaggio/bin/Partita.class index 701c13e..0fca656 100644 Binary files a/Spirit_Arnaldo_Selvaggio/bin/Partita.class and b/Spirit_Arnaldo_Selvaggio/bin/Partita.class differ diff --git a/Spirit_Arnaldo_Selvaggio/bin/README.md b/Spirit_Arnaldo_Selvaggio/bin/README.md new file mode 100644 index 0000000..76cde94 --- /dev/null +++ b/Spirit_Arnaldo_Selvaggio/bin/README.md @@ -0,0 +1,20 @@ + # PgAr2025_Esame_GabrieleDomenichini + ## Candidato + | + | + | + |-------------- |---------------- | + | Nome + | **Gabriele** + | + | Cognome + | **Domenichini** + | + | Matricola + | **752103** + | + | Corso di Studi | **CorsoDiStudi** | + ## Moduli Implementati- [x] Modulo 1: Inversione- [ ] Modulo 2: Personaggi- [x] Modulo 3: Taunt- [ ] Modulo 4: Classifica- [ ] Modulo 5: Rally- [ ] Modulo 6: Mapp + + + sono consapevole che avrei dovuto finire il modulo base prima di fare quelli extra ma il taunt era un copia e incolla della gara di informatica, mentre l'inversione erano letteralmente 6 righe di codice (tempo complessivo 5 minuti non erano quelli che mi mancavano per finire). \ No newline at end of file diff --git a/Spirit_Arnaldo_Selvaggio/bin/Tessera.class b/Spirit_Arnaldo_Selvaggio/bin/Tessera.class index 8fbefd2..356f21d 100644 Binary files a/Spirit_Arnaldo_Selvaggio/bin/Tessera.class and b/Spirit_Arnaldo_Selvaggio/bin/Tessera.class differ diff --git a/Spirit_Arnaldo_Selvaggio/src/Cavallo.java b/Spirit_Arnaldo_Selvaggio/src/Cavallo.java index 9b21aec..b73a359 100644 --- a/Spirit_Arnaldo_Selvaggio/src/Cavallo.java +++ b/Spirit_Arnaldo_Selvaggio/src/Cavallo.java @@ -62,13 +62,31 @@ public class Cavallo { } } + + public Tessera getTessera(){ + return tessere.getFirst(); + } + + public void togliTessera(){ + tessere.removeFirst(); + } + public void addTessera(Giocatore g){ tessere.add(new Tessera(g)); } public void spostaCasella(Mappa mappa, int i){ this.posizione += i; + if(mappa.getCasella(posizione).getTifoInveimento() == 1){ + this.posizione += 1; + mappa.getCasella(posizione).getGiocatoreTessera().aggiungiSbleuro(); + } + if(mappa.getCasella(posizione).getTifoInveimento() == -1){ + this.posizione -= 1; + mappa.getCasella(posizione).getGiocatoreTessera().aggiungiSbleuro(); + } mappa.getCasella(this.posizione).aggiungiCavallo(this); + } public void aggiungiTessera(Giocatore g){ diff --git a/Spirit_Arnaldo_Selvaggio/src/Giocatore.java b/Spirit_Arnaldo_Selvaggio/src/Giocatore.java index 7675f02..eb82641 100644 --- a/Spirit_Arnaldo_Selvaggio/src/Giocatore.java +++ b/Spirit_Arnaldo_Selvaggio/src/Giocatore.java @@ -62,6 +62,9 @@ public class Giocatore { public void aggiungiSbleuro(){ this.sbleuri ++; } + public void aggiungiSbleuri(int i){ + this.sbleuri += i; + } public int posizionaTesseraTifoInveimento(Mappa mappa){ int i = new Input().sceltaTifoInvimento(mappa); diff --git a/Spirit_Arnaldo_Selvaggio/src/Input.java b/Spirit_Arnaldo_Selvaggio/src/Input.java index d6442a3..773b2cb 100644 --- a/Spirit_Arnaldo_Selvaggio/src/Input.java +++ b/Spirit_Arnaldo_Selvaggio/src/Input.java @@ -1,6 +1,48 @@ + + import it.kibo.fp.lib.InputData; public class Input { + + /* + private int nWords; + private ArrayList encryptedWords; + private ArrayList keyWords; + Scanner scanner = new Scanner(System.in); + + public Input(int nWords) { + this.nWords = nWords; + encryptedWords = new ArrayList<>(); + keyWords = new ArrayList<>(); + + doInput(); + } + + private void doInput() { + for (int i = 0; i < nWords * 2; i++) { + String word = scanner.nextLine(); + if (i < nWords / 2) { + encryptedWords.add(word); + } else { + keyWords.add(word); + } + } + } + + public ArrayList getEncryptedWords() { + return encryptedWords; + } + + public ArrayList getKeyWords() { + return keyWords; + } + */ + + + + + + public Input(){ } diff --git a/Spirit_Arnaldo_Selvaggio/src/Output.java b/Spirit_Arnaldo_Selvaggio/src/Output.java index b7802dc..2bd65bc 100644 --- a/Spirit_Arnaldo_Selvaggio/src/Output.java +++ b/Spirit_Arnaldo_Selvaggio/src/Output.java @@ -33,5 +33,16 @@ public class Output { System.out.println("il cavallo selezionato ha già tutte le tessere prese "); } + public void posizioneClassifica(Cavallo cavallo, int i){ + System.out.println("il cavallo "+cavallo.getNome()+" è alla posizione "+i+ "della classifica"); + } + + public void annuncioGuadagno(Giocatore g, int i){ + System.out.println("il giocatore "+ g.getNome() + "ha guadagnato "+i+" sbleuri!!"); + } + public void annuncioPerdita(Giocatore g, int i){ + System.out.println("il giocatore "+ g.getNome() + "ha perso "+i+" sbleuri!!"); + } + } diff --git a/Spirit_Arnaldo_Selvaggio/src/Partita.java b/Spirit_Arnaldo_Selvaggio/src/Partita.java index f550970..719cfc9 100644 --- a/Spirit_Arnaldo_Selvaggio/src/Partita.java +++ b/Spirit_Arnaldo_Selvaggio/src/Partita.java @@ -1,6 +1,8 @@ import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Deque; +import java.util.Collections; +import java.util.Comparator; import it.kibo.fp.lib.InputData; import it.kibo.fp.lib.Menu; @@ -8,7 +10,7 @@ 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", "Taunta un nemico"}; + 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", "Taunta un nemico", "inverti il senso di marcia"}; 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<>(); @@ -111,6 +113,15 @@ public class Partita { Algoritmo soluzione = new Algoritmo(nWords, dati.getEncryptedWords(), dati.getKeyWords()); break;*/ + case 8: + for(int i = 0; i < cavalli.size(); i++){ + if(cavalli.get(i).isMatto()){ + cavalli.get(i).setMatto(false); + } + else{ + cavalli.get(i).setMatto(true); + } + } @@ -130,9 +141,55 @@ public class Partita { } public void riscuotiTessereCavalli(){ - ArrayList classifica = new ArrayList<>(); - for(int i = 0; i < cavalli.size(); i++){ - + ArrayList classifica = cavalli; + Collections.sort(classifica, new Comparator(){ + public int compare(Cavallo a, Cavallo b){ + return b.getPosizione()-a.getPosizione(); + } + }); + //calcolo scommesse effettuate + for(int i = 0; i < classifica.size(); i++){ + Cavallo a = classifica.get(i); + new Output().posizioneClassifica(classifica.get(i), i); + for(int j = 0; j < a.getTessereSize(); j++){ + Tessera tessera = a.getTessera(); + if(i == 0){ + switch(j){ + case 1: + tessera.getGiocatore().aggiungiSbleuri(5); + new Output().annuncioGuadagno(tessera.getGiocatore(), 5); + break; + case 2: + tessera.getGiocatore().aggiungiSbleuri(3); + new Output().annuncioGuadagno(tessera.getGiocatore(), 3); + break; + case 3: + tessera.getGiocatore().aggiungiSbleuri(2); + new Output().annuncioGuadagno(tessera.getGiocatore(), 2); + break; + case 4: + tessera.getGiocatore().aggiungiSbleuri(2); + new Output().annuncioGuadagno(tessera.getGiocatore(), 2); + break; + } + } + if (i == 1){ + tessera.getGiocatore().aggiungiSbleuri(1); + new Output().annuncioGuadagno(tessera.getGiocatore(), 1); + } + else{ + tessera.getGiocatore().aggiungiSbleuri(-1); + new Output().annuncioPerdita(tessera.getGiocatore(), 1); + } + } + cavalli.get(i).svuotaTessere(); + + } + //calcolo tessereSbleuro + for(int i = 0; i < giocatori.size(); i++){ + giocatori.getFirst().convertiTessereSbleuro(); + giocatori.addLast(giocatori.getFirst()); + giocatori.removeFirst(); } } diff --git a/Spirit_Arnaldo_Selvaggio/src/README.md b/Spirit_Arnaldo_Selvaggio/src/README.md new file mode 100644 index 0000000..76cde94 --- /dev/null +++ b/Spirit_Arnaldo_Selvaggio/src/README.md @@ -0,0 +1,20 @@ + # PgAr2025_Esame_GabrieleDomenichini + ## Candidato + | + | + | + |-------------- |---------------- | + | Nome + | **Gabriele** + | + | Cognome + | **Domenichini** + | + | Matricola + | **752103** + | + | Corso di Studi | **CorsoDiStudi** | + ## Moduli Implementati- [x] Modulo 1: Inversione- [ ] Modulo 2: Personaggi- [x] Modulo 3: Taunt- [ ] Modulo 4: Classifica- [ ] Modulo 5: Rally- [ ] Modulo 6: Mapp + + + sono consapevole che avrei dovuto finire il modulo base prima di fare quelli extra ma il taunt era un copia e incolla della gara di informatica, mentre l'inversione erano letteralmente 6 righe di codice (tempo complessivo 5 minuti non erano quelli che mi mancavano per finire). \ No newline at end of file diff --git a/Spirit_Arnaldo_Selvaggio/src/Tessera.java b/Spirit_Arnaldo_Selvaggio/src/Tessera.java index c76d7f1..e5c9695 100644 --- a/Spirit_Arnaldo_Selvaggio/src/Tessera.java +++ b/Spirit_Arnaldo_Selvaggio/src/Tessera.java @@ -8,4 +8,8 @@ public class Tessera { public void assegnaTessera(Giocatore g){ this.giocatorePrenotato = g; } + + public Giocatore getGiocatore(){ + return giocatorePrenotato; + } }