Adds number of colors and a loop for checking more levels
This commit is contained in:
parent
58b4a320df
commit
64952b9700
2 changed files with 14 additions and 8 deletions
|
@ -158,8 +158,8 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename URNG>
|
template <typename URNG>
|
||||||
auto random_dynamic_grid(int W, int H, URNG&& r){
|
auto random_dynamic_grid(int W, int H, int C, URNG&& r){
|
||||||
std::uniform_int_distribution<int> dis(1, 2);
|
std::uniform_int_distribution<int> dis(1, C);
|
||||||
std::vector<int> v(W*H);
|
std::vector<int> v(W*H);
|
||||||
std::generate_n(std::begin(v), W*H, [&]{ return dis(r); });
|
std::generate_n(std::begin(v), W*H, [&]{ return dis(r); });
|
||||||
return DynamicGrid(W, H, std::begin(v));
|
return DynamicGrid(W, H, std::begin(v));
|
||||||
|
|
18
main.cpp
18
main.cpp
|
@ -15,13 +15,19 @@ int main(){
|
||||||
std::random_device rd;
|
std::random_device rd;
|
||||||
std::mt19937 gen(rd());
|
std::mt19937 gen(rd());
|
||||||
|
|
||||||
std::cout << std::endl;
|
int c = 0;
|
||||||
auto field = random_dynamic_grid(3, 3, gen);
|
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);
|
auto solution = solve(field);
|
||||||
for(auto&& t : solution.taps){
|
for(auto&& t : solution.taps){
|
||||||
std::cout << "(" << t.first << ", " << t.second << ")\n";
|
std::cout << "(" << t.first << ", " << t.second << ")\n";
|
||||||
|
}
|
||||||
|
if(!solution.taps.empty()){
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Reference in a new issue