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

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

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

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

24.12.2012, 16:41. Просмотров 448. Ответов 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 минуты
Добрые люди, помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2012, 16:41     Расставить и подсчитать ферзей на шахматной доске
Посмотрите здесь:

Расставить 8 Ферзей на шахмотной доске... в борланд С C++
C++ Числа на шахматной доске в С++
Числа на шахматной доске C++
C++ Числа на шахматной доске
C++ Сколько коней можно без угроз друг другу расставить на шахматной доске размером M на N
Расставить 8 ферзей на шахматной доске 8 на 8, которые не бьют друг друга C++
C++ Расставить n ладей на шахматной доске n*n
C++ Расставить на доске N ферзей так, чтобы они не били друг друга
Ход на шахматной доске C++
C++ Варианты размещения восьми ферзей на шахматной доске
Расстановка восьми ферзей на шахматной доске так, чтобы ни один не угрожал другому C++
Нужно написать программу для расстановки 5 ферзей на шахматной доске C++

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

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

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