From 64952b9700122d020c4dc6f35eb6dadd2b6934f8 Mon Sep 17 00:00:00 2001 From: Joshua Moerman Date: Thu, 13 Feb 2014 22:53:52 +0100 Subject: [PATCH] Adds number of colors and a loop for checking more levels --- include/dynamic_grid.hpp | 4 ++-- main.cpp | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/include/dynamic_grid.hpp b/include/dynamic_grid.hpp index 2757ad7..62cf732 100644 --- a/include/dynamic_grid.hpp +++ b/include/dynamic_grid.hpp @@ -158,8 +158,8 @@ public: }; template -auto random_dynamic_grid(int W, int H, URNG&& r){ - std::uniform_int_distribution dis(1, 2); +auto random_dynamic_grid(int W, int H, int C, URNG&& r){ + std::uniform_int_distribution dis(1, C); std::vector v(W*H); std::generate_n(std::begin(v), W*H, [&]{ return dis(r); }); return DynamicGrid(W, H, std::begin(v)); diff --git a/main.cpp b/main.cpp index 5ab3ae4..18830f6 100644 --- a/main.cpp +++ b/main.cpp @@ -15,13 +15,19 @@ int main(){ std::random_device rd; std::mt19937 gen(rd()); - std::cout << std::endl; - auto field = random_dynamic_grid(3, 3, gen); + int c = 0; + while(true){ + std::cout << "puzzle " << ++c << std::endl; + auto field = random_dynamic_grid(5, 2, 3, gen); - field.print(std::cout); + field.print(std::cout); - auto solution = solve(field); - for(auto&& t : solution.taps){ - std::cout << "(" << t.first << ", " << t.second << ")\n"; + auto solution = solve(field); + for(auto&& t : solution.taps){ + std::cout << "(" << t.first << ", " << t.second << ")\n"; + } + if(!solution.taps.empty()){ + break; + } } }