С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Соединить шахматные 2 клетки кратчайшим путем коня - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Для каждой строки сформировать новую, поместив в нее слова исходной, заключенные в скобки http://www.cyberforum.ru/cpp-beginners/thread105670.html
Здравствуйте! Помогите с написание программы. Нужны 2 программы, цель обеих: из входного потока вводится произвольное число строк. Каждая строка - слова, разделенные одним или несколькими...
C++ Копирование массивов Уважаемые форумчане помогите решить задачку про массивы. У меня не получается... Суть задачи: Есть два массива: a(10) b(10); копировать в массив b массив a, повторяющиеся не копировать, по... http://www.cyberforum.ru/cpp-beginners/thread105640.html
C++ Класс Часы
требуется написать програму на языке С++ или Delphi: создайте клас часы, в качестве полей должны быть часы, минуты, секунды и формат вывода часов, обязательны функции-члены класса для ввода-вывода...
ifstream ERROR_PATH_NOT_FOUND C++
Приветствую! 3й день бьюсь над одной проблемой. Есть список путей к файлам, необходимо их все прочитать и обработать. И вот если в пути к какому-нибудь файлу есть пробел - получаю...
C++ функция arccos http://www.cyberforum.ru/cpp-beginners/thread105623.html
добрый день, подскажите пожалуйста как записать на Си ф-цию arccos, а то что-то в голову ничего не приходит(
C++ Копии class a { ... public: a (a &o); a &operator = (a &o); ... }; .... a o1,o2; подробнее

Показать сообщение отдельно
Грымзик
2467 / 1444 / 31
Регистрация: 14.09.2009
Сообщений: 2,742
18.03.2010, 12:34
У Вас много ошибок и недочетов. Нельзя было выбирать число 10, поскольку вдруг потребуется больше 10 ходов, надо заведомо недостижимое число брать. Нельзя так заполнять массив int desk[8][8] = {10}; Вы бы посмотрели что получилось при этом. И прежде, чем обращаться к элементу массива, надо проверить индексы. А еще конь делает ход длиной в 2 клетки, а не 3. Заполнения массива я написала,а вывод пути уж сами сделайте.
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
#include <iostream>  
using namespace std;
int main()
{
        int desk[8][8]; // äîñêГ* 8Гµ8. ГЇГіГ±ГІГј Г*ГҐГ§Г*Г*ÿòûå êëåòêè áóäóò Г°Г*ГўГ*Г» 10
        int nkx, nky, kkx, kky, x, y, n;
        cout<<"Vvedite na4alnoe pologenie kon9I\n";//cisla ot 1 do 8, poetomu potom umenshaem na 1
        cin>>nkx;
        cin>>nky;
        cout<<"Vvedite kone4noe pologenie kon9I\n";
        cin>>kkx;
        --kkx;
        cin>>kky;
        --kky;
        for (x=0; x<8; ++x)
            for (y=0; y<8; ++y)
                desk[x][y]=100;
        desk[nkx-1][nky-1]=0;
        for (n=1; desk[kkx][kky]==100; ++n)
            for (x=0; x<8; x++)
                for(y=0; y<8; y++)
                        if (desk[x][y]==n-1)
                        {
                                if (x<6 && y<7 && desk[x+2][y+1]==100)
                                        desk[x+2][y+1]=n;
                                if (x<6 && y>0 && desk[x+2][y-1]==100)
                                        desk[x+2][y-1]=n;
                                if (x>1 && y<7 && desk[x-2][y+1]==100)
                                        desk[x-2][y+1]=n;
                                if (x>1 && y>0 && desk[x-2][y-1]==100)
                                        desk[x-2][y-1]=n;
                                if (x<7 && y>1 && desk[x+1][y-2]==100)
                                        desk[x+1][y-2]=n;
                                if (x<7 && y<6 && desk[x+1][y+2]==100)
                                        desk[x+1][y+2]=n;
                                if (x>0 && y>1 && desk[x-1][y-2]==100)
                                        desk[x-1][y-2]=n;
                                if (x>0 &&y<6 && desk[x-1][y+2]==100)
                                        desk[x-1][y+2]=n;
                        }
                
        for(y=0; y<8; ++y)
        {
                 for(x=0;x<8; ++x)
                         cout<<desk[x][y]<<" ";
                 cout<<endl;
        }
        system("PAUSE");
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.