Ciao devo realizzare una classe robot le cui istanze siano robot caratterizzati dall'essere accesi o spenti, da una coppia di interi che specifica le coordinate della loro posizione sul piano cartesiano e da un char che indica la direzione di marcia (N, E, S, W).
La mia implementazione è:
codice:
class Robot{
int x;
int y;
String punto;
boolean acsp;
//punti east,west,south
String punti[]={"E","W","S"};
Robot(int x,int y){
this.x=x;
this.y=y;
acsp=true;
punto="N";
}
Robot(){
this(0,0);
}
public boolean accendi(){
return acsp=true;
}
public boolean spegni(){
return acsp=false;
}
public void avanti(int coordinata1){
if(accendi()){
y=coordinata1;
}
}
/**aDestra
fa ruotare eventualmente il robot di 90 gradi in senso orario,
modificando la direzione di marcia*/
public String aDestra(){
int count=0;
if(acsp){
punto=punti[count];
count++;
}
return punto;
}
public String toString(){
String s=" ";
if(acsp){
s+="robot acceso in ("+x +","+y+")"+aDestra();
}else
s+="il robor è spento";
return s;
}
}
Il mio problema è nel metodo avanti(int coordinata1) il testo mi mostra un esempio in cui ogni volta che l'utente inserisce una coordinata prima si modifica la x e poi la y.es:
On --> robot acceso in (0,0) verso N
A 10 --> robot acceso in (0,10) verso N
D --> robot acceso in (0,10) verso E
A 5 --> robot acceso in (5,10) verso E
Come faccio a dire al mio programma di modicare prima una coordinata e poi l'altra?
Secondo voi per implementare il metodo aDestra() e quindi per far ruotare il robot(cioè cambiare da E,ad S),ogni volta che l'utente insersce D,dovrei usare un metodo ricorsivo,oppure uso un controllo da main?