Robottino.java (7595B)
1 import java.util.Scanner; 2 class Robottino extends PartiDelRobot { 3 public static void main(String argv[]) { 4 Robottino robot = new Robottino(); 5 PartiDelRobot pdr[] = { new PartiDelRobot (false, "il braccio sinistro alzato"), 6 new PartiDelRobot (false, "il braccio destro alzato"), 7 new PartiDelRobot (false, "la gamba sinistra alzata"), 8 new PartiDelRobot (false, "la gamba destra alzata") }; 9 Scanner sc = new Scanner(System.in); 10 String comando; 11 String nomeRobot[] = { "" }; 12 System.out.println("**********************************************"); 13 System.out.println("**********************************************"); 14 System.out.println("*************Programma interattivo************"); 15 System.out.println("**********************************************"); 16 System.out.println("***Software realizzato da Sebastiano Tronto***"); 17 System.out.println("**********************************************"); 18 System.out.println("**********************************************"); 19 System.out.println("Questo programma simula un robot al quale ven-"); 20 System.out.println("gono assegnati ordini tramite comandi, simil-" ); 21 System.out.println("mente a quanto bisognava fare con i computer " ); 22 System.out.println("alcuni anni fa." ); 23 System.out.println("Dato che all'epoca i comandi che dovevano es-" ); 24 System.out.println("sere dati erano (e sono tutt'ora) in similin-" ); 25 System.out.println("glese, ho cercato di mantenerli tali." ); 26 System.out.println("Il programma non fa distinzioni tra lettere" ); 27 System.out.println("maiuscole o minuscole." ); 28 System.out.println("" ); 29 System.out.println("Digita un comando e premi invio" ); 30 System.out.println("l = legenda comandi" ); 31 do { 32 comando = sc.nextLine(); 33 System.out.println ("Siamo spiacenti, ma per motivi tecnici non sono in grado di visualizzare l'immagine del robot."); 34 System.out.println (robot.Azioni(comando, nomeRobot, pdr)); 35 } while ( !(comando.equalsIgnoreCase("exit")) ); 36 } 37 String Azioni(String comando, String nomeRobot[], PartiDelRobot pdr[]) { 38 Scanner sc2 = new Scanner(System.in); 39 int contatore = 0; 40 String stat[] = {"", "", "", ""}; 41 String Return = "Errore - si consiglia di picchiare il programmatore"; 42 if (comando.equalsIgnoreCase("leftarmmove")) 43 pdr[0].statoParte = !pdr[0].statoParte; 44 else if (comando.equalsIgnoreCase("rightarmmove")) 45 pdr[1].statoParte = !pdr[1].statoParte; 46 else if (comando.equalsIgnoreCase("leftlegmove")) 47 pdr[2].statoParte = !pdr[2].statoParte; 48 else if (comando.equalsIgnoreCase("rightlegmove")) 49 pdr[3].statoParte = !pdr[3].statoParte; 50 else if (comando.equalsIgnoreCase("leftarmon")) 51 pdr[0].statoParte = true; 52 else if (comando.equalsIgnoreCase("rightarmon")) 53 pdr[1].statoParte = true; 54 else if (comando.equalsIgnoreCase("leftlegon")) 55 pdr[2].statoParte = true; 56 else if (comando.equalsIgnoreCase("rightlegon")) 57 pdr[3].statoParte = true; 58 else if (comando.equalsIgnoreCase("leftarmoff")) 59 pdr[0].statoParte = false; 60 else if (comando.equalsIgnoreCase("rightarmoff")) 61 pdr[1].statoParte = false; 62 else if (comando.equalsIgnoreCase("leftlegoff")) 63 pdr[2].statoParte = false; 64 else if (comando.equalsIgnoreCase("rightlegoff")) 65 pdr[3].statoParte = false; 66 else if (comando.equalsIgnoreCase("exploud")) { 67 System.out.println ("Che atroce! Hai fatto esplodere il robottino " + nomeRobot[0] + "! Aspetta che te ne faccio un altro"); 68 System.out.println ("..."); 69 for (int i = 0; i < pdr.length; i++) { 70 pdr[i].statoParte = false; 71 } 72 nomeRobot[0] = ""; 73 return "Fatto, puoi continuare a giocare"; 74 } 75 else if (comando.equalsIgnoreCase("bier")) { 76 System.out.println ("Il robottino " + nomeRobot[0] + "sta trangugiando una birra..."); 77 System.out.println ("Buurrrrrrrrp!"); 78 return "La birra analcolica fa schifo!"; 79 } 80 else if (comando.equalsIgnoreCase("rename")) { 81 System.out.println ("Con questo comando quoi cambiare il nome del robottino " + nomeRobot[0]); 82 System.out.println ("Digita il nuovo nome e premi invio per coninuare"); 83 nomeRobot[0] = sc2.nextLine(); 84 if (!(nomeRobot[0].equalsIgnoreCase(""))) 85 nomeRobot[0] += " "; 86 return "Ora il robottino si chiama " + nomeRobot[0]; 87 } 88 else if (comando.equalsIgnoreCase("porky")) { 89 System.out.println ("Porky è un grande"); 90 System.out.println ("Per maggiori informazioni visita il sito"); 91 return "http://kakati.forumfree.net/"; 92 } 93 else if (comando.equalsIgnoreCase("xxx")) { 94 System.out.println ("Il robottino " + nomeRobot[0] + "ha incontrato una bella robottina..."); 95 return "*Censura*"; 96 } 97 else if (comando.equalsIgnoreCase("l")) { 98 System.out.println ("Legenda comandi"); 99 System.out.println (""); 100 System.out.println ("LeftArmMove: cambia la posizione corrente del braccio sinistro del robot"); 101 System.out.println ("RightArmMove: cambia la posizione corrente del braccio destro del robot"); 102 System.out.println ("LeftLegMove: cambia la posizione corrente della gamba sinistra del robot"); 103 System.out.println ("RightLegMove: cambia la posizione corrente della gamba destra del robot"); 104 System.out.println ("LeftArmOn: se il braccio sinistro non è alzato, lo alza, altrimenti la posizione resta invariata"); 105 System.out.println ("RightArmOn: se il braccio destro non è alzato, lo alza, altrimenti la posizione resta invariata"); 106 System.out.println ("LeftLegOn: se la gamba sinistra non è alzata, la alza, altrimenti la posizione resta invariata"); 107 System.out.println ("RightLegOn: se la gamba destra non è alzata, la alza, altrimenti la posizione resta invariata"); 108 System.out.println ("LeftArmOff: se il braccio sinistro non è abbassato, lo abbassa, altrimenti la posizione resta invariata"); 109 System.out.println ("RightArmOff: se il braccio destro non è abbassato, lo abbassa, altrimenti la posizione resta invariata"); 110 System.out.println ("LeftLegOff: se la gamba sinistra non è abbassata, la abbassa, altrimenti la posizione resta invariata"); 111 System.out.println ("RightLegOff: se la gamba destra non è abbassata, la abbassa, altrimenti la posizione resta invariata"); 112 System.out.println ("Exit: esci dal programma"); 113 System.out.println (""); 114 System.out.println ("Comandi a sorpresa:"); 115 System.out.println (""); 116 System.out.println ("Exploud"); 117 System.out.println ("Bier"); 118 System.out.println ("Rename"); 119 System.out.println ("Porky"); 120 System.out.println ("xxx"); 121 return ""; 122 123 } 124 else 125 System.out.println ("Comando non riconosciuto - digitare l per una legenda dei comandi disponibili"); 126 for (int i = 0, j = 0; i < pdr.length; i++) { 127 if (pdr[i].statoParte) { 128 contatore += 1; 129 stat[j++] = pdr[i].stringaParte; 130 } 131 } 132 switch (contatore) { 133 case 0: 134 Return = "Comunque il robottino " + nomeRobot[0] + "non sta facendo niente"; 135 break; 136 case 1: 137 Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + "."; 138 break; 139 case 2: 140 Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + " e " + stat[1] + "."; 141 break; 142 case 3: 143 Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + ", " + stat[1] + " e " + stat[2] + "."; 144 break; 145 case 4: 146 Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + ", " + stat[1] + ", " + stat[2] + " e " + stat[3] + "."; 147 break; 148 } 149 return Return; 150 } 151 } 152 153 154 155 156 157 158 159 160