mile stone

This commit is contained in:
2023-09-28 11:04:38 +08:00
parent 805dc08146
commit 119460808e

View File

@ -247,7 +247,7 @@ std::vector<std::vector<double> > GaussianJordanElimination(
std::vector<double> equa_template;
equa_template.resize(m);
// assert(n + 1 == m);
for (int tot = 0; tot < 3; tot++) {
for (int tot = 0; tot < 5; tot++) {
n = equations.size();
for (int i = 0; i < n; i++) {
int pivot = i;
@ -284,6 +284,11 @@ std::vector<std::vector<double> > GaussianJordanElimination(
for (int k = 0; k < m; k++) equations[equations.size() - 1][k] = 0;
equations[equations.size() - 1][m - 1] = 0;
equations[equations.size() - 1][j] = 1;
std::pair<int, int> pos = variaID_to_position[j];
if (map_status[pos.first][pos.second] == 0) {
map_status[pos.first][pos.second] = 1;
no_mine_block_to_be_clicked.push(pos);
}
}
equations.erase(equations.begin() + i);
i--;
@ -294,6 +299,10 @@ std::vector<std::vector<double> > GaussianJordanElimination(
for (int k = 0; k < m; k++) equations[equations.size() - 1][k] = 0;
equations[equations.size() - 1][m - 1] = 1;
equations[equations.size() - 1][j] = 1;
std::pair<int, int> pos = variaID_to_position[j];
if (map_status[pos.first][pos.second] == 0) {
map_status[pos.first][pos.second] = -1;
}
}
equations.erase(equations.begin() + i);
i--;
@ -385,7 +394,7 @@ void PreProcessData() {
// 3. interpret the result of Gaussian-Jordan Elimination,store the result in
// map_status and push the newly found block that definitely has no mine
// into no_mine_block_to_be_clicked
for (int i = 0; i < 4; i++) {
for (int i = 0; i < 8; i++) {
std::vector<std::vector<double> > equations = GenerateEquations();
equations = GaussianJordanElimination(equations);
InterpretResult(equations);