Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 26.06.2015
Сообщений: 5
1

Определить класс «Шахматная фигура» и производные классы «Ферзь»

17.01.2016, 13:37. Показов 2613. Ответов 6
Метки нет (Все метки)

Дело в том, что начал изучать ООП не так давно и тут попалась задачка, которая заинтересовала. Условие таково: "Определить класс «Шахматная фигура» и унаследовать от него классы, соответствующие шахматным фигурам «Ферзь», «Пешка», «Конь». Задать позицию и определить список фигур, которые может убить некоторая выбранная фигура." За любую оказанную помощь буду благодарен!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2016, 13:37
Ответы с готовыми решениями:

Определить класс «Шахматная фигура» и производные классы
Лабораторная работа по ОП. Если кто может помогите с кодом. Условие таково: "Определить класс...

Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать производные классы
Создать иерархию классов Шахматная фигура – абстрактный класс, содержащий поле – цвет. Создать...

Определить класс «Шахматная фигура» и унаследовать от него классы, соответствующие шахматным фигурам
Здравствуйте. Помогите реализовать алгоритм решения задачи. Определить класс «Шахматная фигура»...

Базовый класс Фигура, производные классы Окружность, Прямоугольник, Ромб
Подскажите верно ли сделана эта программа #include "stdafx.h" #include "iostream" using...

6
Эксперт С++
3207 / 1734 / 435
Регистрация: 03.05.2010
Сообщений: 3,867
17.01.2016, 14:09 2
Вот писал когда-то рандомные шахматы. Тут все это есть, можете посмотреть.
2
bmstu-team
301 / 136 / 91
Регистрация: 10.01.2012
Сообщений: 420
Записей в блоге: 10
17.01.2016, 14:22 3
Задача тривиальная (это не шахматы, а просто тренировочный пример создания пары классов), можно поинтересоваться что именно смущает в ней?

Определяете главный абстрактный класс *Шахматная фигура*, содержащий общие для всех фигур поля и методы (например, позиция (int x, int y), тип фигуры (0 - Ферзь, 1 - Слон), массив типов фигур, которые он может убить, метод, который проверяет есть ли на его пути фигура с типом, которую он может убить и прочее).
В конструкторе, например, удобно сразу отдавать позицию.

Наследуете от него заданные фигуры и переопределяете, если есть необходимость нужным образом. (Например функция *хождения* (напр, void setPosition(x, y)), хоть она и не задана в задаче у всех своя).

В основной программе создаете массив фигурок, сразу передавая им их позиции. И играетесь, проверяя кто кого может кушать и прочее.
1
0 / 0 / 0
Регистрация: 26.06.2015
Сообщений: 5
17.01.2016, 14:42  [ТС] 4
antonboom, можете помочь с написанием?
0
bmstu-team
301 / 136 / 91
Регистрация: 10.01.2012
Сообщений: 420
Записей в блоге: 10
17.01.2016, 15:07 5
MasterD, при всем моем уважении, вы написали, что все-таки не так давно, но начали изучать ООП. Что именно конкретно вас смущает?) Мне казалось, я описал решение более менее доступно.

Быть может, вас интересует раздел фриланса?

Кликните здесь для просмотра всего текста
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
#include <iostream>
 
// Позиция
struct Pos {
    int x, y;
 
public:
    Pos() { };
    Pos(int xx, int yy): x(xx), y(yy) { }
};
 
// Шахматная фигура
class ChessFigure {
    Pos pos;
    int type;
 
public:
    virtual ~ChessFigure() { };
    ChessFigure() { };
    ChessFigure(Pos ppos, int ttype):
        pos(ppos), type(0) { };
    void printPos() {
        std::cout << "I'm in position " << pos.x << ", " << pos.y << std::endl;
    }
};
 
// Конь
class Horse: public ChessFigure {
public:
    Horse() { };
    Horse(Pos ppos): ChessFigure(ppos, 1) { } // Пусть тип "конь" будет равен 1   
};
 
// Основная программа
int main () {
    Horse h(Pos(1, 2));
 
    h.printPos();   // I'm in position 1, 2
 
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 26.06.2015
Сообщений: 5
17.01.2016, 15:21  [ТС] 6
Внимательно перечитал Ваш предыдущий ответ и все стало предельно понятно. Спасибо!
0
tezaurismosis
18.01.2016, 11:43     Определить класс «Шахматная фигура» и производные классы «Ферзь»
  #7
 Комментарий модератора 
Тема создана во фрилансе, эта теперь закрыта.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2016, 11:43

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы...

Создать базовый абстрактный класс Фигура и производные классы
Создать базовый абстрактный класс - фигура, и производные класс - круг, прямоугольник, трапеция....

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

Определить базовый класс и на его основе производные классы
Разработать консольную программу на языке С++, в которой необходимо определить базовый класс и на...


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

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

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