волновой алгоритм поиска пути

Отменен
Заказ
4766530
Раздел
Программирование
Тип работы
Антиплагиат
Не указан
Срок сдачи
6 Мая 2022 в 13:00
Цена
100 ₽
Блокировка
10 дней
Размещен
4 Мая 2022 в 15:32
Просмотров
43
Описание работы

Я нашел код для волнового алгоритма поиска пути, но мне нужно чтобы матрица заполнялась вручную. Вот сам код:

#include

#include

#include

#include

#include

#include

#include

#include

#include


using namespace std;


#include


#define FALSE 0

#define TRUE 1


#define NROWS 6

#define MCOLS 6


// Symbols:

// '.' = open

// '#' = blocked

// 'S' = start

// 'G' = goal

// '+' = path

// 'x' = bad path

char maze[NROWS][MCOLS] = {

    {'S','.','.','.','#','#'},

    {'#','.','#','.','.','.'},

    {'#','.','#','#','.','#'},

    {'.','.','#','.','#','#'},

    {'#','.','.','.','#','G'},

    {'#','.','#','.','.','.'}

};


void display_maze(void);

int find_path(int x, int y);


int

main(void)

{

    display_maze();


    if ( find_path(0, 0) == TRUE )

        printf("Success!\n");

    else

        printf("Failed\n");


    display_maze();

    int i;

    cin >> i;

    return 0;

}

// main()


void

display_maze(void)

{

    int i;


    printf("MAZE:\n");

    for ( i = 0; i < NROWS; i++ )

        printf("%.*s\n", MCOLS, maze[i]);

    printf("\n");


    return;

}


int

find_path(int x, int y)

{

    // If x,y is outside maze, return false.

    if ( x MCOLS - 1 || y NROWS - 1 ) return FALSE;


    // If x,y is the goal, return true.

    if ( maze[y][x] == 'G' ) return TRUE;


    // If x,y is not open, return false.

    if ( maze[y][x] != '.' && maze[y][x] != 'S' ) return FALSE;


    // Mark x,y part of solution path.

    maze[y][x] = '+';


    // If find_path North of x,y is true, return true.

    if ( find_path(x, y - 1) == TRUE ) return TRUE;


    // If find_path East of x,y is true, return true.

    if ( find_path(x + 1, y) == TRUE ) return TRUE;


    // If find_path South of x,y is true, return true.

    if ( find_path(x, y + 1) == TRUE ) return TRUE;


    // If find_path West of x,y is true, return true.

    if ( find_path(x - 1, y) == TRUE ) return TRUE;


    // Unmark x,y as part of solution path.

    maze[y][x] = 'x';


    return FALSE;

}

// find_path()

Нужна такая же работа?
  • Разместите заказ
  • Выберите исполнителя
  • Получите результат
Гарантия на работу 1 год
Средний балл 4.96
Стоимость Назначаете сами
Эксперт Выбираете сами
Уникальность работы от 70%
Нужна аналогичная работа?
Оформи быстрый заказ и узнай стоимость
Гарантированные бесплатные доработки
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Темы журнала
Показать ещё
Прямой эфир