aboutsummaryrefslogtreecommitdiff
path: root/robottino/all_versions/v2.2/src/RobottinoMain
diff options
context:
space:
mode:
authorSebastiano Tronto <sebastiano@tronto.net>2026-03-26 19:27:18 +0100
committerSebastiano Tronto <sebastiano@tronto.net>2026-03-26 19:27:18 +0100
commit7167b4341ef290d56fb96e2af10883a4b925d83b (patch)
tree1eb1b9e5ab82ddd89540e68d6b22ae69514575c6 /robottino/all_versions/v2.2/src/RobottinoMain
downloadancient-projects-7167b4341ef290d56fb96e2af10883a4b925d83b.tar.gz
ancient-projects-7167b4341ef290d56fb96e2af10883a4b925d83b.zip
I found my old code!HEADmaster
Diffstat (limited to 'robottino/all_versions/v2.2/src/RobottinoMain')
-rwxr-xr-xrobottino/all_versions/v2.2/src/RobottinoMain/Robottino.java115
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.
6package RobottinoMain;
7
8// Importo le librerie iniziali:
9// java.Util.Scanner per gestire gli input da tastiera.
10import 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.
17import 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.
22import RobottinoUtils.*;
23
24// Altro package da me definito.
25import RobottinoAzioni.*;
26
27// Dichiaro la classe.
28public 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

Generated with cgit - Back to sebastiano.tronto.net