Open fedemgp opened 4 years ago
En el WorkerManager::add_worker
podrías haber hecho lo siguiente:
std::vector<int> recipe(4,0);
int points(0);
if (type == "Cocinero") { // mejor tenerlo en una macro
recipe[Resource::wheat] = 2; // estos son clases enumerativas, investigar
recipe[Resource::coal] = 1;
points = 5
}
...
// etc
...
for (int i = 0; i < amount; i++) {
this->workerList.push_back(Worker(this->inventory, this->score,
recipe, points));
}
https://github.com/guidobotta/tp2-taller/blob/4414f162834624753ace3a1a9301c64948e9a5fd/real_worker.cpp#L14-L34
Podrías haber ganado un poco de encapsulamiento si hubieras hecho una especialización de realWorker (btw, me pareció interesante tu encapsulamiento del hilo en dos clases, worker y real_worker, para no hacer un delete explicito, y tenerlo mas RAII). Es mas, ni siquiera necesitabas una especialización, podrías haber pasado en el constructor de realWorker una lista de las materias primas que necesita y los puntos de beneficios que este otorga, para evitar este switch con código duplicado.