From 16e1acc51dd44f8f1ccc7c30af7d22cf22998ec3 Mon Sep 17 00:00:00 2001 From: Matuush Date: Thu, 26 Dec 2024 21:17:42 +0100 Subject: [PATCH] Minimax implemented without getting weight --- solver.cpp | 18 +++++++++++++++--- solver.hpp | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/solver.cpp b/solver.cpp index 281c766..9300564 100644 --- a/solver.cpp +++ b/solver.cpp @@ -34,7 +34,19 @@ void Solver::learn(vector guess, Response response) { int Solver::get_weight(vector guess) { return 0; } -// TODO -Weighed_guess Solver::minimax(vector> *possibilities, vector *chosen, int index) { - return {0, {}}; +Weighed_guess Solver::minimax(vector carry) { + if(carry.size() == N) + return {get_weight(carry), carry}; + + Weighed_guess best = {-1, {}}; + for(int col = 0; col < M; col++) { + carry.push_back(col); + + Weighed_guess next = minimax(carry); + if(next.weight > best.weight) + best = next; + + carry.pop_back(); + } + return best; } diff --git a/solver.hpp b/solver.hpp index e71e07c..e050eb9 100644 --- a/solver.hpp +++ b/solver.hpp @@ -22,5 +22,5 @@ public: private: void generate_set(vector carry); int get_weight(vector guess); - Weighed_guess minimax(vector> *possibilities, vector *chosen, int index); + Weighed_guess minimax(vector carry); };