diff --git a/kernel.cu b/kernel.cu index 7d6f5d7..a6ad41f 100644 --- a/kernel.cu +++ b/kernel.cu @@ -47,6 +47,25 @@ void generate_polygon(int* P, int n) { 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() { const int n = MATRIX_SIZE; const int block_size = BLOCK_SIZE; @@ -109,9 +128,12 @@ int main() { } 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); + if (MATRIX_SIZE < 100) + print_distance_map(P, dist, MATRIX_SIZE); + // Освобождение памяти free(P); free(dist);