quasi finita la fine della tappa

This commit is contained in:
gababababibbo 2025-06-09 18:26:51 +02:00
parent 6621dd2952
commit e216374961
15 changed files with 179 additions and 4 deletions

Binary file not shown.

View file

@ -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).

View file

@ -62,13 +62,31 @@ public class Cavallo {
} }
} }
public Tessera getTessera(){
return tessere.getFirst();
}
public void togliTessera(){
tessere.removeFirst();
}
public void addTessera(Giocatore g){ public void addTessera(Giocatore g){
tessere.add(new Tessera(g)); tessere.add(new Tessera(g));
} }
public void spostaCasella(Mappa mappa, int i){ public void spostaCasella(Mappa mappa, int i){
this.posizione += 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); mappa.getCasella(this.posizione).aggiungiCavallo(this);
} }
public void aggiungiTessera(Giocatore g){ public void aggiungiTessera(Giocatore g){

View file

@ -62,6 +62,9 @@ public class Giocatore {
public void aggiungiSbleuro(){ public void aggiungiSbleuro(){
this.sbleuri ++; this.sbleuri ++;
} }
public void aggiungiSbleuri(int i){
this.sbleuri += i;
}
public int posizionaTesseraTifoInveimento(Mappa mappa){ public int posizionaTesseraTifoInveimento(Mappa mappa){
int i = new Input().sceltaTifoInvimento(mappa); int i = new Input().sceltaTifoInvimento(mappa);

View file

@ -1,6 +1,48 @@
import it.kibo.fp.lib.InputData; import it.kibo.fp.lib.InputData;
public class Input { public class Input {
/*
private int nWords;
private ArrayList<String> encryptedWords;
private ArrayList<String> 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<String> getEncryptedWords() {
return encryptedWords;
}
public ArrayList<String> getKeyWords() {
return keyWords;
}
*/
public Input(){ public Input(){
} }

View file

@ -33,5 +33,16 @@ public class Output {
System.out.println("il cavallo selezionato ha già tutte le tessere prese "); 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!!");
}
} }

View file

@ -1,6 +1,8 @@
import java.util.ArrayDeque; import java.util.ArrayDeque;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Deque; import java.util.Deque;
import java.util.Collections;
import java.util.Comparator;
import it.kibo.fp.lib.InputData; import it.kibo.fp.lib.InputData;
import it.kibo.fp.lib.Menu; import it.kibo.fp.lib.Menu;
@ -8,7 +10,7 @@ import it.kibo.fp.lib.RandomDraws;
public class Partita { public class Partita {
private static String titolo = "seleziona la scelta"; 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 titolo2 = "seleziona il cavallo su cui scommettere";
private static String [] selezioniCavalli ={"Nawt, Rosso", "Blanco, Blu", "Pound, Giallo", "Bang, Verde", "Bupkus, Viola"}; private static String [] selezioniCavalli ={"Nawt, Rosso", "Blanco, Blu", "Pound, Giallo", "Bang, Verde", "Bupkus, Viola"};
private Deque <Giocatore> giocatori = new ArrayDeque<>(); private Deque <Giocatore> giocatori = new ArrayDeque<>();
@ -111,6 +113,15 @@ public class Partita {
Algoritmo soluzione = new Algoritmo(nWords, dati.getEncryptedWords(), dati.getKeyWords()); Algoritmo soluzione = new Algoritmo(nWords, dati.getEncryptedWords(), dati.getKeyWords());
break;*/ 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(){ public void riscuotiTessereCavalli(){
ArrayList <Cavallo> classifica = new ArrayList<>(); ArrayList <Cavallo> classifica = cavalli;
for(int i = 0; i < cavalli.size(); i++){ Collections.sort(classifica, new Comparator<Cavallo>(){
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();
} }
} }

View file

@ -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).

View file

@ -8,4 +8,8 @@ public class Tessera {
public void assegnaTessera(Giocatore g){ public void assegnaTessera(Giocatore g){
this.giocatorePrenotato = g; this.giocatorePrenotato = g;
} }
public Giocatore getGiocatore(){
return giocatorePrenotato;
}
} }