This commit is contained in:
L3o15 2025-05-29 10:40:02 +00:00
parent 40e58cde9c
commit 3a8d834314
3 changed files with 52 additions and 2 deletions

View file

@ -1,13 +1,21 @@
package it.unibs.arnaldo.rovineperdute; package it.unibs.arnaldo.rovineperdute;
import java.util.HashMap;
import java.util.List; import java.util.List;
/**
* Classe che gestisce le operazioni sulle rovine perdute, come il calcolo degli spanning tree
* e la generazione di un file XML contenente le informazioni sulle rovine.
*/
public class RovinePerduteHandler { public class RovinePerduteHandler {
private final Graph grafo; private final Graph grafo;
private final List<RovinaPerdutaGrafo> minimumTreeMetztli; private final List<RovinaPerdutaGrafo> minimumTreeMetztli;
private final List<RovinaPerdutaGrafo> minimumTreeTonatium; private final List<RovinaPerdutaGrafo> minimumTreeTonatium;
/**
* Costruttore della classe RovinePerduteHandler.
* Inizializza il grafo delle rovine perdute e calcola gli spanning tree per i veicoli Metztli e Tonatiuh.
* @param filename il nome del file XML da cui leggere le informazioni sulle rovine perdute
*/
public RovinePerduteHandler(String filename) { public RovinePerduteHandler(String filename) {
this.grafo = Parser.parseRovinePerduteXML(filename); this.grafo = Parser.parseRovinePerduteXML(filename);
@ -22,6 +30,9 @@ public class RovinePerduteHandler {
this.minimumTreeTonatium = grafo.calcolaSpanningTree(partenza, TipoVeicolo.TONATIUH); this.minimumTreeTonatium = grafo.calcolaSpanningTree(partenza, TipoVeicolo.TONATIUH);
} }
/**
* Metodo per ottenere il file XML contenente le informazioni sulle rovine perdute.
*/
public void generaFileXML(){ public void generaFileXML(){
Parser.generaXML(minimumTreeTonatium, minimumTreeMetztli); Parser.generaXML(minimumTreeTonatium, minimumTreeMetztli);
} }

View file

@ -1,11 +1,46 @@
package it.unibs.arnaldo.rovineperdute; package it.unibs.arnaldo.rovineperdute;
import it.kibo.fp.lib.Menu;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
/**
* Classe principale per gestire le rovine perdute.
* Permette di generare un file XML contenente le informazioni sulle rovine in base alla scelta dell'utente.
*/
public class RovinePerduteMain { public class RovinePerduteMain {
private static final String[] MENU_OPTIONS = {
"5 rovine perdute",
"12 rovine perdute",
"50 rovine perdute",
"200 rovine perdute",
"2000 rovine perdute",
};
public static void main(String[] args) { public static void main(String[] args) {
RovinePerduteHandler rph = new RovinePerduteHandler("test_file/PgAr_Map_10000.xml"); int valore = ottieniValore();
RovinePerduteHandler rph = new RovinePerduteHandler(String.format("test_file/PgAr_Map_%d.xml", valore));
rph.generaFileXML(); rph.generaFileXML();
} }
/**
* Ottiene il valore selezionato dal menu.
* @return il valore corrispondente alla scelta dell'utente in modo da scegliere il file XML corretto.
*/
private static int ottieniValore() {
Menu menu = new Menu("Rovine Perdute", MENU_OPTIONS, true, false, false);
int scelta = menu.choose();
int valore = 0;
switch (scelta) {
case 1 -> valore = 5;
case 2 -> valore = 12;
case 3 -> valore = 50;
case 4 -> valore = 200;
case 5 -> valore = 2000;
}
return valore;
}
} }

View file

@ -1,5 +1,9 @@
package it.unibs.arnaldo.rovineperdute; package it.unibs.arnaldo.rovineperdute;
/**
* Enum che rappresenta i tipi di veicolo utilizzati per raggiungere le rovine perdute.
*/
public enum TipoVeicolo { public enum TipoVeicolo {
TONATIUH, TONATIUH,
METZTLI METZTLI