diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py index 7e62843b9813a9754d4f71c658891a7a0c62a2ba..9624cacf9024c4475799909f9bd4c24e667a61d9 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/generador Nonogram Gonzalo.py @@ -77,12 +77,14 @@ try: #archivo de salida de columnas archivo = open ("datos_columnas", "w") + archivo.write("%d\n"%width) for i in range(0, width): for j in range(0, len(datosColumnas[i])): archivo.write("%d "%datosColumnas[i][j]) archivo.write("\n") archivo = open ("datos_filas", "w") + archivo.write("%d\n"%height) for i in range(0, height): for j in range(0, len(datosFilas[i])): archivo.write("%d "%datosFilas[i][j]) diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh index 4d2423e81a83d39af2f15086836bac4c5673eb07..c3aa06d3413654e676ecff0ac114232fdf3f5c56 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.hh @@ -78,10 +78,10 @@ skeleton newGA private: int _cantFilas; int _cantColumnas; - int** _datosColumnas; - int** _datosFilas; - int* _cantGruposColumna; - int* _cantGruposFila; + vector<vector<int>> _datosColumnas; + vector<vector<int>> _datosFilas; + vector<int> _cantGruposColumna; + vector<int> _cantGruposFila; }; //Solution ---------------------------------------------------------------------------- diff --git a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc index 940a60f1fce969066c5f614ce73ba03c049558ae..97a1688cf48ad40d4e35a45e9490e6c989f1dc70 100644 --- a/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc +++ b/ProyectoFinal/AlgoritmoGenetico/malva/rep/GA/newGA.req.cc @@ -29,7 +29,21 @@ skeleton newGA return os; } + void split(const std::string &s, char delim, Out result) + { + std::stringstream ss(s); + std::string item; + while (std::getline(ss, item, delim)) { + *(result++) = item; + } + } + std::vector<std::string> split(const std::string &s, char delim) + { + std::vector<std::string> elems; + split(s, delim, std::back_inserter(elems)); + return elems; + } istream& operator>> (istream& is, Problem& pbm) { @@ -40,6 +54,47 @@ skeleton newGA //is.getline(buffer,MAX_BUFFER,'\n'); //sscanf(buffer,"%d",&pbm._dimension); + //CARGAR DATOS COLUMNAS + ifstream inFile; + inFile.open("datos_columnas"); + if (!inFile) + { + cerr << "Unable to open file datafile.txt"; + exit(1); // call system to stop + } + string x; + getline(inFile, x); + pbm._cantColumnas = stoi(x); + for(int cCol = 0; cCol < pbm._cantColumnas; cCol++) + { + getline(inFile, x); + std::vector<std::string> divided = split(x, " "); + pbm._datosColumnas.push_back(divided); + pbm._cantGruposColumna.push_back(divided.size()); + } + inFile.close(); + + //CARGAR DATOS FILAS + ifstream inFile; + inFile.open("datos_filas"); + if (!inFile) + { + cerr << "Unable to open file datafile.txt"; + exit(1); // call system to stop + } + string x; + getline(inFile, x); + pbm._cantFilas = stoi(x); + for(int cFi = 0; cFi < pbm._cantFilas; cFi++) + { + getline(inFile, x); + std::vector<std::string> divided = split(x, " "); + pbm._datosFilas.push_back(divided); + pbm._cantGruposFila.push_back(divided.size()); + } + inFile.close(); + /* + /* //CARGAR DATO CANT Tareas ifstream inFile; inFile.open("datos_cantidad_tareas"); @@ -130,7 +185,7 @@ skeleton newGA cout << pbm._tareasIndex[i] << " "; } exit(0); - */ + //INICIALIZAR EMPLEADOS pbm._empleados=new Empleado [pbm._cantEmpleados]; @@ -239,6 +294,7 @@ skeleton newGA free(tmp); } */ + cout<<pbm; return is; }