Class LabGraph
- java.lang.Object
-
- LabGraph
-
public class LabGraph extends java.lang.ObjectIl lavoro del labirinto deve ricevere come argomento del programma il nome di un file in cui sia rappresentato un labirinto in forma letterale tramite i caratteri "* eu" dove "*" è il muro, lo spazio " " è il possibile percorso, "e" è una entrata e "u" una uscita. Per esempio un possibile labirinto potrebbe essere ** ** e ******** *** * * * ** * * * * * *u * Il programma deve calcolare il percorso più veloce per raggiungere una uscita da una entrata. La soluzione va visualizzata in una finestra a se stante (in subordine a terminale) e salvata su un file con lo stesso nome del file di partenza seguito da una x. Il percorso viene visualizzato tramite il carattere '.' come nel caso dell'esempio: ** ** e. ******** *** . *...*... * .**.*.*.*. * ....*...*u * Volendo essere raffinati invece che il carattere '.' si possono usare i caratteri '-' e '|' per i tratti orizzontali e verticali e il carattere '+' per le curve ottenendo ** ** e+ ******** *** | *+-+*+-+ * |**|*|*|*| * +--+*+-+*u * La soluzione può essere anche visualizzata passo per passo ad intervalli di un secondo.
-
-
Constructor Summary
Constructors Constructor Description LabGraph(java.lang.String m)Legge una mappa e risolve il laborinto relativo
-
Method Summary
Modifier and Type Method Description GraphJPanelgrafo(java.lang.String[][] lab)Crea una GraphPanel contenente la mappa del labirintojava.lang.StringlabConvert(java.lang.String[][] lab)Ritorna una stringa contenente la visuallizzazione del labirintojava.lang.String[][]leggiMappa(java.lang.String mappa)Legge una mappa nel formato indicato soprastatic voidmain(java.lang.String[] args)Il programma principale che prende il nome del labirinto dagli argomenti, se ci sono, altrimenti apre una finestra di selezione per il file da acquisirevoidshowFrame(java.lang.String testo, GraphJPanel g, java.lang.String[][] lab)Presenta in una finestra il contenuto di un labirinto
-
-
-
Method Detail
-
leggiMappa
public java.lang.String[][] leggiMappa(java.lang.String mappa)
Legge una mappa nel formato indicato sopra- Parameters:
mappa- il nome del file contenente la mappa senza estenzione- Returns:
- la matrice contenente la mappa
-
grafo
public GraphJPanel grafo(java.lang.String[][] lab)
Crea una GraphPanel contenente la mappa del labirinto- Parameters:
lab- il labirinto- Returns:
- il GraphPanel
-
labConvert
public java.lang.String labConvert(java.lang.String[][] lab)
Ritorna una stringa contenente la visuallizzazione del labirinto- Parameters:
lab- il labirinto- Returns:
- la stringa contenente il contenuto del labirinto
-
showFrame
public void showFrame(java.lang.String testo, GraphJPanel g, java.lang.String[][] lab)Presenta in una finestra il contenuto di un labirinto- Parameters:
testo- il testo da premettere alla visualizzareg- il GraphJPanel in cui visualizzare il labirintolab- il labirinto da visualizzare
-
main
public static void main(java.lang.String[] args) throws java.lang.ExceptionIl programma principale che prende il nome del labirinto dagli argomenti, se ci sono, altrimenti apre una finestra di selezione per il file da acquisire- Parameters:
args- l'elenco dei nomi dei files dei labirinti di cui si vuole trovare la via d'uscita- Throws:
java.lang.Exception- se ci sono problemi nell'apertura dei files.
-
-