| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 
 | #include <fstream>
#include <iostream>
#include <vector>
#include <string>
#include "position.h"
 
using namespace std;
 
struct SWrap {
	/*ici les coord de départ sur la map courante*/
	int sourceX;
	int sourceY;
	/*ici, l'identification de la map de sortie: nom, coordonnées, etc.*/
	int destMapX;
	int destMapY;
	/*ici les coordonnees d'arrive sur la map de sortie*/
	int destX;
	int destY;
};
 
struct SMap {
        size_t rows;
        size_t cols;
	std::vector<unsigned char> tiles;
	std::vector<SWrap> wraps;
	std::string title;
        /* et, comme on peut travailler en orienté objets, on peut rajouter
         * une fonction membre qui renvoie le caractère qui se trouve en X,Y ;)
         */
       const unsigned char tileAt(size_t x, size_t y) const
       {return tiles[y*cols + x];}
       /* et la même chose avec une Position (sait on jamais ;)) */
       const unsigned char tileAt(Position const & pos)
       {return tileAt(pos.x(), pos.y());}
};
 
int main()
{
    ifstream ifs("ephinea.txt");
    SMap Map;
    Map.tiles.clear(); //supprime les informations de la map précédante
    Map.wraps.clear();
    size_t rows;
    size_t cols;
    string contenue;
    ifs>>rows>>cols;
    cout << rows << " " << cols << endl;
    getline(ifs, contenue);
    cout << contenue << endl;
    //char a;
    //ifs>>a;
    //cout << a << endl;
     for(size_t y = 0; y < rows; ++y)
    {
        //char a;
        //ifs>>a;
        //cout << a << endl;
        for(size_t x = 0; x < cols; ++x)
        {
           char c;
           ifs>>c;
           cout << c << endl;
           Map.tiles.push_back(c);
        }
        getline(ifs, contenue);
    }
    int wrapCount;
    ifs>>wrapCount;
    cout << wrapCount << endl;
     for(int i = 0; i< wrapCount;++i)
    {
         SWrap wrap;
         ifs>>wrap.sourceX>>wrap.sourceY
            >>wrap.destMapX>>wrap.destMapY
            >>wrap.destX>>wrap.destY;
        Map.wraps.push_back(wrap);
    }
    ifs>>Map.title;
    cout << Map.title << endl;
} |