// Inutile de lire le contenu de ce fichier pour le BE. #ifndef BASE_H #define BASE_H // Paramètres pour parser le fichier de caractères. #define BD_NAME "dig_app_text.cb" #define DB_HEADER_NB_VALUES 5 #define DB_CHAR_WIDTH 28 #define DB_CHAR_HEIGHT 28 #define DB_NB_CLASS 10 #include #include #include #include #include #include #include #define PUT(c) (file.put((char)(c))) #define PUT_(c) (file.put(255-(char)(c))) void randomInit(void) {srand(getpid());} double randomDouble(void) {return rand()/(RAND_MAX+1.0);} unsigned char randomUChar(void) {return (unsigned char)(256.0*rand()/(RAND_MAX+1.0));} namespace uci { template class Nop { public: void operator()(T& t) {} }; template > class Imagette { public : private : CONTENT _content[WIDTH*HEIGHT]; public : enum { width = WIDTH, height = HEIGHT, size = WIDTH*HEIGHT }; Imagette(void) { int k; RANDOM random; for(k=0;k class Map : public Imagette > { public: typedef Imagette imagette; enum { width = WIDTH, height = HEIGHT, size = WIDTH*HEIGHT }; Map(void) {} ~Map(void) {} void PPM(std::string file_name,int no) { std::ostringstream os; std::ofstream file; int h,hh,w,ww; char c; os << file_name << '-' << std::setw(6) << std::setfill('0') << no << ".ppm"; file.open(os.str().c_str()); if(!file) { std::cerr << "Error : uci::Map::PPM : " << "Je ne peux pas ouvrir \"" << os.str().c_str() << "\". Je quitte." << std::endl; ::exit(1); } file << "P6\n" << WIDTH*(IMG_WIDTH+1)+1 << ' ' << HEIGHT*(IMG_HEIGHT+1)+1 << "\n255\n"; // Blue line. PUT(0); PUT(0); PUT(255); for(w=0;w> v, i++); } public: typedef Imagette imagette; imagette input; int what; Database(void) { ReOpen(); } ~Database(void) {} void Next(void) { int i,j,v; for(i=0;i> v; input(i,j) = (unsigned char)v; } if(file.eof()) { file.close(); ReOpen(); Next(); } else for(i=0,what=-1;i> v; if(v==1) what=i; } } }; } #endif