#include #include "robot.h" class Griglia { public: // costruttore; la posizione �quella di inizio persorso; gli interi // rappresentano altezza e larghezza della griglia Griglia(int=10, int=10); // restituisce true sse la posizione in input e' nella griglia bool inGriglia( const Posizione& ); // rende true sse la posizione in input e' nel percorso bool inPercorso( const Posizione& ); // inserisce il robot nella posizione di inizio percorso void inserisciRobot( Robot &); // restituisce la posizione di arrivo del percorso Posizione getArrivo(); // disegna la griglia evidenziando le posizioni di inizio e di arrivo e, se // presente, il robot (mediante un carattere che n�evidenzia anche la direzione) void disegna(); private: map grid; // la griglia come funzione grid: Posizione -> Boolean ; // se p e' nella griglia, grid(p)=true quando p non �nel // percorso, grid(p)=false altrimenti int altezza, larghezza; // le dimensioni della griglia Posizione inizio, arrivo; // le posizioni di inizio ed arrivo del percorso Robot* androide; // il (puntatore al) robot void generaPercorso( const Posizione& ); // funzione di utilita' usata dal costruttore bool genera( const Posizione&, const Posizione& ); // funzione di utilita' usata da generaPercorso() bool internoInGriglia( const Posizione& ); // funzione di utilita': restituisce true sse la posizione // in input e' nella griglia ma non sul bordo della stessa };