ancient-projects

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

Robottino.java (13465B)


      1 import java.util.Scanner;
      2 import java.util.Vector;
      3 class Robottino extends PartiDelRobot {
      4 	static Robottino robottino = new Robottino();
      5 	static Vector pdrA = new Vector(1);
      6 	static Vector pdrB = new Vector(4);
      7 	static PartiDelRobot leftArm = new PartiDelRobot(false, "il braccio sinistro alzato");
      8 	static PartiDelRobot rightArm = new PartiDelRobot(false, "il braccio destro alzato");
      9 	static PartiDelRobot leftLeg = new PartiDelRobot(false, "la gamba sinistra alzata");
     10 	static PartiDelRobot rightLeg = new PartiDelRobot(false, "la gamba destra alzata");
     11 	static Vector nomeRobot = new Vector(1);
     12 	static int robotIndex = 0;
     13 	public static void main(String argv[]) {
     14 		pdrB.addElement(leftArm);
     15 		pdrB.addElement(rightArm);
     16 		pdrB.addElement(leftLeg);
     17 		pdrB.addElement(rightLeg);
     18 		pdrA.addElement(pdrB);
     19 		nomeRobot.addElement("");
     20 		Scanner sc = new Scanner(System.in);
     21 		String comando;
     22 		System.out.println ("**********************************************");
     23 		System.out.println ("**********************************************");
     24 		System.out.println ("*************Programma interattivo************");
     25 		System.out.println ("**********************************************");
     26 		System.out.println ("***Software realizzato da Sebastiano Tronto***");
     27 		System.out.println ("**********************************************");
     28 		System.out.println ("**********************************************");
     29 		System.out.println ("Questo programma simula un robot al quale ven-");
     30 		System.out.println ("gono assegnati ordini tramite comandi, simil-" );
     31 		System.out.println ("mente a quanto bisognava fare con i computer " );
     32 		System.out.println ("alcuni anni fa."                               );
     33 		System.out.println ("Dato che all'epoca i comandi che dovevano es-" );
     34 		System.out.println ("sere dati erano (e sono tutt'ora) in similin-" );
     35 		System.out.println ("glese, ho cercato di mantenerli tali."         );
     36 		System.out.println ("Il programma non fa distinzioni tra lettere"   );
     37 		System.out.println ("maiuscole o minuscole."                        );
     38 		System.out.println ("In questa versione non sono ancora disponibi-" );
     39 		System.out.println ("li immagini e/o effetti grafici."              );
     40 		System.out.println (""                                              );
     41 		System.out.println ("Digita un comando e premi INVIO"               );
     42 		System.out.println ("l = legenda comandi"                           );
     43 		System.out.println ("");
     44 		do {
     45 			comando = sc.nextLine();
     46 			System.out.println ("");
     47 			System.out.println (robottino.Azioni(comando, nomeRobot, pdrA));
     48 			System.out.println ("");
     49 		} while ( !(comando.equalsIgnoreCase("exit")) );
     50 	}
     51 	String Azioni(String comando, Vector nomeRobot, Vector pdrA) {
     52 		Scanner sc2 = new Scanner(System.in);
     53 		int contatore = 0;
     54 		String stat[] = {"", "", "", ""};
     55 		String Return = "Errore - si consiglia di picchiare il programmatore";
     56 		if (comando.equalsIgnoreCase("leftarmmove"))
     57 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte = !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte;
     58 		else if (comando.equalsIgnoreCase("rightarmmove"))
     59 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte = !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte;
     60 		else if (comando.equalsIgnoreCase("leftlegmove"))
     61 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte = !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte;
     62 		else if (comando.equalsIgnoreCase("rightlegmove"))
     63 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte = !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte;
     64 		else if (comando.equalsIgnoreCase("leftarmon"))
     65 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte = true;
     66 		else if (comando.equalsIgnoreCase("rightarmon"))
     67 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte = true;
     68 		else if (comando.equalsIgnoreCase("leftlegon"))
     69 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte = true;
     70 		else if (comando.equalsIgnoreCase("rightlegon"))
     71 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte = true;
     72 		else if (comando.equalsIgnoreCase("leftarmoff"))
     73 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte = false;
     74 		else if (comando.equalsIgnoreCase("rightarmoff"))
     75 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte = false;
     76 		else if (comando.equalsIgnoreCase("leftlegoff"))
     77 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte = false;
     78 		else if (comando.equalsIgnoreCase("rightlegoff"))
     79 			((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte = false;
     80 		else if (comando.equalsIgnoreCase("exploud")) {
     81 			System.out.println ("Che atroce! Hai fatto esplodere il robottino " + nomeRobot.elementAt(this.robotIndex) + "! Aspetta che te ne faccio un altro");
     82 			System.out.println ("...");
     83 			for (int i = 0; i < 4; i++) {
     84 				((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(i)).statoParte = false;
     85 			}
     86 			this.nomeRobot.setElementAt("", this.robotIndex);
     87 			return "Fatto, puoi continuare a giocare";
     88 		}
     89 		else if (comando.equalsIgnoreCase("bier")) {
     90 			System.out.println ("Il robottino " + nomeRobot.elementAt(this.robotIndex) + "sta trangugiando una birra...");
     91 			System.out.println ("Buurrrrrrrrp!");
     92 			return "La birra analcolica fa schifo!";
     93 		}
     94 		else if (comando.equalsIgnoreCase("rename")) {
     95 			System.out.println ("Con questo comando quoi cambiare il nome del robottino " + nomeRobot.elementAt(this.robotIndex));
     96 			System.out.println ("Digita il nuovo nome e premi invio per coninuare");
     97 			this.nomeRobot.setElementAt(sc2.nextLine(), this.robotIndex);
     98 			if (!(((String)nomeRobot.elementAt(this.robotIndex)).equalsIgnoreCase("")))
     99 				this.nomeRobot.setElementAt(this.nomeRobot.elementAt(this.robotIndex) + " ", this.robotIndex);
    100 			return "Ora il robottino si chiama " + nomeRobot.elementAt(this.robotIndex);
    101 		}
    102 		else if (comando.equalsIgnoreCase("porky")) {
    103 			System.out.println ("Porky è un grande");
    104 			System.out.println ("Per maggiori informazioni visita il sito");
    105 			return "http://kakati.forumfree.net/";
    106 		}
    107 		else if (comando.equalsIgnoreCase("xxx")) {
    108 			System.out.println ("Il robottino " + nomeRobot.elementAt(this.robotIndex) + "ha incontrato una bella robottina...");
    109 			return "*Censura*";
    110 		}
    111 		else if (comando.equalsIgnoreCase("dance")) {
    112 			System.out.println ("Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + " stia ballando...");
    113 			System.out.println ("Il robottino ha smesso di ballare");
    114 			for (int i = 0; i < 4; i++) {
    115 				((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(i)).statoParte = false;
    116 			}
    117 			return "Il robottino " + nomeRobot.elementAt(this.robotIndex) + "si è fermato ed è  tornato nella posizione originale";
    118 		}
    119 		else if (comando.equalsIgnoreCase("newrobot")) {
    120 			this.pdrA.addElement(pdrB);
    121 			((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (leftArm);
    122 			((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (rightArm);
    123 			((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (leftLeg);
    124 			((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (rightLeg);
    125 			System.out.println ("È stato creato un nuovo robot. Vuoi dare un nome al nuovo robot?");
    126 			System.out.println ("Inserisci il nuovo nome e premi INVIO oppure lascia vuoto e premi INVIO");
    127 			String newName = sc2.nextLine();
    128 			this.nomeRobot.addElement(newName);
    129 			return "È stato creato il robottino " + newName;
    130 		}
    131 		else if (comando.equalsIgnoreCase("deleterobot")) {
    132 			if (pdrA.size()>1) {
    133 				System.out.println ("Quale robottino vuoi eliminare?");
    134 				System.out.println ("");
    135 				for (int i = 0; i<this.pdrA.size(); i++) {
    136 					System.out.println (i + ". " + this.nomeRobot.elementAt(i));
    137 				}
    138 				System.out.println ("");
    139 				System.out.println("Scegliere il robottino da eliminare digitando il numero corrispondente e premendo INVIO");
    140 				System.out.println("Digitare un qualunque altro numero e premere INVIO per annullare");
    141 				int num = sc2.nextInt();
    142 				if (num<this.pdrA.size()) {
    143 					this.pdrA.removeElementAt(num);
    144 					this.nomeRobot.removeElementAt(num);
    145 					return "È stato eliminato il robottino numero " + num;
    146 				}
    147 				else {
    148 					return "Operazione annullata";
    149 				}
    150 			}
    151 			else {
    152 				return "Hai solo un robottino, non puoi eliminarlo!";
    153 			}
    154 		}
    155 		else if (comando.equalsIgnoreCase("changerobot")) {
    156 			if (pdrA.size()>1) {
    157 				System.out.println ("A quale robottino vuoi dare i comandi?");
    158 				System.out.println ("");
    159 				for (int i = 0; i<this.pdrA.size(); i++) {
    160 					System.out.println (i + ". " + this.nomeRobot.elementAt(i));
    161 				}
    162 				System.out.println ("");
    163 				System.out.println ("Digita il numero corrispondente alla tua scelta e premi INVIO");
    164 				this.robotIndex = sc2.nextInt();
    165 				if (this.robotIndex<this.pdrA.size())
    166 					return "È stato selezionato il robottino numero " + this.robotIndex + ": " + 
    167 														this.nomeRobot.elementAt(this.robotIndex);
    168 				else
    169 					return "Numero non valido";
    170 			}
    171 			else {
    172 				return "Hai solo un robottino, non puoi cambiarlo con un altro!";
    173 			}
    174 		}
    175 		else if (comando.equalsIgnoreCase("robotlist")) {
    176 			for (int i = 0; i<this.pdrA.size(); i++) {
    177 				System.out.println (i + ". " + this.nomeRobot.elementAt(i));
    178 			}
    179 			return "";
    180 		}
    181 		else if (comando.equalsIgnoreCase("l")) {
    182 			System.out.println ("Legenda comandi");
    183 			System.out.println ("");
    184 			System.out.println ("Comandi relativi agli arti");
    185 			System.out.println ("");
    186 			System.out.println ("LeftArmMove: cambia la posizione corrente del braccio sinistro del robot");
    187 			System.out.println ("RightArmMove: cambia la posizione corrente del braccio destro del robot");
    188 			System.out.println ("LeftLegMove: cambia la posizione corrente della gamba sinistra del robot");
    189 			System.out.println ("RightLegMove: cambia la posizione corrente della gamba destra del robot");
    190 			System.out.println ("LeftArmOn: se il braccio sinistro non è alzato, lo alza, altrimenti la posizione resta invariata");
    191 			System.out.println ("RightArmOn: se il braccio destro non è alzato, lo alza, altrimenti la posizione resta invariata");
    192 			System.out.println ("LeftLegOn: se la gamba sinistra non è alzata, la alza, altrimenti la posizione resta invariata");
    193 			System.out.println ("RightLegOn: se la gamba destra non è alzata, la alza, altrimenti la posizione resta invariata");
    194 			System.out.println ("LeftArmOff: se il braccio sinistro non è abbassato, lo abbassa, altrimenti la posizione resta invariata");
    195 			System.out.println ("RightArmOff: se il braccio destro non è abbassato, lo abbassa, altrimenti la posizione resta invariata");
    196 			System.out.println ("LeftLegOff: se la gamba sinistra non è abbassata, la abbassa, altrimenti la posizione resta invariata");
    197 			System.out.println ("RightLegOff: se la gamba destra non è abbassata, la abbassa, altrimenti la posizione resta invariata");
    198 			System.out.println ("");
    199 			System.out.println ("Altri comandi:");
    200 			System.out.println ("");
    201 			System.out.println ("NewRobot: aggiunge un nuovo robot");
    202 			System.out.println ("ChangeRobot: cambia il robot attuale");
    203 			System.out.println ("RobotList: visualizza la lista dei robot");
    204 			System.out.println ("Rename: rinomina il robottino");
    205 			System.out.println ("DeleteRobot: rimuovi un robottino");
    206 			System.out.println ("");
    207 			System.out.println ("Comandi a sorpresa:");
    208 			System.out.println ("");
    209 			System.out.println ("Exploud");
    210 			System.out.println ("Bier");
    211 			System.out.println ("Porky");
    212 			System.out.println ("xxx");
    213 			System.out.println ("dance");
    214 			System.out.println ("");
    215 			System.out.println ("Exit: esci dal programma");
    216 			return "";
    217 			
    218 		}
    219 		else if (comando.equalsIgnoreCase("exit"))
    220 			return "";
    221 		else
    222 			System.out.println ("Comando non riconosciuto - digitare l per una legenda dei comandi disponibili");
    223 			System.out.println ("");
    224 		for (int i = 0, j = 0; i < ((Vector)pdrA.elementAt(this.robotIndex)).size(); i++) {
    225 			if (((PartiDelRobot)((Vector)pdrA.elementAt(this.robotIndex)).elementAt(i)).statoParte) {
    226 				contatore += 1;
    227 				stat[j++] = ((PartiDelRobot)((Vector)pdrA.elementAt(this.robotIndex)).elementAt(i)).stringaParte;
    228 			}
    229 		}
    230 		switch (contatore) { 
    231 			case 0:
    232 				Return = "Comunque il robottino " + nomeRobot.elementAt(this.robotIndex) + "non sta facendo niente";
    233 				break;
    234 			case 1:
    235 				Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + ".";
    236 				break;
    237 			case 2:
    238 				Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + " e " + stat[1] + ".";
    239 				break;	
    240 			case 3: 
    241 				Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + ", " + stat[1] + " e " + stat[2] + ".";
    242 				break;
    243 			case 4: 
    244 				Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + ", " + stat[1] + ", " + stat[2] + " e " + stat[3] + ".";
    245 				break;
    246 		}
    247 		return Return;
    248 	}
    249 }
    250 
    251 
    252 
    253 
    254 
    255 
    256 
    257 
    258