logik/solver.cpp
2024-12-26 21:13:50 +01:00

40 lines
820 B
C++

#include "solver.hpp"
void Solver::generate_set(vector<int> carry) {
if(carry.size() == N) {
possible.push_back(carry);
return;
}
for(int col = 0; col < M; col++) {
carry.push_back(col);
generate_set(carry);
carry.pop_back();
}
}
Solver::Solver(int _N, int _M) : N(_N), M(_M) {
generate_set({});
}
// TODO
vector<int> Solver::guess() {
return {};
}
void Solver::learn(vector<int> guess, Response response) {
vector<vector<int>> next_possible(0);
for(int i = 0; i < possible.size(); i++)
if(validate(possible[i], guess) == response)
next_possible.push_back(possible[i]);
possible = next_possible;
}
// TODO
int Solver::get_weight(vector<int> guess) {
return 0;
}
// TODO
Weighed_guess Solver::minimax(vector<vector<int>> *possibilities, vector<int> *chosen, int index) {
return {0, {}};
}