Объектно-ориентированное программирование на языке С++. Лясин Д.Н - 67 стр.

UptoLike

Составители: 

67
int Move(char x, int y) //функция, реализующая ход слона на поле [x y ]
{ if (abs((x - vert)
== abs(y - hor))
&& (x != vert)) {
vert= x; y=hor;
return 1;
}
return 0;
}
};
class Queen: public Bishop, public Castle
{
public:
Queen(char x, int y, int z): //конструктор
Castle (x, y, z), Bishop (x, y, z)
{}
int Move(char x, int y) {
return Castle::Move(x,y) || Bishop::Move (x,y);
}};
В программе определены 4 класса. Класс Figure является абстрактным
обобщением свойств всех шахматных фигур, поэтому он содержит такие
компонентные данные, как позиция фигуры на доске, определяемая по вертикали
буквой vert и по горизонтали цифрой hor, а также цвет фигуры color. Классы
Castle и Bishop описывают, соответственно, ладью и слона. Для этих классов
определена функция
int Move(char x, int y),
проверяющая, может ли данная фигура пойти на поле с указанными в параметрах
функции координатами, и если можетсделать этот ход. Самым интересным
классом является класс Queen, описывающий поведение ферзя. Каждый, кто
знаком с правилами шахмат, знает, что ферзь объединяет в себе свойства ладьи и
слона (в том смысле, что
может ходить как по диагонали, как слон, так и по
Figure
Bishop
Queen
Рисунок 10. - Схема иерархии классов программы «Шахматы»
Castle
Figure
       int Move(char x, int y)     //функция, реализующая ход слона на поле [x y ]
            { if (abs((x - vert)
          == abs(y - hor))
            && (x != vert)) {
              vert= x; y=hor;
              return 1;
              }
            return 0;
           }
  };
  class Queen: public Bishop, public Castle
  {
    public:
      Queen(char x, int y, int z): //конструктор
     Castle (x, y, z), Bishop (x, y, z)
    {}
                int Move(char x, int y) {
    return Castle::Move(x,y) || Bishop::Move (x,y);
  }};
  В программе определены 4 класса. Класс Figure является абстрактным
обобщением свойств всех шахматных фигур, поэтому он содержит такие
компонентные данные, как позиция фигуры на доске, определяемая по вертикали
буквой vert и по горизонтали цифрой hor, а также цвет фигуры color. Классы
Castle и Bishop описывают, соответственно, ладью и слона. Для этих классов
определена функция
         int Move(char x, int y),
проверяющая, может ли данная фигура пойти на поле с указанными в параметрах
функции координатами, и если может – сделать этот ход. Самым интересным
классом является класс Queen, описывающий поведение ферзя. Каждый, кто
знаком с правилами шахмат, знает, что ферзь объединяет в себе свойства ладьи и
слона (в том смысле, что может ходить как по диагонали, как слон, так и по


             Figure                         Figure

                 Bishop            Castle

                           Queen
                                             67
                  Рисунок 10. - Схема иерархии  классов программы «Шахматы»