From 7167b4341ef290d56fb96e2af10883a4b925d83b Mon Sep 17 00:00:00 2001 From: Sebastiano Tronto Date: Thu, 26 Mar 2026 19:27:18 +0100 Subject: I found my old code! --- .../v2.2/src/RobottinoMain/Robottino.java | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100755 robottino/all_versions/v2.2/src/RobottinoMain/Robottino.java (limited to 'robottino/all_versions/v2.2/src/RobottinoMain/Robottino.java') 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 @@ +// Robottino versione 2.2 +// Da questa versione illustrerò tutte le parti del programma con dei commenti come questo. + +// Dichiaro che questa classe fa parte del package RobottinoMain, che verrà poi importato +// dalle classi che dovranno interagire con essa. +package RobottinoMain; + +// Importo le librerie iniziali: +// java.Util.Scanner per gestire gli input da tastiera. +import java.util.Scanner; + +// java.util.Vector serve a gestire i vettori. +// I vettori sono come array, ma hanno due differenze principali: +// 1) la loro lunghezza può variare durante l'esecuzione del programma +// (per questo li ho preferiti agli array); +// 2) possono contenere soltanto oggetti, e non tipi primitivi. +import java.util.Vector; + +// Questo è il package di utility da me creato per semplificare l'utilizzo degli elementi di altre classi +// (Grafica, PartiDelRobot). Nelle versioni precedenti c'erano solo le classi Robottino +// e PartiDelRobot, percui avevo deciso di far sì che una fosse derivata dall'altra. +import RobottinoUtils.*; + +// Altro package da me definito. +import RobottinoAzioni.*; + +// Dichiaro la classe. +public class Robottino { + + // Istanzio anche le classi Robottino e RobottinoAzioni, per poter avere accesso agli elementi non-statici. + static Robottino robottino = new Robottino(); + static RobottinoAzioni robottinoazioni = new RobottinoAzioni(); + + // Istanzio la classe Thread per poter utilizzare il metodo sleep(int millisecondi) + // che in un metodo dell'interfaccia WindowListener, overridato nella classe Listener + // servirà a mettere il programma in uno stato di pausa. + // Sarebbe comunque possibile invocarlo, ma così sarà più facile da modificare in futuro. + public static Thread threadMain; + + // Inizio del metodo main... + public static void main(String[] args) { + + threadMain = new Thread(Thread.currentThread()); + + // Aggiungo gli elementi ai vettori. + // non potevo farlo prima, poiché al di fuori di un metodo è possibile soltanto + // dichiarare oggetti/variabili (e inizializzarli) o dichiarare un metodo + // e in RobottinoAzioni è presente solo il metodo Azioni che viene richiamato più volte. + RobottinoAzioni.pdrB.addElement(RobottinoAzioni.leftArm); + RobottinoAzioni.pdrB.addElement(RobottinoAzioni.rightArm); + RobottinoAzioni.pdrB.addElement(RobottinoAzioni.leftLeg); + RobottinoAzioni.pdrB.addElement(RobottinoAzioni.rightLeg); + RobottinoAzioni.pdrA.addElement(RobottinoAzioni.pdrB); + RobottinoAzioni.nomeRobot.addElement(""); + + // Istanzio la classe Scanner per poter ricevere input + Scanner sc = new Scanner(System.in); + + // Dichiaro la variabile comando che memorizzerà l'input dell'utente + String comando; + + // Crea la finestra tramite un'istanza della classe Grafica, del package RobottinoUtils + Grafica finestra = new Grafica(); + + // Output iniziale nellla shell + System.out.println ("**********************************************"); + System.out.println ("**********************************************"); + System.out.println ("*************Programma interattivo************"); + System.out.println ("**********************************************"); + System.out.println ("***Software realizzato da Sebastiano Tronto***"); + System.out.println ("**********************************************"); + System.out.println ("**********************************************"); + System.out.println ("Questo programma simula un robot al quale ven-"); + System.out.println ("gono assegnati ordini tramite comandi, simil-" ); + System.out.println ("mente a quanto bisognava fare con i computer " ); + System.out.println ("alcuni anni fa." ); + System.out.println ("Dato che all'epoca i comandi che dovevano es-" ); + System.out.println ("sere dati erano (e sono tutt'ora) in similin-" ); + System.out.println ("glese, ho cercato di mantenerli tali." ); + System.out.println ("Il programma non fa distinzioni tra lettere" ); + System.out.println ("maiuscole o minuscole." ); + System.out.println ("da questa versione (2.2) sono disponibili ef-" ); + System.out.println ("fetti grafici minimali e totalmente inutili." ); + System.out.println ("" ); + System.out.println ("Digita un comando e premi INVIO" ); + System.out.println ("l = legenda comandi" ); + System.out.println (""); + + // Inizio del ciclo do-while che fa in modo di ricevere input ed eseguire il metodo "Azioni" + // fintando che il comando non è exit. + do { + + // Inizializza la stringa comando con il valore dell'input. + comando = sc.nextLine(); + System.out.println (""); + + // Esegue il metodo "Azioni" passando come argomenti il comando e i due vettori. + System.out.println (robottinoazioni.Azioni(comando, RobottinoAzioni.nomeRobot, RobottinoAzioni.pdrA)); + System.out.println (""); + } while ( !(comando.equalsIgnoreCase("exit")) ); + + // Al termine del metodo main invoco il metodo "System.exit" per terminare completamente l'esecuzione del programma + System.exit(0); + } + // Fine del metodo main. +} + + + + + + + + + -- cgit v1.3