import java.util.Scanner; class Robottino extends PartiDelRobot { public static void main(String argv[]) { Robottino robot = new Robottino(); PartiDelRobot pdr[] = { new PartiDelRobot (false, "il braccio sinistro alzato"), new PartiDelRobot (false, "il braccio destro alzato"), new PartiDelRobot (false, "la gamba sinistra alzata"), new PartiDelRobot (false, "la gamba destra alzata") }; Scanner sc = new Scanner(System.in); String comando; String nomeRobot[] = { "" }; 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("Il programma non fa distinzioni tra lettere" ); System.out.println("maiuscole o minuscole." ); System.out.println("" ); System.out.println("Digita un comando e premi invio" ); System.out.println("l = legenda comandi" ); do { comando = sc.nextLine(); System.out.println ("Siamo spiacenti, ma per motivi tecnici non sono in grado di visualizzare l'immagine del robot."); System.out.println (robot.Azioni(comando, nomeRobot, pdr)); } while ( !(comando.equalsIgnoreCase("exit")) ); } String Azioni(String comando, String nomeRobot[], PartiDelRobot pdr[]) { Scanner sc2 = new Scanner(System.in); int contatore = 0; String stat[] = {"", "", "", ""}; String Return = "Errore - si consiglia di picchiare il programmatore"; if (comando.equalsIgnoreCase("leftarmmove")) pdr[0].statoParte = !pdr[0].statoParte; else if (comando.equalsIgnoreCase("rightarmmove")) pdr[1].statoParte = !pdr[1].statoParte; else if (comando.equalsIgnoreCase("leftlegmove")) pdr[2].statoParte = !pdr[2].statoParte; else if (comando.equalsIgnoreCase("rightlegmove")) pdr[3].statoParte = !pdr[3].statoParte; else if (comando.equalsIgnoreCase("leftarmon")) pdr[0].statoParte = true; else if (comando.equalsIgnoreCase("rightarmon")) pdr[1].statoParte = true; else if (comando.equalsIgnoreCase("leftlegon")) pdr[2].statoParte = true; else if (comando.equalsIgnoreCase("rightlegon")) pdr[3].statoParte = true; else if (comando.equalsIgnoreCase("leftarmoff")) pdr[0].statoParte = false; else if (comando.equalsIgnoreCase("rightarmoff")) pdr[1].statoParte = false; else if (comando.equalsIgnoreCase("leftlegoff")) pdr[2].statoParte = false; else if (comando.equalsIgnoreCase("rightlegoff")) pdr[3].statoParte = false; else if (comando.equalsIgnoreCase("exploud")) { System.out.println ("Che atroce! Hai fatto esplodere il robottino " + nomeRobot[0] + "! Aspetta che te ne faccio un altro"); System.out.println ("..."); for (int i = 0; i < pdr.length; i++) { pdr[i].statoParte = false; } nomeRobot[0] = ""; return "Fatto, puoi continuare a giocare"; } else if (comando.equalsIgnoreCase("bier")) { System.out.println ("Il robottino " + nomeRobot[0] + "sta trangugiando una birra..."); System.out.println ("Buurrrrrrrrp!"); return "La birra analcolica fa schifo!"; } else if (comando.equalsIgnoreCase("rename")) { System.out.println ("Con questo comando quoi cambiare il nome del robottino " + nomeRobot[0]); System.out.println ("Digita il nuovo nome e premi invio per coninuare"); nomeRobot[0] = sc2.nextLine(); if (!(nomeRobot[0].equalsIgnoreCase(""))) nomeRobot[0] += " "; return "Ora il robottino si chiama " + nomeRobot[0]; } else if (comando.equalsIgnoreCase("porky")) { System.out.println ("Porky è un grande"); System.out.println ("Per maggiori informazioni visita il sito"); return "http://kakati.forumfree.net/"; } else if (comando.equalsIgnoreCase("xxx")) { System.out.println ("Il robottino " + nomeRobot[0] + "ha incontrato una bella robottina..."); return "*Censura*"; } else if (comando.equalsIgnoreCase("l")) { System.out.println ("Legenda comandi"); System.out.println (""); System.out.println ("LeftArmMove: cambia la posizione corrente del braccio sinistro del robot"); System.out.println ("RightArmMove: cambia la posizione corrente del braccio destro del robot"); System.out.println ("LeftLegMove: cambia la posizione corrente della gamba sinistra del robot"); System.out.println ("RightLegMove: cambia la posizione corrente della gamba destra del robot"); System.out.println ("LeftArmOn: se il braccio sinistro non è alzato, lo alza, altrimenti la posizione resta invariata"); System.out.println ("RightArmOn: se il braccio destro non è alzato, lo alza, altrimenti la posizione resta invariata"); System.out.println ("LeftLegOn: se la gamba sinistra non è alzata, la alza, altrimenti la posizione resta invariata"); System.out.println ("RightLegOn: se la gamba destra non è alzata, la alza, altrimenti la posizione resta invariata"); System.out.println ("LeftArmOff: se il braccio sinistro non è abbassato, lo abbassa, altrimenti la posizione resta invariata"); System.out.println ("RightArmOff: se il braccio destro non è abbassato, lo abbassa, altrimenti la posizione resta invariata"); System.out.println ("LeftLegOff: se la gamba sinistra non è abbassata, la abbassa, altrimenti la posizione resta invariata"); System.out.println ("RightLegOff: se la gamba destra non è abbassata, la abbassa, altrimenti la posizione resta invariata"); System.out.println ("Exit: esci dal programma"); System.out.println (""); System.out.println ("Comandi a sorpresa:"); System.out.println (""); System.out.println ("Exploud"); System.out.println ("Bier"); System.out.println ("Rename"); System.out.println ("Porky"); System.out.println ("xxx"); return ""; } else System.out.println ("Comando non riconosciuto - digitare l per una legenda dei comandi disponibili"); for (int i = 0, j = 0; i < pdr.length; i++) { if (pdr[i].statoParte) { contatore += 1; stat[j++] = pdr[i].stringaParte; } } switch (contatore) { case 0: Return = "Comunque il robottino " + nomeRobot[0] + "non sta facendo niente"; break; case 1: Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + "."; break; case 2: Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + " e " + stat[1] + "."; break; case 3: Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + ", " + stat[1] + " e " + stat[2] + "."; break; case 4: Return = "Immagini che il robottino " + nomeRobot[0] + "abbia " + stat[0] + ", " + stat[1] + ", " + stat[2] + " e " + stat[3] + "."; break; } return Return; } }