ancient-projects

My earliest programs (2006-2010)
git clone https://git.tronto.net/ancient-projects
Download | Log | Files | Refs | README

Robottino.java (5103B)


      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