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

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

Войти
Регистрация
Восстановить пароль
 
TommyG
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 48
#1

Расставить и подсчитать ферзей на шахматной доске - C++

24.12.2012, 16:41. Просмотров 467. Ответов 0
Метки нет (Все метки)

Ребята, привет, мне предстоит завтра защищать лабу и собственно вот задание:
№1
В данной задаче требуется расставить и подсчитать ферзей на шахматной доске размером n*n, так чтобы они не смогли «съесть» друг друга.

Код
#include<iostream>

#include<math.h>

#include<conio.h>

Using namespace std; 


Int const N = 8; 


char X[N]; long Count; 


void Display()

  {

char a=219,b=255;

for (int i=0; i<N; i++)

        {

For (int j=0; j<N; j++)

              {
If (j==X[i]) cout<<"QQ";

Else if ((i+j)%2)cout<<b<<b;

Else cout<<a<<a;

              }

cout<<"\n";

        }

cout<<"\n";

  } 


bool Check (int K, int Y)

  {

Int i=0;

while ((i< K) && (Y != X[i]) && (abs(K - i) != abs(Y - X[i]))) i++;

return (i == K);

  } 


Void MainProc(int k)

  {

for (int y = 0; y<N; y++)

if (Check(k, y))

              {

                    X[k] = y;

if (k == (N - 1))

                    {

Display();

                          Count++;

                    }

MainProc(k + 1);

              }

  } 


void main()

  {

    Count = 0;

MainProc(0);

cout<<"Vsego "<<Count<<" rastanovok\n"; 


getch();

  }
Вот и собственно я знаю только какая функция что делает, т.е.
Функция Check – проверка не бьётся ли эта клетка другим ферзём
Функция Display – Выводит на экран комбинации

Функция MainProc – инициализация массива X – шахматной доски

Я вообще ноль в программировании, мне нужно защитить лабу подскажите по коду пожалуйста по каждой строчке и переменной что здесь делается, и есть ли тут предикаты, какой алгоритм использован, что такое итерации? и что происходит на каждой итерации..

Спасибо всем кто откликнется!!!

Добавлено через 2 часа 34 минуты
Добрые люди, помогите!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 16:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расставить и подсчитать ферзей на шахматной доске (C++):

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

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

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

Нужно написать программу для расстановки 5 ферзей на шахматной доске - C++
Нужно написать программу для расстановки 5 ферзей на шахматной доске,чтобы эти 5 ферзей били всё поле и вывести число вариантов расстановки...

Расставить n ладей на шахматной доске n*n - C++
Вообщем нужно расставить n ладей на шахматной доске n*n Вот то что у меня получилось: #pragma argsused #include&lt;iostream.h&gt; int...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.12.2012, 16:41
Привет! Вот еще темы с ответами:

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

Сколько коней можно без угроз друг другу расставить на шахматной доске размером M на N - C++
Сколько коней можно без угроз друг другу расставить на шахматной доске размером M на N. ;)

Числа на шахматной доске - C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив...

Числа на шахматной доске - C++
В клетках шахматной доски находятся целые число. --- Определить в программе глобальные данные – константу N = 8 и двумерный числовой массив...


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

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

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