diff --git a/src/it/unibs/arnaldo/rovineperdute/RovinePerduteHandler.java b/src/it/unibs/arnaldo/rovineperdute/RovinePerduteHandler.java index 3bf0dcc..db4ac95 100644 --- a/src/it/unibs/arnaldo/rovineperdute/RovinePerduteHandler.java +++ b/src/it/unibs/arnaldo/rovineperdute/RovinePerduteHandler.java @@ -1,13 +1,21 @@ package it.unibs.arnaldo.rovineperdute; -import java.util.HashMap; 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 { private final Graph grafo; private final List minimumTreeMetztli; private final List 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) { this.grafo = Parser.parseRovinePerduteXML(filename); @@ -22,6 +30,9 @@ public class RovinePerduteHandler { this.minimumTreeTonatium = grafo.calcolaSpanningTree(partenza, TipoVeicolo.TONATIUH); } + /** + * Metodo per ottenere il file XML contenente le informazioni sulle rovine perdute. + */ public void generaFileXML(){ Parser.generaXML(minimumTreeTonatium, minimumTreeMetztli); } diff --git a/src/it/unibs/arnaldo/rovineperdute/RovinePerduteMain.java b/src/it/unibs/arnaldo/rovineperdute/RovinePerduteMain.java index 09a0756..a95b965 100644 --- a/src/it/unibs/arnaldo/rovineperdute/RovinePerduteMain.java +++ b/src/it/unibs/arnaldo/rovineperdute/RovinePerduteMain.java @@ -1,11 +1,46 @@ package it.unibs.arnaldo.rovineperdute; +import it.kibo.fp.lib.Menu; + import java.util.HashMap; 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 { + 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) { - 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(); } + + /** + * 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; + } } diff --git a/src/it/unibs/arnaldo/rovineperdute/TipoVeicolo.java b/src/it/unibs/arnaldo/rovineperdute/TipoVeicolo.java index 8fb37f4..8a8ca53 100644 --- a/src/it/unibs/arnaldo/rovineperdute/TipoVeicolo.java +++ b/src/it/unibs/arnaldo/rovineperdute/TipoVeicolo.java @@ -1,5 +1,9 @@ package it.unibs.arnaldo.rovineperdute; +/** + * Enum che rappresenta i tipi di veicolo utilizzati per raggiungere le rovine perdute. + */ + public enum TipoVeicolo { TONATIUH, METZTLI