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

На шахматной доске определить поля, в которые может попасть конь за n ходов из указанной позиции (рекурсия)

06.03.2017, 19:06. Показов 1849. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На шахматной доске определить поля, в которые может попасть конь за n ходов из указанной позиции.Размер шахматной доски также вводится.

вот программа,вроде логична, так долго над ней билась.
помогите! что не так! лабу завтра сдавать уже!

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
#include <iostream>
#include <math.h>
 
using namespace std;
 
int** func(int** chess_board, int horse_pos_x, int horse_pos_y, int razm, int key)
{
    key++;
    if ((horse_pos_y + 2 < razm) && (horse_pos_x + 1 < razm))
    {
        chess_board[horse_pos_y + 2][horse_pos_x + 1] = key;
        func(chess_board, horse_pos_x + 1, horse_pos_y + 2, razm, key);
    }
    if ((horse_pos_y + 1 < razm) && (horse_pos_x + 2 < razm))
    {
        chess_board[horse_pos_y + 1][horse_pos_x + 2] = key;
        func(chess_board, horse_pos_x + 2, horse_pos_y + 1, razm, key);
    }
    if ((horse_pos_y - 1 < razm) && (horse_pos_y - 1 >= 0) && (horse_pos_x + 2 < razm))
    {
        chess_board[horse_pos_y - 1][horse_pos_x + 2] = key;
        func(chess_board, horse_pos_x + 2, horse_pos_y - 1, razm, key);
    }
    if ((horse_pos_y - 2 < razm) && (horse_pos_y - 2 >= 0) && (horse_pos_x + 1 < razm))
    {
        chess_board[horse_pos_y - 2][horse_pos_x + 1] = key;
        func(chess_board, horse_pos_x + 1, horse_pos_y - 2, razm, key);
    }
    if ((horse_pos_y - 2 < razm) && (horse_pos_y - 2 >= 0) && (horse_pos_x - 1 < razm))
    {
        chess_board[horse_pos_y - 2][horse_pos_x - 1] = key;
        func(chess_board, horse_pos_x - 1, horse_pos_y - 2, razm, key);
    }
    if ((horse_pos_y - 1 < razm) && (horse_pos_y - 1 >= 0) && (horse_pos_x - 2 < razm))
    {
        chess_board[horse_pos_y - 1][horse_pos_x - 2] = key;
        func(chess_board, horse_pos_x - 2, horse_pos_y - 1, razm, key);
    }
    if ((horse_pos_y + 1 < razm) && (horse_pos_x - 2 >= 0) && (horse_pos_x - 2 < razm))
    {
        chess_board[horse_pos_y + 1][horse_pos_x - 2] = key;
        func(chess_board, horse_pos_x - 2, horse_pos_y + 1, razm, key);
    }
    if ((horse_pos_y + 2 < razm) && (horse_pos_x - 1 >= 0) && (horse_pos_x - 1 < razm))
    {
        chess_board[horse_pos_y + 2][horse_pos_x - 1] = key;
        func(chess_board, horse_pos_x - 1, horse_pos_y + 2, razm, key);
    }
    return chess_board;
}
 
int main()
{
    int n, k = 0, horse_pos_x, horse_pos_y, fl;
 
    cout << "RAZM:" << endl;
    cin >> n;
    int** chess_board = new int*[n];
    for (int i = 0; i < n; i++)
        chess_board[i] = new int[n];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
            chess_board[i][j] = 0;
    }
    cout << "HORSE:" << endl;
    cin >> horse_pos_x >> horse_pos_y;
    cout << "KOL:" << endl;
    cin >> fl;
    chess_board[horse_pos_y][horse_pos_x] = -1;
    func(chess_board, horse_pos_x, horse_pos_y, n, k);
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            // if (chess_board[i][j] == fl)
            // cout << "x" << j << " " << "y" << i<<endl;
            cout << chess_board[i][j] << " ";
        }
    }
    system("pause");
    return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.03.2017, 19:06
Ответы с готовыми решениями:

Определить поля в которые может попасть конь за n ходов из указанной позиции
помогите, пожалуйста!!! на шахматной доске определить поля в которые может попасть конь за n ходов из указанной позиции. я сделала пока...

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

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

2
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
06.03.2017, 19:23
 Комментарий модератора 
marymap, пожалуйста, прочитайте правила форума.
Особое внимание обратите на пункт 4.3 (порядок именования тем).

.
0
2 / 2 / 1
Регистрация: 28.11.2016
Сообщений: 85
06.03.2017, 19:23  [ТС]
я душу дьяволу продам за то,чтобы эта прога заработала
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2017, 19:23
Помогаю со студенческими работами здесь

Вычислить позиции, на которые конь может попасть за 2 хода
Вся задача сводится к тому, чтобы вычислить позиции на которые конь может попасть за 2 хода(и расставить в порядке возрастания): ...

Список всех клеток, на которые может попасть конь с указанной клетки за один ход
Вам дана строка, содержащая координату клетки на шахматном поле (например, “A2”). Напишите функцию possible_turns(cell), которая будет по...

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

Вывести все возможные поля, на которые может попасть шахматный конь за один прыжок из данной клетки
Здравствуйте! Помогите решить задачку и написать программу на С++! Шахматный конь. Вася решил научиться играть в шахматы. Он нашел...

Определить на какие поля шахматной доски может пойти конь с заданными координатами
Доброго времени суток! Вот,сделал программу(ну как сделал,собрал по кускам,как франкинштейна). var y,x,i:integer; j,x1:char; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru