#include "values/Dna.hpp"
#include <list>
#include <vector>

#define NUM_PER_GEN 10
#define NUM_OF_MUT 1

enum Liked
{
  yes,
  no,
  tbd
};

struct Unit
{
  Dna *dna;
  Liked liked;
};

class DnaManager
{
public:
  void init();
  void deinit();
  Unit next();
  void like(Unit unit);

private:
  uint128 randSeed;
  std::vector<Dna> vector;
  std::list<Dna *> queued;
  std::list<Dna *> showed;
  std::vector<Dna *> liked;
  std::vector<Dna *> disliked;

  void newGen();
};