diff options
| author | Sebastiano Tronto <sebastiano@tronto.net> | 2026-03-26 19:27:18 +0100 |
|---|---|---|
| committer | Sebastiano Tronto <sebastiano@tronto.net> | 2026-03-26 19:27:18 +0100 |
| commit | 7167b4341ef290d56fb96e2af10883a4b925d83b (patch) | |
| tree | 1eb1b9e5ab82ddd89540e68d6b22ae69514575c6 /robottino/all_versions/v2.2/src/RobottinoAzioni | |
| download | ancient-projects-master.tar.gz ancient-projects-master.zip | |
Diffstat (limited to 'robottino/all_versions/v2.2/src/RobottinoAzioni')
| -rwxr-xr-x | robottino/all_versions/v2.2/src/RobottinoAzioni/RobottinoAzioni.java | 369 |
1 files changed, 369 insertions, 0 deletions
diff --git a/robottino/all_versions/v2.2/src/RobottinoAzioni/RobottinoAzioni.java b/robottino/all_versions/v2.2/src/RobottinoAzioni/RobottinoAzioni.java new file mode 100755 index 0000000..96ad922 --- /dev/null +++ b/robottino/all_versions/v2.2/src/RobottinoAzioni/RobottinoAzioni.java | |||
| @@ -0,0 +1,369 @@ | |||
| 1 | // Dichiaro che questa classa farà parte del package RobottinoAzioni, che verrà poi importato dalle classi Robottino e Grafica. | ||
| 2 | package RobottinoAzioni; | ||
| 3 | |||
| 4 | // Anche qui impoerto i package necessari. | ||
| 5 | import java.util.Scanner; | ||
| 6 | import java.util.Vector; | ||
| 7 | import RobottinoUtils.*; | ||
| 8 | |||
| 9 | public class RobottinoAzioni { | ||
| 10 | |||
| 11 | // Creo gli oggetti statici che riempiranno il vettore pdrA: | ||
| 12 | // pdrA è un vettore multidimensionale che a sua volta contiene vettori | ||
| 13 | // (il primo si chiama pdrB, i successivi non avranno nome) che coontengono | ||
| 14 | // 4 istanze di PartiDelRobot, cioè i 4 arti del robot. | ||
| 15 | // Poi creo un vettore che conterrà i nomi dei robot. | ||
| 16 | // Creo il vettore principale... | ||
| 17 | public static Vector pdrA = new Vector(1); | ||
| 18 | |||
| 19 | // ...e il "sottovettore" come istanze della classe Vector | ||
| 20 | public static Vector pdrB = new Vector(4); | ||
| 21 | |||
| 22 | // Creo le quattro istanze di PartidelRobot utilizzando l'apposito costruttore | ||
| 23 | // passo a tutte una stringa e un valore boleano che determina lo stato | ||
| 24 | // (alzato/a se true, abbassato/a se false). | ||
| 25 | public static PartiDelRobot leftArm = new PartiDelRobot(false, "il braccio sinistro alzato"); | ||
| 26 | public static PartiDelRobot rightArm = new PartiDelRobot(false, "il braccio destro alzato"); | ||
| 27 | public static PartiDelRobot leftLeg = new PartiDelRobot(false, "la gamba sinistra alzata"); | ||
| 28 | public static PartiDelRobot rightLeg = new PartiDelRobot(false, "la gamba destra alzata"); | ||
| 29 | |||
| 30 | // Il vettore nomeRobot per i nomi | ||
| 31 | // il vettore può contenere stringhe, poichè non sono tipi primitivi ma oggetti della classe String | ||
| 32 | public static Vector nomeRobot = new Vector(1); | ||
| 33 | |||
| 34 | // La variabile robotIndex serve a tenere in memoria su quale robot si sta operando: | ||
| 35 | // in seguito verrà usata quando l'utente deciderà di creare più di un robot | ||
| 36 | // e poi di dare comandi a uno o all'altro/i. | ||
| 37 | int robotIndex = 0; | ||
| 38 | |||
| 39 | // Dichiarazione del metodo Azioni. | ||
| 40 | public String Azioni(String comando, Vector nomeRobot, Vector pdrA) { | ||
| 41 | |||
| 42 | // Crea un'istanza della classe Scanner per | ||
| 43 | // ricevere gli input nel caso in cui debba essere dato il nome | ||
| 44 | // al robottino o scelto un robottino da una lista. | ||
| 45 | Scanner sc2 = new Scanner(System.in); | ||
| 46 | |||
| 47 | // La variabile contatore memorizza il numero di variabili "PartiDelRobot.statoParte" | ||
| 48 | // che hanno valore true, ossia il numero di arti alzati di un robottino | ||
| 49 | // in modo da poter scegliere la frase giusta da dare come output | ||
| 50 | // al posto dell'immagine del robottino con tali arti alzati. | ||
| 51 | int contatore = 0; | ||
| 52 | |||
| 53 | // Questo array ha il compito di memorizzare le stringhe corrispondenti agli alzati | ||
| 54 | // per motivi simili a quelli della variabile "contatore". | ||
| 55 | String stat[] = {"", "", "", ""}; | ||
| 56 | |||
| 57 | // La stringa Return verrà successivamente modificata e restituita in alcuni casi. | ||
| 58 | String Return = "Errore - si consiglia di picchiare il programmatore"; | ||
| 59 | |||
| 60 | // Per far si che il programma non distingua tra lettere maiuscole o minuscole per quanto riguardo gli input | ||
| 61 | // è stato usato il metodo "equalsIgnoreCase" della classe String. | ||
| 62 | // I quattro casi successivi cambiano il valore della varibalie "statoParte" relativa all'arto | ||
| 63 | // Che deve mouversi (quindi cambiare la sua posizione). | ||
| 64 | if (comando.equalsIgnoreCase("leftarmmove")) | ||
| 65 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte = | ||
| 66 | !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte; | ||
| 67 | |||
| 68 | else if (comando.equalsIgnoreCase("rightarmmove")) | ||
| 69 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte = | ||
| 70 | !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte; | ||
| 71 | |||
| 72 | else if (comando.equalsIgnoreCase("leftlegmove")) | ||
| 73 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte = | ||
| 74 | !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte; | ||
| 75 | |||
| 76 | else if (comando.equalsIgnoreCase("rightlegmove")) | ||
| 77 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte = | ||
| 78 | !((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte; | ||
| 79 | |||
| 80 | // I casi successivi modificano il valore della varibile analogamente ai 4 precedenti. | ||
| 81 | else if (comando.equalsIgnoreCase("leftarmon")) | ||
| 82 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte = true; | ||
| 83 | |||
| 84 | else if (comando.equalsIgnoreCase("rightarmon")) | ||
| 85 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte = true; | ||
| 86 | |||
| 87 | else if (comando.equalsIgnoreCase("leftlegon")) | ||
| 88 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte = true; | ||
| 89 | |||
| 90 | else if (comando.equalsIgnoreCase("rightlegon")) | ||
| 91 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte = true; | ||
| 92 | |||
| 93 | else if (comando.equalsIgnoreCase("leftarmoff")) | ||
| 94 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(0)).statoParte = false; | ||
| 95 | |||
| 96 | else if (comando.equalsIgnoreCase("rightarmoff")) | ||
| 97 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(1)).statoParte = false; | ||
| 98 | |||
| 99 | else if (comando.equalsIgnoreCase("leftlegoff")) | ||
| 100 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(2)).statoParte = false; | ||
| 101 | |||
| 102 | else if (comando.equalsIgnoreCase("rightlegoff")) | ||
| 103 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(3)).statoParte = false; | ||
| 104 | |||
| 105 | // Il caso successi si verica quando il comando è "exploud". | ||
| 106 | else if (comando.equalsIgnoreCase("exploud")) { | ||
| 107 | |||
| 108 | // Scrive sullo schermo la seguente frase, che comprende il nome del robottino che non è ancora stato fatto eliminare | ||
| 109 | System.out.println | ||
| 110 | ("Che atroce! Hai fatto esplodere il robottino " + nomeRobot.elementAt(this.robotIndex) + "! Aspetta che te ne faccio un altro"); | ||
| 111 | System.out.println ("..."); | ||
| 112 | |||
| 113 | // Con un ciclo for rendo false tutte le variabili "statoParte" per far sì che il robottino sia come nuovo. | ||
| 114 | for (int i = 0; i < 4; i++) { | ||
| 115 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(i)).statoParte = false; | ||
| 116 | } | ||
| 117 | |||
| 118 | // E azzero anche il nome del robot | ||
| 119 | this.nomeRobot.setElementAt("", this.robotIndex); | ||
| 120 | |||
| 121 | return "Fatto, puoi continuare a giocare"; | ||
| 122 | } | ||
| 123 | |||
| 124 | // Caso per il comando "bier". | ||
| 125 | // La reazione a questo comando è un semplice output quasi totalmente scorrelato al robottino | ||
| 126 | // se non per il fatto che appare il nome del robottino attuale. | ||
| 127 | else if (comando.equalsIgnoreCase("bier")) { | ||
| 128 | System.out.println ("Il robottino " + nomeRobot.elementAt(this.robotIndex) + "sta trangugiando una birra..."); | ||
| 129 | System.out.println ("Buurrrrrrrrp!"); | ||
| 130 | return "La birra analcolica fa schifo!"; | ||
| 131 | } | ||
| 132 | |||
| 133 | // Per il comando "rename", rinomina. | ||
| 134 | else if (comando.equalsIgnoreCase("rename")) { | ||
| 135 | |||
| 136 | System.out.println ("Con questo comando quoi cambiare il nome del robottino " + nomeRobot.elementAt(this.robotIndex)); | ||
| 137 | System.out.println ("Digita il nuovo nome e premi INVIO per coninuare"); | ||
| 138 | |||
| 139 | // Cambia il nome del robottino attuale con quello dell'input. | ||
| 140 | this.nomeRobot.setElementAt(sc2.nextLine(), this.robotIndex); | ||
| 141 | |||
| 142 | // Se il nome non è vuoto, aggiunge un carattere di spazio per migliorare la visualizzazione nelle frasi di output. | ||
| 143 | if (!(((String)nomeRobot.elementAt(this.robotIndex)).equalsIgnoreCase(""))) | ||
| 144 | this.nomeRobot.setElementAt(this.nomeRobot.elementAt(this.robotIndex) + " ", this.robotIndex); | ||
| 145 | |||
| 146 | // Semplice output con il nuovo nome. | ||
| 147 | return "Ora il robottino si chiama " + nomeRobot.elementAt(this.robotIndex); | ||
| 148 | } | ||
| 149 | |||
| 150 | // Per il comando "porky". | ||
| 151 | // Ancora meno che per "bier". | ||
| 152 | else if (comando.equalsIgnoreCase("porky")) { | ||
| 153 | System.out.println ("Porky è un grande"); | ||
| 154 | System.out.println ("Per maggiori informazioni visita il sito"); | ||
| 155 | return "http://kakati.forumfree.net/"; | ||
| 156 | } | ||
| 157 | |||
| 158 | // Il comando "xxx" ha funzioni analoghe a bier. | ||
| 159 | else if (comando.equalsIgnoreCase("xxx")) { | ||
| 160 | System.out.println ("Il robottino " + nomeRobot.elementAt(this.robotIndex) + "ha incontrato una bella robottina..."); | ||
| 161 | return "*Censura*"; | ||
| 162 | } | ||
| 163 | |||
| 164 | // "dance" setta tutte le variabili "statoParte" a false... | ||
| 165 | else if (comando.equalsIgnoreCase("dance")) { | ||
| 166 | |||
| 167 | System.out.println ("Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + " stia ballando..."); | ||
| 168 | System.out.println ("Il robottino ha smesso di ballare"); | ||
| 169 | |||
| 170 | //...con questo ciclo for | ||
| 171 | for (int i = 0; i < 4; i++) { | ||
| 172 | ((PartiDelRobot)((Vector)this.pdrA.elementAt(this.robotIndex)).elementAt(i)).statoParte = false; | ||
| 173 | } | ||
| 174 | |||
| 175 | return "Il robottino " + nomeRobot.elementAt(this.robotIndex) + "si è fermato ed è tornato nella posizione originale"; | ||
| 176 | |||
| 177 | // Per il comando "newrobot", che crea un nuovo robottino. | ||
| 178 | } | ||
| 179 | else if (comando.equalsIgnoreCase("newrobot")) { | ||
| 180 | |||
| 181 | // Aggiunge un elemento a "pdrA" con il metodo "addElement", della classe Vector. | ||
| 182 | // È stata necessaria la dicitura this. per modificare realmente il vettore. | ||
| 183 | // Se non lo avessi fatto non sarebbe successo, in quanto i metodi operano | ||
| 184 | // su i valori e non sulle variabili/oggetti. | ||
| 185 | this.pdrA.addElement(pdrB); | ||
| 186 | |||
| 187 | // Aggiungo le 4 parti del robot. | ||
| 188 | // Forse avete già notato (ma quì sono più evidenti) alcuni cast che ho fatto: | ||
| 189 | // sono per far si che il compilatore capisca che il metodo viene invocato da un oggetto | ||
| 190 | // della classe vector, che senza cast considererebbe della classe Object. | ||
| 191 | ((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (leftArm); | ||
| 192 | ((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (rightArm); | ||
| 193 | ((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (leftLeg); | ||
| 194 | ((Vector)(this.pdrA.elementAt(pdrA.size()-1))).addElement (rightLeg); | ||
| 195 | |||
| 196 | // Semplice output con richiesta di nome per il nuovo robottino. | ||
| 197 | System.out.println ("È stato creato un nuovo robot. Vuoi dare un nome al nuovo robot?"); | ||
| 198 | System.out.println ("Inserisci il nuovo nome e premi INVIO oppure lascia vuoto e premi INVIO"); | ||
| 199 | |||
| 200 | String newName = sc2.nextLine(); | ||
| 201 | |||
| 202 | if (!(((String)nomeRobot.elementAt(this.robotIndex)).equalsIgnoreCase(""))) | ||
| 203 | this.nomeRobot.setElementAt(this.nomeRobot.elementAt(this.robotIndex) + " ", this.robotIndex); | ||
| 204 | |||
| 205 | this.nomeRobot.addElement(newName); | ||
| 206 | |||
| 207 | return "È stato creato il robottino " + newName; | ||
| 208 | } | ||
| 209 | |||
| 210 | // Il comando "deleterobot", per eliminare un robot. | ||
| 211 | else if (comando.equalsIgnoreCase("deleterobot")) { | ||
| 212 | |||
| 213 | // Se c'è più di un robot esegue l'eliminazione. | ||
| 214 | if (pdrA.size()>1) { | ||
| 215 | System.out.println ("Quale robottino vuoi eliminare?"); | ||
| 216 | System.out.println (""); | ||
| 217 | |||
| 218 | // Con un ciclo for scrive i nomi di tutti i robot preceduti da un numero in sequenza. | ||
| 219 | // Il numero è il corrispondente del loro indice di vettore. | ||
| 220 | for (int i = 0; i<this.pdrA.size(); i++) { | ||
| 221 | System.out.println (i + ". " + this.nomeRobot.elementAt(i)); | ||
| 222 | } | ||
| 223 | |||
| 224 | // Dà le istruzioni all'utente affinché capisca come eliminare un robot. | ||
| 225 | System.out.println (""); | ||
| 226 | System.out.println("Scegliere il robottino da eliminare digitando il numero corrispondente e premendo INVIO"); | ||
| 227 | System.out.println("Digitare un qualunque altro numero e premere INVIO per annullare"); | ||
| 228 | |||
| 229 | // Riceve in input il numero e ne assegna il valore alla variabile "num". | ||
| 230 | int num = sc2.nextInt(); | ||
| 231 | |||
| 232 | // Elimina gli elementi corrispondenti al robottino (nome e robot) dai | ||
| 233 | // rispettivi vettori con il metodo "removeElementAt" della classe Vector. | ||
| 234 | if (num<this.pdrA.size()) { | ||
| 235 | this.pdrA.removeElementAt(num); | ||
| 236 | this.nomeRobot.removeElementAt(num); | ||
| 237 | return "È stato eliminato il robottino numero " + num; | ||
| 238 | } | ||
| 239 | |||
| 240 | // Se il numero ricevuto in input è superiore all'indice dei robot | ||
| 241 | // non elimina alcun robot. | ||
| 242 | else return "Operazione annullata"; | ||
| 243 | } | ||
| 244 | |||
| 245 | // Se c'è solo un robot non esegue l'eliminazione. | ||
| 246 | else return "Hai solo un robottino, non puoi eliminarlo!"; | ||
| 247 | } | ||
| 248 | |||
| 249 | // Il comando "changerobot" per cambiare il robot a cui dare le istruzioni | ||
| 250 | else if (comando.equalsIgnoreCase("changerobot")) { | ||
| 251 | |||
| 252 | // L'esecuzione è simile a quella per il comando "deleterobot", con la differenza che il robot non viene eliminato | ||
| 253 | // ma viene semplicemente cambiato il valore della variabile "robotIndex". | ||
| 254 | if (pdrA.size()>1) { | ||
| 255 | System.out.println ("A quale robottino vuoi dare i comandi?"); | ||
| 256 | System.out.println (""); | ||
| 257 | for (int i = 0; i<this.pdrA.size(); i++) { | ||
| 258 | System.out.println (i + ". " + this.nomeRobot.elementAt(i)); | ||
| 259 | } | ||
| 260 | System.out.println (""); | ||
| 261 | System.out.println ("Digita il numero corrispondente alla tua scelta e premi INVIO"); | ||
| 262 | int newIndex = sc2.nextInt(); | ||
| 263 | |||
| 264 | // Prima di cambiare valore alla variabile di indice verifica che il numero sia valido. | ||
| 265 | if (newIndex<this.pdrA.size()) { | ||
| 266 | this.robotIndex = newIndex; | ||
| 267 | return "È stato selezionato il robottino numero " + this.robotIndex + ": " + this.nomeRobot.elementAt | ||
| 268 | (this.robotIndex); | ||
| 269 | } | ||
| 270 | |||
| 271 | // Se non lo è non esegue l'assegnamento. | ||
| 272 | else return "Numero non valido"; | ||
| 273 | } | ||
| 274 | else { | ||
| 275 | return "Hai solo un robottino, non puoi cambiarlo con un altro!"; | ||
| 276 | } | ||
| 277 | } | ||
| 278 | |||
| 279 | // Il comando "robotlist" visualizza una lista dei robot presenti. | ||
| 280 | else if (comando.equalsIgnoreCase("robotlist")) { | ||
| 281 | for (int i = 0; i<this.pdrA.size(); i++) { | ||
| 282 | System.out.println (i + ". " + this.nomeRobot.elementAt(i)); | ||
| 283 | } | ||
| 284 | return ""; | ||
| 285 | } | ||
| 286 | |||
| 287 | // Il comando "l", per la legenda, visualizza la lista dei comandi con relativa descrizione. | ||
| 288 | else if (comando.equalsIgnoreCase("l")) { | ||
| 289 | System.out.println ("Legenda comandi"); | ||
| 290 | System.out.println (""); | ||
| 291 | System.out.println ("Comandi relativi agli arti"); | ||
| 292 | System.out.println (""); | ||
| 293 | System.out.println ("LeftArmMove: cambia la posizione corrente del braccio sinistro del robot"); | ||
| 294 | System.out.println ("RightArmMove: cambia la posizione corrente del braccio destro del robot"); | ||
| 295 | System.out.println ("LeftLegMove: cambia la posizione corrente della gamba sinistra del robot"); | ||
| 296 | System.out.println ("RightLegMove: cambia la posizione corrente della gamba destra del robot"); | ||
| 297 | System.out.println ("LeftArmOn: se il braccio sinistro non è alzato, lo alza, altrimenti la posizione resta invariata"); | ||
| 298 | System.out.println ("RightArmOn: se il braccio destro non è alzato, lo alza, altrimenti la posizione resta invariata"); | ||
| 299 | System.out.println ("LeftLegOn: se la gamba sinistra non è alzata, la alza, altrimenti la posizione resta invariata"); | ||
| 300 | System.out.println ("RightLegOn: se la gamba destra non è alzata, la alza, altrimenti la posizione resta invariata"); | ||
| 301 | System.out.println ("LeftArmOff: se il braccio sinistro non è abbassato, lo abbassa, altrimenti la posizione resta invariata"); | ||
| 302 | System.out.println ("RightArmOff: se il braccio destro non è abbassato, lo abbassa, altrimenti la posizione resta invariata"); | ||
| 303 | System.out.println ("LeftLegOff: se la gamba sinistra non è abbassata, la abbassa, altrimenti la posizione resta invariata"); | ||
| 304 | System.out.println ("RightLegOff: se la gamba destra non è abbassata, la abbassa, altrimenti la posizione resta invariata"); | ||
| 305 | System.out.println (""); | ||
| 306 | System.out.println ("Altri comandi:"); | ||
| 307 | System.out.println (""); | ||
| 308 | System.out.println ("NewRobot: aggiunge un nuovo robot"); | ||
| 309 | System.out.println ("ChangeRobot: cambia il robot attuale"); | ||
| 310 | System.out.println ("RobotList: visualizza la lista dei robot"); | ||
| 311 | System.out.println ("Rename: rinomina il robottino"); | ||
| 312 | System.out.println (""); | ||
| 313 | System.out.println ("Comandi a sorpresa:"); | ||
| 314 | System.out.println (""); | ||
| 315 | System.out.println ("Exploud"); | ||
| 316 | System.out.println ("Bier"); | ||
| 317 | System.out.println ("Porky"); | ||
| 318 | System.out.println ("xxx"); | ||
| 319 | System.out.println ("dance"); | ||
| 320 | System.out.println (""); | ||
| 321 | System.out.println ("Exit: esci dal programma"); | ||
| 322 | |||
| 323 | return ""; | ||
| 324 | |||
| 325 | } | ||
| 326 | |||
| 327 | // Se il comando è exit, non viene eseguita nessuna operazione (tranne restituire una stringa vuota) | ||
| 328 | // Perché il ciclo do-while nel metodo main, appena verificherà la condizione che il comando è | ||
| 329 | // uguale a "exit", terminerà da solo l'esecuzione del programma. | ||
| 330 | else if (comando.equalsIgnoreCase("exit")) return ""; | ||
| 331 | |||
| 332 | // Se l'input non è tra i comandi prestabiliti, visualizza la seguente scritta sullo schermo. | ||
| 333 | else | ||
| 334 | System.out.println ("Comando non riconosciuto - digitare l per una legenda dei comandi disponibili"); | ||
| 335 | System.out.println (""); | ||
| 336 | |||
| 337 | // Quì di seguito viene chiarito l'utilizzo di "contatore" e "sta[]". | ||
| 338 | // Per ogni varibile "statoParte" che ha valore true, contatore viene incrementato | ||
| 339 | // e l'elemento successivo dell'array "stat[]" assume il valore della stringa corrispondente. | ||
| 340 | for (int i = 0, j = 0; i < 4; i++) { | ||
| 341 | if (((PartiDelRobot)((Vector)pdrA.elementAt(this.robotIndex)).elementAt(i)).statoParte) { | ||
| 342 | contatore += 1; | ||
| 343 | stat[j++] = ((PartiDelRobot)((Vector)pdrA.elementAt(this.robotIndex)).elementAt(i)).stringaParte; | ||
| 344 | } | ||
| 345 | } | ||
| 346 | |||
| 347 | // La restituzione finale delle frasi, con uno switch che a seconda del valore di contatore | ||
| 348 | // restituisce una frase o l'altra. | ||
| 349 | switch (contatore) { | ||
| 350 | case 0: | ||
| 351 | Return = "Comunque il robottino " + nomeRobot.elementAt(this.robotIndex) + "non sta facendo niente"; | ||
| 352 | break; | ||
| 353 | case 1: | ||
| 354 | Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + "."; | ||
| 355 | break; | ||
| 356 | case 2: | ||
| 357 | Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + " e " + stat[1] + "."; | ||
| 358 | break; | ||
| 359 | case 3: | ||
| 360 | Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + ", " + stat[1] + " e " + stat[2] + "."; | ||
| 361 | break; | ||
| 362 | case 4: | ||
| 363 | Return = "Immagini che il robottino " + nomeRobot.elementAt(this.robotIndex) + "abbia " + stat[0] + ", " + stat[1] + ", " + stat[2] + " e " + stat[3] + "."; | ||
| 364 | break; | ||
| 365 | } | ||
| 366 | return Return; | ||
| 367 | } | ||
| 368 | //Fine del metodo Azioni | ||
| 369 | } | ||
