Добавил вывод полигона с результатом

This commit is contained in:
2025-03-30 12:48:22 +03:00
parent c6be31c093
commit 8b638dc740

View File

@@ -47,6 +47,25 @@ void generate_polygon(int* P, int n) {
P[n*n - 1] = 0; // Гарантируем, что финиш свободен P[n*n - 1] = 0; // Гарантируем, что финиш свободен
} }
void print_distance_map(int* P, unsigned int* dist, int n) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int idx = i * n + j;
if (P[idx] == -1)
printf("████"); // Препятствие
else if (i == 0 && j == 0)
printf("S "); // Старт
else if (i == n-1 && j == n-1)
printf("F "); // Финиш
else if (dist[idx] == INF)
printf(". "); // Недостижимая область
else
printf("%-4u", dist[idx]); // Вывод расстояния
}
printf("\n");
}
}
int main() { int main() {
const int n = MATRIX_SIZE; const int n = MATRIX_SIZE;
const int block_size = BLOCK_SIZE; const int block_size = BLOCK_SIZE;
@@ -109,9 +128,12 @@ int main() {
} }
printf("Time: %.2f ms\n", milliseconds); printf("Time: %.2f ms\n", milliseconds);
printf("Matrix: %dx%d | Blocks: %dx%d | Obstacles: %d%%\n", printf("Matrix: %dx%d | Blocks: %dx%d | Obstacles: %d%%\n\n",
n, n, block_size, block_size, OBSTACLE_PROB); n, n, block_size, block_size, OBSTACLE_PROB);
if (MATRIX_SIZE < 100)
print_distance_map(P, dist, MATRIX_SIZE);
// Освобождение памяти // Освобождение памяти
free(P); free(P);
free(dist); free(dist);