Добавил вывод полигона с результатом
This commit is contained in:
24
kernel.cu
24
kernel.cu
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user