#include "laberint.hpp" #include "teseus.hpp" #include #include #include "particio.hpp" #include "dedalus.hpp" #include "eda/mem_din" using namespace std; void resol(laberint_teseus & lab, const posicio& inici, const posicio& fi) throw(error); void infoparti(const particio& p); int main() { // ifstream fitxer("test1.txt"); // ifstream fitxer("juegos/laberint_3x3.txt"); // ifstream fitxer("juegos/laberint_30x30.txt"); // ifstream fitxer("juegos/laberint_3x3_ciclo.txt"); // nat fil, col; // cambra c=cambra(false,true,false,false); // Al sud // paret p; // laberint_teseus l(fitxer); // nat i, j; // comptador // posicio pos; /* l.print(cout); resol(l,make_pair(1,3),make_pair(3,3)); */ /* particio pi; pi.afegir(2); pi.afegir(3); pi.afegir(4); pi.afegir(5); pi.afegir(1); pi.unir(5,2); infoparti(pi); pi.unir(2,1); infoparti(pi); pi.unir(3,4); infoparti(pi); pi.unir(3,2); infoparti(pi); */ /* util::Random r; nat nfiles=3; nat ncolum=5; while (1) { i = (nat)((double)nfiles*r())+1; j = (nat)((double)ncolum*r())+1; p = paret((int)(4*r())); cout << i << "," << j << ", " << (int)p << endl; } // while (1) { cout << r() << endl; } */ try{ laberint_teseus l(4,4); mem_din::print_memory_status_report(cout,0); dedalus::construir(l); l.print(cout); resol(l,make_pair(1,1),make_pair(l.num_files(),l.num_columnes())); mem_din::print_memory_status_report(cout,0); } catch (error e) { cout << "ERROR: " << e.modulo() << ": " << e.mensaje() << endl; } cout << "Y aquí acaba main." << endl; } void infoparti(const particio& p) { nat i; cout << "Número de grups: " << p.size() << endl; for(i=1;i<=5;++i) cout << "rep("< solu; posicio pos; try{ cout << "Vaig a resoldre el lab. de " << lab.num_files() << "x" << lab.num_columnes() << " des de "; cout << inici.first << ", " << inici.second << " fins a " << fi.first << ", " << fi.second << endl; lab.resoldre(inici,fi,solu); cout << "Solució de " <0) { pos=solu.front(); solu.pop_front(); cout<< pos.first << ", " << pos.second << endl; } } catch (error e) { cout << "Error en " << e.modulo() << ":" << e.mensaje() << endl; } } /* // Provar cambres for(p=paret("NORD");p<=paret("OEST");++p) { cout << "es pot passar pel " << p << "? " << c.hi_ha_porta(p) << endl; } */ /* // Mostrar totes les cambres cout << "Ara mostraré totes les cambres" << endl; for(fil=1;fil<=l.num_files();++fil) for(col=1;col<=l.num_columnes();++col) { c=l(make_pair(fil,col)); for(p=paret("NORD");p<=paret("OEST");++p) { cout << "A la cambra " << fil << " " << col; cout << " es pot passar per " << p << "?" << c.hi_ha_porta(p) << endl; } } */ // util::Random r; while (1) cout << r() << endl;