blob: 37471cf33c1c91822013b8aa99971a8f79043c4d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
// 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 la classe Grafica per poter "costruire" una finestra.
import RobottinoUtils.Grafica;
// E il package Robottinoazioni per poterne inizializzare i vettori
import RobottinoAzioni.*;
// 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;
// Dichiaro la classe.
public class Robottino {
// 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("");
// 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 ("Da questa versione (v2.3) i comandi devono es-");
System.out.println ("sere dati attraverso i menu File, Modifica o " );
System.out.println ("Azioni della finestra." );
System.out.println ("" );
System.out.println ("Tuttavia la reazione del robottino verrà vi-" );
System.out.println ("sualizzata attraverso la shell." );
System.out.println ("");
}
// Fine del metodo main.
}
|