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

Класс шахматной фигуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа для настройки сети http://www.cyberforum.ru/cpp-beginners/thread421284.html
Всем хай! Для упрощения настройки интернета решил написать программу, которая открывает три командных строки и в одной пингует роутер, в другой гугл, а третья просто cmd для выполнения инструкций. Программа, которую я написал работает некорректно, видимо из-за моего недостаточного знания библиотек. Вот код: #include <iostream> int main(){ using namespace std; system("start"); ...
C++ Введите 6 рвзных цыфр. Нужно найти найменьшее из них. С++ Введите 6 рвзных цыфр. Нужно найти найменьшее из них. (Решать по функций, которая находит найменьшее значение из двух цифр.) Ухх как пасиба http://www.cyberforum.ru/cpp-beginners/thread421280.html
C++ Введите массив и определите являеться ли сумма элементов чётнай цифрой
С++ Введите массив и определите являеться ли сумма элементов чётнай цифрой. Благадарю
C++ Написать рекурсную функцию, которая общитает сумму введеных чисел.
С++. Ввести любое натурпльное число, написать рекурсную функцию, которая общитает сумму введеных чисел. Пасиба большое
C++ Двухмерный массив. Найдите каждай строчки симму чётных элементов http://www.cyberforum.ru/cpp-beginners/thread421259.html
Здрасте, есть проблемка решить. С++: Введите двухмерный массив и найдите каждай строчки симму чётных элементов. Пасиба
C++ Где используется "чистый" C++? Без .NET, QT, CLI и т.д. С наступившим!) подробнее

Показать сообщение отдельно
vortexx1
6 / 6 / 2
Регистрация: 06.03.2011
Сообщений: 269

Класс шахматной фигуры - C++

01.01.2012, 19:22. Просмотров 1964. Ответов 2
Метки (Все метки)

Хочу написать решалку шахматных задач (перебор), и для начала решил написать класс каждой фигуры.
Оно того стоит, или я вообще не в ту степь пошел?

И если уж так, написал пока класс "Короля", взгляните, пожалуйста:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class King
{
public:
    King( int = 1, int = 1 );               // конструктор по умолчанию
    
    void setCoordinates( int, int );        // установка координат
    int getX();                             // получение значения Х
    int getY();                             // получения значения Y
    
    short move( int, int );                 // ход короля. возврашает 0 если все хорошо
                                            //                        1 если сильно большой ход
                                            //                        2 если ход за границы поля
private:
    int x, y;                               // координаты фигуры
};
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
#include <cmath>
#include "King.h"
 
#define OUT_OF_MOVE  1
#define OUT_OF_FIELD 2
 
// конструктор по умолчанию
King::King( int X, int Y ) : x( X ), y( Y )
{
            
}
 
// установка координат
void King::setCoordinates( int X, int Y )
{
    x = X;
    y = Y;
}
 
// получение Х
int King::getX()
{
    return x;
}
 
// получение Y
int King::getY()
{
    return y;
}
 
// ход короля
short King::move( int X, int Y )
{
    if( ( X <= 0 || X > 8 ) || ( Y <= 0 || Y > 8 ) )        // если ход за пределы доски
        return OUT_OF_FIELD;                                // выдать ошибку
    else if( abs( X - x ) != 1 || abs( Y - y ) != 1 )       // если ход вне шага короля
        return OUT_OF_MOVE;                                 // выдать ошибку
    else {                                                  // иначе
        x = X;                                              // сделать ход королем
        y = Y;
        
        return 0;                                           // вернуть 0
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru