#include #include #include "griglia.h" #include "robot.h" /**************************** * realizzare la funzione visita * che data una griglia con un robot, * guidi quest'ultimo alla posizione * di arrivo. *********************************/ void visita( Griglia&, Robot& ); int main() { Griglia g( 15, 25 ); cout << "Griglia g( 15, 25 ) \n"; g.disegna(); Robot rob; g.inserisciRobot( rob ) ; cout << "Robot r; g.inserisciRobot( r ) \n"; g.disegna(); visita( g, rob ); if ( g.getArrivo() == rob.getPosizione() ) cout << "Arrivato !!" << endl; else cout << "Fallimento !!" << endl; return 0; } void visita( Griglia& g, Robot& rob){ //Scrivere qui il codice della funzione di visita. }; /********************************** ** Una possibile soluzione: void visita( Griglia& g, Robot& rob) { Posizione oldPos; //memorizza la posizione del robot rob bool fine =false; //sara' true quando rob non puo' piu' avanzare do{ bool trovato=false; //sarà vero quando rob trova una nuova posizione in percorso int i=0; //conta le quattro direzioni while( !trovato && i < 4){ Posizione pos = rob.getPosizione(); //memorizzo la nuova posizione del robot rob.avanza(); if ((rob.getPosizione()!= oldPos) && // se la nuova posizione non è già stata occupata precedentemente g.inPercorso(rob.getPosizione())) { // ed è in percorso, trovato = true; //ho trovato una nuova posizione nel percorso g.disegna(); oldPos = pos; //memorizzo la posizione precedentemente occupata } else { rob.retrocedi(); //torno indietro rob.giraADestra(); //e cambio direzione i++; } }; if (i == 4) fine = true; //ho provato le quattro direzioni senza trovare una posizione nel percorso }while(! fine) ; } */