1. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Объясните Код

Тема в разделе "С и С++", создана пользователем ball, 29 дек 2013.

  1. ball

    ball New Member

    Репутация:
    0
    Регистрация:
    29 дек 2013
    Сообщения:
    1
    Симпатии:
    0
    Нужно расписать код, каждую строчку, что делает та или иная функция в данной программе и тд. Очень срочно, буду очень благодарен.

    Код:
    #include <iostream>
    using namespace std;
    
    int board[8][8];
    
    void setQueen(int i, int j)
    {
    for (int x = 0; x < 8; ++x)
    {
    ++board[x][j];
    ++board[i][x];
    int foo;
    foo = j - i + x;
    if (foo >= 0 && foo < 8)
    ++board[x][foo];
    foo = j + i - x;
    if (foo >= 0 && foo < 8)
    ++board[x][foo];
    }
    board[i][j] = -1;
    }
    
    void resetQueen(int i, int j)
    {
    for (int x = 0; x < 8; ++x)
    {
    --board[x][j];
    --board[i][x];
    int foo;
    foo = j - i + x;
    if (foo >= 0 && foo < 8)
    --board[x][foo];
    foo = j + i - x;
    if (foo >= 0 && foo < 8)
    --board[x][foo];
    }
    board[i][j] = 0;
    }
    
    bool tryQueen(int i)
    {
    bool result = false;
    for (int j = 0; j < 8; ++j)
    {
    if (board[i][j] == 0)
    {
    setQueen(i, j);
    if (i == 7)
    result = true;
    else
    {
    if (!(result = tryQueen(i + 1)))
    resetQueen(i, j);
    }
    }
    if (result)
    break;
    }
    return result;
    }
    
    int main()
    {
    for (int i = 0; i < 8; ++i)
    for (int j = 0; j < 8; ++j)
    board[i][j] = 0;
    tryQueen(0);
    for (int i = 0; i < 8; ++i)
    {
    for (int j = 0; j < 8; ++j)
    {
    if (board[i][j] == -1)
    cout << "[]";
    else
    cout << ". ";
    }
    cout << endl;
    }
    }
     
Загрузка...

Поделиться этой страницей