From 8b638dc740fcce3c7d444b22b749dabb64cb1f91 Mon Sep 17 00:00:00 2001 From: Arity-T Date: Sun, 30 Mar 2025 12:48:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=B2=D1=8B=D0=B2=D0=BE=D0=B4=20=D0=BF=D0=BE=D0=BB=D0=B8=D0=B3?= =?UTF-8?q?=D0=BE=D0=BD=D0=B0=20=D1=81=20=D1=80=D0=B5=D0=B7=D1=83=D0=BB?= =?UTF-8?q?=D1=8C=D1=82=D0=B0=D1=82=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- kernel.cu | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) 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);