Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
CrossoX
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
#1

Шаг конем - C++

11.02.2015, 23:44. Просмотров 662. Ответов 1
Метки нет (Все метки)

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

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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
struct Dirq
{
    int x;
    int y;
};
void DziuXpacDashteryNshel(char a[][8],int &, int &);
int DziuHnaravorGnaluDashteryStanal(char a[][8],Dirq,Dirq []);
void DashtyTpel(char a[][8]);
 
int _tmain(int argc, _TCHAR* argv[])
{
    srand(time(0));
    char a[8][8]={0};
    int x;
    int y;
    x=rand()%8;
    y=rand()%8;
    Dirq hd;
    hd.x=x;
    hd.y=y;
    Dirq d[8];
    int c=DziuHnaravorGnaluDashteryStanal(a,hd,d);
    for (int i = 0; i < c; i++)
    {
        int xx=d[i].x;
        int yy=d[i].y;
        a[xx][yy]='*';
    }
    
    DashtyTpel(a);
 
 
 
return 0;
}
void DashtyTpel(char a[][8])
{
    int i;
    int k;
    for ( i= 0; i < 8; i++)
    {
        for ( k= 0; k < 8; k++)
        {
            if(a[i][k]==0)
            cout<<setw(2)<<'.';
            else
            cout<<setw(2)<<a[i][k];
 
        }
        cout<<endl;
    }
}
int DziuHnaravorGnaluDashteryStanal(char a[][8],Dirq hp,Dirq d[])
{
    int x=hp.x;
    int y=hp.y;
    int c=0;
    if (x+1<8 && y+2<8)
    {
        d[c].x=x+1;
        d[c].y=y+2;
        c++;
    }
    if (x+2<8 && y+1<8)
        {
        d[c].x=x+2;
        d[c].y=y+1;
        c++;
        }
        
    if (x-1>=0 && y+2<8)
        {
        d[c].x=x-1;
        d[c].y=y+2;
        c++;
        }
        
    if (y-1>=0 && x+2<8)
        {
        d[c].x=x+2;
        d[c].y=y-1;
        c++;
        }
        
    if (x-2>=0 && y+1<8)
        {
        d[c].x=x-2;
        d[c].y=y+1;
        c++;
        }
       
    if (y-2>=0 && x+1<8)
        {
        d[c].x=x+1;
        d[c].y=y-2;
        c++;
        }
        
    if (x-2>=0 && y-1>=0)
        {
        d[c].x=x-2;
        d[c].y=y-1;
        c++;
        }
        
    if (y-2>=0 && x-1>=0)
        {
        d[c].x=x-1;
        d[c].y=y-2;
        c++;
        }
    return c;
}

http://www.cyberforum.ru/cpp-beginners/thread588050.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2015, 23:44
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шаг конем (C++):

Шаг младенца, шаг великана Трудоемкость
Помогите реализовать данную функцию с трудоемкостью (√P×logP). Как делать...

СИ++ ход конем
Добрый вечер. Я начинающий в Си++, даже очень. Т.к. лекций в универе по си++...

Ход конем
Совсем недавно Вася занялся программированием и решил реализовать собственную...

Ход конем
На шахматной доске (8х8) стоят конь и пешка. Конь располагается на поле А,...

Рекурсия. Ход конем
написал код на &quot;КОНЯ&quot; ))) ( рекурсия ) а она чего-то все ходы не...

1
Raali
639 / 343 / 74
Регистрация: 06.07.2013
Сообщений: 1,107
Завершенные тесты: 1
12.02.2015, 18:32 #2
Цитата Сообщение от CrossoX Посмотреть сообщение
и у которого самые минимальные шаги
всмысле, если найти все возможные ходы, то как понять какой из них минимальный?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2015, 18:32
Привет! Вот еще темы с решениями:

Задача Ход конем - 2.
день добрый. задача:...

Обход доски конем
Дана шахматная доска размером 8х8 и шахматный конь. Программа должна запросить...

Обход шахматной доски конем
Добрый вечер , форумчане. Передо мной стоит проблема написать программу на С++...

Обход доски шахматным конем
решал задачу &quot;Тур конем&quot;. : На шахматной доске размером n*n на поле с...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru