fiji.robot
Class Robot

java.lang.Object
  |
  +--fiji.robot.Robot

public class Robot
extends java.lang.Object

Un Robot è un automa virtuale che si muove in un Labirinto. Il labirinto è una griglia di celle quadrate, con un unico ingresso e una unica uscita. Il robot ha la capacità di muoversi da una cella a una cella adiacente (nella direzione corrente del robot) e di cambiare direzione, girando a destra o a sinistra. Il labirinto contiene ovviamente dei muri che impediscono alcuni dei movimenti al robot: il robot non può avanzare se si trova di fronte a un muro. Il robot può essere comandato inviandogli messaggi, oppure in modo interattivo.

See Also:
Labirinto

Constructor Summary
Robot(Labirinto l)
          Crea un Robot nel Labirinto l.
Robot(Labirinto l, boolean interattivo)
          Crea un Robot nel Labirinto l, possibilmente comandabile in modo interattivo.
 
Method Summary
 void avanza()
          Fa avanzare il robot, muovendolo nella cella adiacente nella sua direzione corrente.
 boolean dentro()
          Verifica se il robot è all'interno del labirinto.
 boolean fronteAlMuro()
          Verifica se il robot, nella posizione corrente, si trova di fronte a un muro del labirinto.
 void giraDestra()
          Fa girare il robot a destra (senza avanzare).
 void giraSinistra()
          Fa girare il robot a sinistra (senza avanzare).
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Robot

public Robot(Labirinto l,
             boolean interattivo)
      throws RobotException
Crea un Robot nel Labirinto l, possibilmente comandabile in modo interattivo. Il Robot è interattivo se il secondo argomento è true.

Parameters:
l - Il Labirinto in cui deve essere creato il robot.
interattivo - Se il robot deve essere interattivo.
Throws:
RobotException - Labirinto nullo o non vuoto.

Robot

public Robot(Labirinto l)
      throws RobotException
Crea un Robot nel Labirinto l.

Parameters:
l - Il Labirinto in cui deve essere creato il robot.
Throws:
RobotException - Labirinto nullo o non vuoto.
Method Detail

giraDestra

public void giraDestra()
Fa girare il robot a destra (senza avanzare).


giraSinistra

public void giraSinistra()
Fa girare il robot a sinistra (senza avanzare).


avanza

public void avanza()
            throws RobotException
Fa avanzare il robot, muovendolo nella cella adiacente nella sua direzione corrente. Questa azione può essere effettuata solo nelle due seguenti situazioni: (i) il robot si trova nella posizione iniziale ed è nella direzione dell'ingresso del labirinto; (ii) il robot si trova all'interno del labirinto, non è di fronte a un muro, e non sta avanzando verso l'ingresso del labirinto (tentando di uscirne). Viceversa (se il robot prova a muoversi dalla posizione iniziale non verso l'interno del labirinto, o se da una posizione interna prova a muoversi verso un muro, o se prova a muoversi essendo già uscito dal labirinto) viene causato un errore.

Throws:
RobotException - Mossa non consentita.

dentro

public boolean dentro()
Verifica se il robot è all'interno del labirinto.

Returns:
L'esito della verifica.

fronteAlMuro

public boolean fronteAlMuro()
Verifica se il robot, nella posizione corrente, si trova di fronte a un muro del labirinto.

Returns:
L'esito della verifica.