#ifndef MASTERMIND_H #define MASTERMIND_H #include #include #include #include #include class MasterMind { public: MasterMind(int nb_colors, int nb_cases, std::default_random_engine& randomizer); MasterMind(int nb_colors, int nb_cases, int* solution, std::default_random_engine& randomizer); void set_new_random_solution(); int* get_random_candidate(); void display_candidate(int *x); int try_candidate(int* candidate); int get_max_radius(); int* modify_with_radius(int* x, int r); int* crossover(int* y, int** x, int nb); void copy_candidate(int *x, int *y); bool is_optimal(int* x); bool is_optimal(int* x, int v_x); virtual ~MasterMind(); protected: private: int m_nb_colors; int m_nb_cases; int* m_solution; bool m_random_solution; std::vector m_permutation; std::default_random_engine m_randomizer; }; #endif // MASTERMIND_H