Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140

Ход конем до конкретной точки

19.02.2015, 01:57. Показов 4223. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
написал такую программу.конь обходит доску. как изменить его так чтоб он дошел до конкретной точки которую опчть по функции rand мы найдем и остановился ?
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include "stdafx.h"
#include "time.h"
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
struct Dirq
{
    int x;
    int y;
};
 
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;
    int sch=1;
    Dirq hd;
    hd.x=x;
    hd.y=y;
    a[x][y]=sch++;
    Dirq d[8];
    int c=DziuHnaravorGnaluDashteryStanal(a,hd,d);
    while (c)
    {
 
        int min=10;
        int indmin=0;
        for (int i = 0; i < c; i++)
        {
            Dirq d1[8];
            int q=DziuHnaravorGnaluDashteryStanal(a,d[i],d1);
            if (q<min)
            {
                min=q;
                indmin=i;
            }
        }
        a[d[indmin].x][d[indmin].y]=sch++;
        DashtyTpel(a);
        cout<<endl<<endl;
        
        hd=d[indmin];
        c=DziuHnaravorGnaluDashteryStanal(a,hd,d);
    }
 
 
 
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(3)<<(int)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)
    {
        if (a[x+1][y+2]==0)
        {
            d[c].x=x+1;
            d[c].y=y+2;
            c++;
        }
    }
    if (x+2<8 && y+1<8)
    {
        if (a[x+2][y+1]==0)
        {
            d[c].x=x+2;
            d[c].y=y+1;
            c++;
        }
    }
        
    if (x-1>=0 && y+2<8)
    {
        if(a[x-1][y+2]==0)
        {
        d[c].x=x-1;
        d[c].y=y+2;
        c++;
        }
    }
        
    if (y-1>=0 && x+2<8)
    {
        if(a[x+2][y-1]==0)
        {
        d[c].x=x+2;
        d[c].y=y-1;
        c++;
        }
    }
        
    if (x-2>=0 && y+1<8)
    {
        if(a[x-2][y+1]==0)
        {
        d[c].x=x-2;
        d[c].y=y+1;
        c++;
        }
    }
       
    if (y-2>=0 && x+1<8)
    {
        if(a[x+1][y-2]==0)
        {
        d[c].x=x+1;
        d[c].y=y-2;
        c++;
        }
    }
        
    if (x-2>=0 && y-1>=0)
    {
        if (a[x-2][y-1]==0)
        {
        d[c].x=x-2;
        d[c].y=y-1;
        c++;
        }
    }
        
    if (y-2>=0 && x-1>=0)
    {
        if(a[x-1][y-2]==0)
        {
        d[c].x=x-1;
        d[c].y=y-2;
        c++;
        }
    }
    return c;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.02.2015, 01:57
Ответы с готовыми решениями:

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

Ход Конем
задача номер 6 на acmp. Написал, базовые тесты работают, но там ошибка при первом же тесте, в чем проблемес? #include &lt;iostream&gt; ...

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

34
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 05:34  [ТС]
Студворк — интернет-сервис помощи студентам
iliya785, спасибо если можно и еще конь и все

Добавлено через 9 минут
iliya785, спасибо и конь если не трудно
0
24 / 24 / 12
Регистрация: 04.06.2014
Сообщений: 80
19.02.2015, 05:35
ок, пишу, прост кода немало :-)
0
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 05:46  [ТС]
iliya785, спасибо ты мне спас .
а почему это не можно написать просто int a[5];???
как можно написать без этого ? vector < int > a( n );

Добавлено через 9 минут
iliya785, не можно vector < int > a( n ); написать другим способом как простой массив?
0
24 / 24 / 12
Регистрация: 04.06.2014
Сообщений: 80
19.02.2015, 05:48
прост я пишу под другим компилятором(gnu c++) и могли быть проблемы. например в вижле размер массива должен быть константой т.е. int n; cin >> n; int a[n] - этот кусок кода на вижле не скомпилится, а под g++ скомпилится. А с векторами так можно, и вообще можно изменять размер вектора в любом месте программы.

P.S. Прикручиваю восстановление пути
0
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 05:53  [ТС]
iliya785, а мне как написать простым способом ? например int a[5] ?

Добавлено через 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
#include "stdafx.h"
#include <iostream>
#include <vector>
#include <algorithm>
 
 
using namespace std;
 
int main()
{
    
    int a[5];
 
    for ( int i = 0; i < 5; ++i )
        a = i + 1;
 
    do
    {
        for ( int i = 0; i < 5; ++i )
            cout << b[i].a[b[i]] << " ";
        cout << "\n";
    } while ( next_permutation( a.begin(), a.end() ) );
 
    return 0;
}
дает ошибку
0
24 / 24 / 12
Регистрация: 04.06.2014
Сообщений: 80
19.02.2015, 05:56
15 строка a[i] = i + 1;
20 строка cout << a[i] << " ";
0
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 05:57  [ТС]
iliya785, oй извини я там хотел изменить что то . нет ошибку дает 22 строке там a.begin(), a.end() не распознает
0
24 / 24 / 12
Регистрация: 04.06.2014
Сообщений: 80
19.02.2015, 05:58
если ты напишешь (for int i = 0; i< 5;++i ) a = i + 1, то у тебя в цикле первому элементу будет присваиваться i+1
0
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 05:59  [ТС]
iliya785, oй извини я там хотел изменить что то . нет ошибку дает 22 строке там a.begin(), a.end() не распознает expression must have class type
0
24 / 24 / 12
Регистрация: 04.06.2014
Сообщений: 80
19.02.2015, 06:00
ок, a.begin(), a.end() замени на a, a + 5
0
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 06:02  [ТС]
iliya785, да ты сегодня меня спасаешь)спасибо честно спасибоооо
0
24 / 24 / 12
Регистрация: 04.06.2014
Сообщений: 80
19.02.2015, 06:06
Лучший ответ Сообщение было отмечено CrossoX как решение

Решение

готово проверяй, координаты я нумеровал с единицы
1
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 06:13  [ТС]
iliya785, спасибо тебе больщое
0
24 / 24 / 12
Регистрация: 04.06.2014
Сообщений: 80
19.02.2015, 06:16
незачто, будут вопросы пиши :-).
P.S. а про STL как-нибудь почитай, штука полезная

Добавлено через 33 секунды
и кстати тему не забудь закрвть
1
3 / 3 / 2
Регистрация: 23.10.2014
Сообщений: 140
19.02.2015, 06:19  [ТС]
iliya785, Спасибо друг
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.02.2015, 06:19

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

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

Задача Ход конем - 2.
день добрый. задача: http://informatics.mccme.ru/moodle/mod/statements/view3.php?id=656&amp;chapterid=2962#1 как видите, задача на тему...

Ход конем. Шахматная ассоциация
Шахматная ассоциация решила оснастить всех своих сотрудников такими телефонными номерами, которые бы набирались на кнопочном телефоне ходом...

С помощью метода волны найти кратчайший путь из одной клетки в другую (ход конём)
Пытаюсь решить такую задачу: с помощью метода волны нужно найти кратчайший путь из одной клетки в другую. Проблема состоит в том, что я...


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

Или воспользуйтесь поиском по форуму:
35
Ответ Создать тему
Новые блоги и статьи
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru