Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
demanxxx
0 / 0 / 0
Регистрация: 22.11.2008
Сообщений: 36
#1

рекурсивно расставить 8 ферзей C++ - C++

01.03.2009, 11:51. Просмотров 1666. Ответов 0
Метки нет (Все метки)

помогите пожалуйста,в рекурсии пока ноль.нужно расставить 8 ферзей на шахм доске 8*8 так,чтобы они не били друг-друга.идея такова-ставим первую ферзю в первый столбец и сразу присваиваем из этой точки по горизонтали,по вертикали и по диогоналям еденицы(массив изначально заполнен нолями).далее ставим следующюю ферзю...Я именно это и немогу записать в коде -в рекурсию еще не вьехалю
..........................................................................................................................
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
#include<stdio.h>
#include<windows.h>
#include<conio.h>
#include<iostream>
using namespace std;
const int a=8, b=8;
int A[a][b], n = 1;
void PrintBoard();
bool HorseMove(int y, int x);
///////////////////
void main()
{
    int y=6,x=3;
    if(HorseMove(y,x))PrintBoard();
    else cout<<"err";
}
///////////////////
bool HorseMove(int y, int x)
{
  if(y<0||y>7||x<0||x>7||A[y][x]||A[y][x]==1)return false;
 
  A[y][x]=n++;
 
  if(n>8)return true;
 
  if(HorseMove(???????????????????????))return true;
 
    A[y][x]=0;
    n--;
  return false;
}
///////////////////
void PrintBoard()
{
    for(int i=0;i<a;i++)
    {
        for(int j=0;j<b;j++)
        {
            cout<<A[i][j]<<"\t";
        }
        cout << "\n\n\n";
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.03.2009, 11:51     рекурсивно расставить 8 ферзей C++
Посмотрите здесь:

Расставить 8 Ферзей на шахмотной доске... в борланд С - C++
Расставить 8 ферзей на шахматной доске, чтобы они не били друг друга.... Программу надо выполнить Borland C компилятор DOSA. ...

Расставить на доске N ферзей так, чтобы они не били друг друга - C++
смысл в том чтобы расставить на шахматной доске размером N*N, N ферзей так, чтобы они не били друг друна. пыиался сделать что то методом...

Рекурсия: расставить 5 ферзей так, чтобы все поле 8*8 находилось под ударом - C++
на шахматной доске (8*8) требуется расставить 5 ферзей так, чтобы все поле находилось под ударом. Будьте добры, помогите, пожалуйста найти...

Расстановка 8 ферзей - C++
Привет всем, слушайте, вот исходник на С++ задача &lt;&lt;о восьми ферзях&gt;&gt;: #include&lt;iostream&gt; #include&lt;cmath&gt; #include&quot;pent&quot; void...

задача n-ферзей - C++
Помогите пожалуйста с лабкой.. надо составить программу на С++ которая будет решать задачу n-ферзей.На доске nxn нужно разместить n...

восемь ферзей на билдере - C++
Нужно переделать из консольного текста в С++ builder ( то есть с модулями, интерфейсом) Задача о восьми ферзях: ...

Рекурсивно обчислити добуток n ≥ 2 співмножників (n парне): у = (2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7).Рекурсивно обчислити добуток n ≥ 2 співмножників - C++
Рекурсивно обчислити добуток n ≥ 2 співмножників (n парне): у = (2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7)...

Варианты размещения восьми ферзей на шахматной доске - C++
Само задание: Найти все варианты размещения восьми ферзей на шахматной доске таким образом, чтобы никакие две фигуры не размещались на...

Вычислить y=x^N рекурсивно - C++
Вычислить y=x^N по следующему алгоритму: y=(x^(N/2))^2 , если N четное; y=x*x^(N-1) , если N нечетное. C ПОМОЩЬЮ РЕКУРСИИ. В чем ошибка? ...

По заданному X рекурсивно вычислить X^2 - C++
Написать программу, высчитывающую X^2. Х задается пользователем. Использовать рекурсию.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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