opti to start from high deepness

This commit is contained in:
Théophyl Hoguet committed 2022-03-10 13:39:21 +01:00
1 parent d24197bc3d
commit 1bf8b9bfd3
2 files changed
+10 -8

No files matched your search

+4 -4
View File
@@ -28,16 +28,16 @@
} }
], ],
"preLaunchTask": "make_build" "preLaunchTask": "make_build"
},{ },
{
"name": "(gdb) game_solve", "name": "(gdb) game_solve",
"type": "cppdbg", "type": "cppdbg",
"request": "launch", "request": "launch",
"program": "${workspaceFolder}/build/game_solve", "program": "${workspaceFolder}/build/game_solve",
"args": [ "args": [
"-c", "-c",
"${workspaceFolder}/build/test3.txt", "${workspaceFolder}/build/test1.txt",
"${workspaceFolder}/build/testsol3.txt" "${workspaceFolder}/build/testsol1.txt"
], ],
"stopAtEntry": false, "stopAtEntry": false,
"cwd": "${fileDirname}", "cwd": "${fileDirname}",
+6 -4
View File
@@ -465,8 +465,9 @@ bool game_solve(game g) {
if (total_move_played == -2) if (total_move_played == -2)
return false; return false;
uint nb_blank_cases = total_number_of_blank_cases(g); uint nb_blank_cases = total_number_of_blank_cases(g);
// else try brutforce with deepness going from 1 to the total number of blank cases on the game uint deep = min(game_nb_rows(g), game_nb_cols(g)) > nb_blank_cases ? 1 : min(game_nb_rows(g), game_nb_cols(g));
for (uint deep = 1; deep < nb_blank_cases; deep++) { // else try brutforce with deepness going from ^ to the total number of blank cases on the game
for (; deep < nb_blank_cases; deep++) {
total_move_played += move_played; total_move_played += move_played;
uint alreadyDone[nb_blank_cases * 2]; uint alreadyDone[nb_blank_cases * 2];
if (aux_game_solve(g, deep, &move_played, alreadyDone, 0, nb_blank_cases * 2, false, NULL, NULL, NULL)) { if (aux_game_solve(g, deep, &move_played, alreadyDone, 0, nb_blank_cases * 2, false, NULL, NULL, NULL)) {
@@ -501,8 +502,9 @@ uint game_nb_solutions(cgame g) {
} }
uint nb_blank_cases = total_number_of_blank_cases(copy_g); uint nb_blank_cases = total_number_of_blank_cases(copy_g);
uint alreadyDone[nb_blank_cases * 2]; uint alreadyDone[nb_blank_cases * 2];
// else try brutforce with deepness going from 1 to the total number of blank cases on the game uint deep = min(game_nb_rows(copy_g), game_nb_cols(copy_g)) > nb_blank_cases ? 1 : min(game_nb_rows(copy_g), game_nb_cols(copy_g));
for (uint deep = min(game_nb_rows(copy_g), game_nb_cols(copy_g)); deep < nb_blank_cases; deep++) { // else try brutforce with deepness going from ^ to the total number of blank cases on the game
for (; deep < nb_blank_cases && nb_solutions == 0; deep++) {
aux_game_solve(copy_g, deep, &move_played, alreadyDone, 0, nb_blank_cases * 2, true, &nb_solutions, &t_games, &size); aux_game_solve(copy_g, deep, &move_played, alreadyDone, 0, nb_blank_cases * 2, true, &nb_solutions, &t_games, &size);
} }
for (uint i = 0; i < nb_solutions; i++) { for (uint i = 0; i < nb_solutions; i++) {