Class LabGraph


  • public class LabGraph
    extends java.lang.Object
    Il 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
      GraphJPanel grafo​(java.lang.String[][] lab)
      Crea una GraphPanel contenente la mappa del labirinto
      java.lang.String labConvert​(java.lang.String[][] lab)
      Ritorna una stringa contenente la visuallizzazione del labirinto
      java.lang.String[][] leggiMappa​(java.lang.String mappa)
      Legge una mappa nel formato indicato sopra
      static void main​(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 acquisire
      void showFrame​(java.lang.String testo, GraphJPanel g, java.lang.String[][] lab)
      Presenta in una finestra il contenuto di un labirinto
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • LabGraph

        public LabGraph​(java.lang.String m)
        Legge una mappa e risolve il laborinto relativo
        Parameters:
        m - il labirinto da risolvere
    • 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 visualizzare
        g - il GraphJPanel in cui visualizzare il labirinto
        lab - il labirinto da visualizzare
      • main

        public static void main​(java.lang.String[] args)
                         throws java.lang.Exception
        Il 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.