0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 2
1

С помощью метода волны найти кратчайший путь из одной клетки в другую (ход конём)

18.01.2016, 20:50. Показов 999. Ответов 2
Метки нет (Все метки)

Пытаюсь решить такую задачу: с помощью метода волны нужно найти кратчайший путь из одной клетки в другую. Проблема состоит в том, что я настолько тупой, что не могу даже составить формировку матрицы. Точнее могу, но каким то образом заполняются те клетки, которые не должны заполняться. Прошу помощи в решении. Заранее спасибо.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#include <iostream>
using namespace std;
int t[100][100]={0};
int dx[8]={-2,+1,+2,+2,-1,+1,-1,-2};
int dy[8]={-1,+2,+1,-1,+2,-2,-2,+1};
int fl=0;
int uvx[100][100];
int uvy[100][100];
void main(){
setlocale(LC_ALL,"rus");
int xn,yn,xk,yk,k,n,m;
cout<<"Введите xn\n";
cin>>xn;
cout<<"Введите yn\n";
cin>>yn;
cout<<"Введите xk\n";
cin>>xk;
cout<<"Введите yk\n";
cin>>yk;
cout<<"Введите n\n";
cin>>n;
cout<<"Введите m\n";
cin>>m;
k=1;
t[xn][yn]=1;
int xx,yy;
do{//формировка
    fl=false;
    for(int x=1;x<=n;x++){
    for(int y=1;y<=m;y++){
    if(t[x][y]==k){
    for(int i=1;i<=8;i++){
                    xx=x+dx[i];
                    yy=y+dy[i];
                    if((xx>0)&&(xx<=n)&&(yy>0)&&(yy<=m)&&(t[xx][yy]==0)){
                        fl=true;
                        t[xx][yy]=k+1;
                        cout<<t[xx][yy]<<endl;
                        uvx[xx][yy]=x;
                        uvy[xx][yy]=y;
                    }
                }
            }
        }
    }
    k++;
}while(fl);
 
for(int i=1;i<=n;i++){ //вывод таблицы на экран
for(int j=1;j<=m;j++)
cout<<t[i][j];
cout<<endl;
}
 
 
end:
int getch;
cin>>getch;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2016, 20:50
Ответы с готовыми решениями:

Найти путь из одной клетки в другую
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из...

Вывести «Yes», если слон может за один ход перейти с одной клетки в другую
Дано координаты двух клеток шахматной доски. Вывести «Yes», если слон может за один ход перейти с...

Кратчайший путь из одной вершины в другую с условием, что двигаться можно только прямо и вправо
Условие Змей Горыныч оказался в лабиринте и хочет выбраться из него как можно скорее. К сожалению,...

Дано координаты двух клеток шахматной доски. Вывести «Yes», если слон может за один ход перейти с одной клетки в другую. В другом случае вывести «No».
Дано координаты двух клеток шахматной доски. Вывести «Yes», если слон может за один ход перейти с...

2
Don't worry, be happy
17752 / 10522 / 2028
Регистрация: 27.09.2012
Сообщений: 26,497
Записей в блоге: 1
18.01.2016, 20:53 2
Вам нужен волновой алгоритм?
0
0 / 0 / 0
Регистрация: 04.06.2015
Сообщений: 2
18.01.2016, 20:55  [ТС] 3
Видимо да
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2016, 20:55
Помогаю со студенческими работами здесь

Найти кратчайший путь с помощью алгоритма Дейкстры

Найти кратчайший путь от одной точки параллелепипеда до другой
Задача выглядит так: На поверхности прямоугольного параллелепипеда сидит муха и нанесена капля...

Вставить "Х" в клетку StringGrid по щелчку с условием выбора клетки или как сделать "Ход конем"
Занялся созданием игры &quot;Ход конем&quot; в Лазарусе. Поле - StringGrid. Что нужно: Щелкаем мышкой по...

В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из клетки (1, 1) в клетку (N, N
В таблице из N строк и N столбцов клетки заполнены цифрами от 0 до 9. Требуется найти такой путь из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru