Aggiunto GetPostiOccupati

This commit is contained in:
La Programmatrice Verde 2025-09-25 22:26:09 +02:00
parent 13922530b7
commit 844f6d9edc

View File

@ -45,10 +45,11 @@ public class Garage {
public String IngressoAuto() {
String ritorno;
int posizione = this.NextPosizioneLibera();
try {
veicoli[this.NextPosizioneLibera()] = new Auto();
ritorno = "L'auto è posteggiata nella posizione %d".formatted(posizioneLibera++);
veicoli[posizione] = new Auto();
ritorno = "L'auto è posteggiata nella posizione %d".formatted(posizione);
} catch (ArrayIndexOutOfBoundsException e) {
ritorno = "Errore: il garage è pieno.";
} catch (Exception e) {
@ -58,8 +59,46 @@ public class Garage {
return ritorno;
}
private int[] TrovaPosti(boolean p_selettore) {
/*
* p_selettore = true -> trova posti occupati
* p_selettore = false -> trova posti liberi
*/
int ritorno[] = new int[this.veicoli.length];
for (int i = 0; i < this.veicoli.length; i++) {
if (p_selettore) {
ritorno[i] = this.veicoli[i] != null ? i : -1;
} else {
ritorno[i] = this.veicoli[i] == null ? i : -1;
}
}
return ritorno;
}
public String GetPostiOccupati() {
return "I posti occupati sono da 0 a %d".formatted(--posizioneLibera);
String ritorno;
boolean vuoto = true;
int posti[] = TrovaPosti(true);
for (int i = 0; i < posti.length && vuoto; i++) {
if (posti[i] != -1) {
vuoto = false;
}
}
if (vuoto) {
ritorno = "Non c'è nessun posto occupato.";
}
else {
ritorno = "I posti occupati sono:\n";
for (int posizione : posti) {
if (posizione != -1) {
ritorno += posizione + "\n";
}
}
}
return ritorno;
}
public String GetPostiLiberi() {