diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2026-03-26 19:27:18 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2026-03-26 19:27:18 +0100 |
| commit | 7167b4341ef290d56fb96e2af10883a4b925d83b (patch) | |
| tree | 1eb1b9e5ab82ddd89540e68d6b22ae69514575c6 /robottino/all_versions/v2.2/src/RobottinoMain | |
| download | ancient-projects-7167b4341ef290d56fb96e2af10883a4b925d83b.tar.gz ancient-projects-7167b4341ef290d56fb96e2af10883a4b925d83b.zip | |
Diffstat (limited to 'robottino/all_versions/v2.2/src/RobottinoMain')
| -rwxr-xr-x | robottino/all_versions/v2.2/src/RobottinoMain/Robottino.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/robottino/all_versions/v2.2/src/RobottinoMain/Robottino.java b/robottino/all_versions/v2.2/src/RobottinoMain/Robottino.java new file mode 100755 index 0000000..37e2dff --- /dev/null +++ b/robottino/all_versions/v2.2/src/RobottinoMain/Robottino.java | |||
| @@ -0,0 +1,115 @@ | |||
| 1 | // Robottino versione 2.2 | ||
| 2 | // Da questa versione illustrerò tutte le parti del programma con dei commenti come questo. | ||
| 3 | |||
| 4 | // Dichiaro che questa classe fa parte del package RobottinoMain, che verrà poi importato | ||
| 5 | // dalle classi che dovranno interagire con essa. | ||
| 6 | package RobottinoMain; | ||
| 7 | |||
| 8 | // Importo le librerie iniziali: | ||
| 9 | // java.Util.Scanner per gestire gli input da tastiera. | ||
| 10 | import java.util.Scanner; | ||
| 11 | |||
| 12 | // java.util.Vector serve a gestire i vettori. | ||
| 13 | // I vettori sono come array, ma hanno due differenze principali: | ||
| 14 | // 1) la loro lunghezza può variare durante l'esecuzione del programma | ||
| 15 | // (per questo li ho preferiti agli array); | ||
| 16 | // 2) possono contenere soltanto oggetti, e non tipi primitivi. | ||
| 17 | import java.util.Vector; | ||
| 18 | |||
| 19 | // Questo è il package di utility da me creato per semplificare l'utilizzo degli elementi di altre classi | ||
| 20 | // (Grafica, PartiDelRobot). Nelle versioni precedenti c'erano solo le classi Robottino | ||
| 21 | // e PartiDelRobot, percui avevo deciso di far sì che una fosse derivata dall'altra. | ||
| 22 | import RobottinoUtils.*; | ||
| 23 | |||
| 24 | // Altro package da me definito. | ||
| 25 | import RobottinoAzioni.*; | ||
| 26 | |||
| 27 | // Dichiaro la classe. | ||
| 28 | public class Robottino { | ||
| 29 | |||
| 30 | // Istanzio anche le classi Robottino e RobottinoAzioni, per poter avere accesso agli elementi non-statici. | ||
| 31 | static Robottino robottino = new Robottino(); | ||
| 32 | static RobottinoAzioni robottinoazioni = new RobottinoAzioni(); | ||
| 33 | |||
| 34 | // Istanzio la classe Thread per poter utilizzare il metodo sleep(int millisecondi) | ||
| 35 | // che in un metodo dell'interfaccia WindowListener, overridato nella classe Listener | ||
| 36 | // servirà a mettere il programma in uno stato di pausa. | ||
| 37 | // Sarebbe comunque possibile invocarlo, ma così sarà più facile da modificare in futuro. | ||
| 38 | public static Thread threadMain; | ||
| 39 | |||
| 40 | // Inizio del metodo main... | ||
| 41 | public static void main(String[] args) { | ||
| 42 | |||
| 43 | threadMain = new Thread(Thread.currentThread()); | ||
| 44 | |||
| 45 | // Aggiungo gli elementi ai vettori. | ||
| 46 | // non potevo farlo prima, poiché al di fuori di un metodo è possibile soltanto | ||
| 47 | // dichiarare oggetti/variabili (e inizializzarli) o dichiarare un metodo | ||
| 48 | // e in RobottinoAzioni è presente solo il metodo Azioni che viene richiamato più volte. | ||
| 49 | RobottinoAzioni.pdrB.addElement(RobottinoAzioni.leftArm); | ||
| 50 | RobottinoAzioni.pdrB.addElement(RobottinoAzioni.rightArm); | ||
| 51 | RobottinoAzioni.pdrB.addElement(RobottinoAzioni.leftLeg); | ||
| 52 | RobottinoAzioni.pdrB.addElement(RobottinoAzioni.rightLeg); | ||
| 53 | RobottinoAzioni.pdrA.addElement(RobottinoAzioni.pdrB); | ||
| 54 | RobottinoAzioni.nomeRobot.addElement(""); | ||
| 55 | |||
| 56 | // Istanzio la classe Scanner per poter ricevere input | ||
| 57 | Scanner sc = new Scanner(System.in); | ||
| 58 | |||
| 59 | // Dichiaro la variabile comando che memorizzerà l'input dell'utente | ||
| 60 | String comando; | ||
| 61 | |||
| 62 | // Crea la finestra tramite un'istanza della classe Grafica, del package RobottinoUtils | ||
| 63 | Grafica finestra = new Grafica(); | ||
| 64 | |||
| 65 | // Output iniziale nellla shell | ||
| 66 | System.out.println ("**********************************************"); | ||
| 67 | System.out.println ("**********************************************"); | ||
| 68 | System.out.println ("*************Programma interattivo************"); | ||
| 69 | System.out.println ("**********************************************"); | ||
| 70 | System.out.println ("***Software realizzato da Sebastiano Tronto***"); | ||
| 71 | System.out.println ("**********************************************"); | ||
| 72 | System.out.println ("**********************************************"); | ||
| 73 | System.out.println ("Questo programma simula un robot al quale ven-"); | ||
| 74 | System.out.println ("gono assegnati ordini tramite comandi, simil-" ); | ||
| 75 | System.out.println ("mente a quanto bisognava fare con i computer " ); | ||
| 76 | System.out.println ("alcuni anni fa." ); | ||
| 77 | System.out.println ("Dato che all'epoca i comandi che dovevano es-" ); | ||
| 78 | System.out.println ("sere dati erano (e sono tutt'ora) in similin-" ); | ||
| 79 | System.out.println ("glese, ho cercato di mantenerli tali." ); | ||
| 80 | System.out.println ("Il programma non fa distinzioni tra lettere" ); | ||
| 81 | System.out.println ("maiuscole o minuscole." ); | ||
| 82 | System.out.println ("da questa versione (2.2) sono disponibili ef-" ); | ||
| 83 | System.out.println ("fetti grafici minimali e totalmente inutili." ); | ||
| 84 | System.out.println ("" ); | ||
| 85 | System.out.println ("Digita un comando e premi INVIO" ); | ||
| 86 | System.out.println ("l = legenda comandi" ); | ||
| 87 | System.out.println (""); | ||
| 88 | |||
| 89 | // Inizio del ciclo do-while che fa in modo di ricevere input ed eseguire il metodo "Azioni" | ||
| 90 | // fintando che il comando non è exit. | ||
| 91 | do { | ||
| 92 | |||
| 93 | // Inizializza la stringa comando con il valore dell'input. | ||
| 94 | comando = sc.nextLine(); | ||
| 95 | System.out.println (""); | ||
| 96 | |||
| 97 | // Esegue il metodo "Azioni" passando come argomenti il comando e i due vettori. | ||
| 98 | System.out.println (robottinoazioni.Azioni(comando, RobottinoAzioni.nomeRobot, RobottinoAzioni.pdrA)); | ||
| 99 | System.out.println (""); | ||
| 100 | } while ( !(comando.equalsIgnoreCase("exit")) ); | ||
| 101 | |||
| 102 | // Al termine del metodo main invoco il metodo "System.exit" per terminare completamente l'esecuzione del programma | ||
| 103 | System.exit(0); | ||
| 104 | } | ||
| 105 | // Fine del metodo main. | ||
| 106 | } | ||
| 107 | |||
| 108 | |||
| 109 | |||
| 110 | |||
| 111 | |||
| 112 | |||
| 113 | |||
| 114 | |||
| 115 | |||
