Is chess a good project for OOP?

These four topis should be topics should be covered at any cost in the project inheritance, abstract classes, polymorphism and diamond or virtual inheritance. Anything other than this is a bonus point.

I've decided to make chess in Qt using GUI.

Can the above topics be covered in a chess project? If not can someone please recommend me a unique project for OOP? I've got 2 months to finish the project.
It's a good project, but it's not clear where you're going to use diamond virtual inheritance. The canonical diamond in C++ is std::iostream, which is both an input stream and an output stream and those two are both streams. What would mirror that in Chess? class QueenLike which is both RookLike and BishopLike, which are both MoveablePiece? Sounds like a bit of a stretch..
topics should be covered at any cost in the project inheritance, abstract classes, polymorphism and diamond or virtual inheritance ... can someone please recommend me a unique project for OOP?

if you have interest and/or background in finance here's a suggestion that should tick your boxes:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>

class DebtHolder{};//abstract base class
//the virtual function in ABC can be related to default conditions;
class SeniorDebtHolder : public DebtHolder{};//define specific default functions for Senior and Junior Debt holders;
class JuniorDebtHolder : public DebtHolder{};
class EquityOwner {};

class Investor : public SeniorDebtHolder, JuniorDebtHolder, EquityOwner {};

int main()
{
/*randomize the stock price of a hypothetical firm, use real option theory (Merton model) to
 see the impact of shocks on Investor objects under differnt holding patterns of (a) equity (b)
 junior debt (c) senior debt. You can do a lot of Monte-Carlo simulations in this project!*/
}
closed account (48T7M4Gy)
And what about the king? What the pawn. Both are 'elastic' diamonds if you want.
Topic archived. No new replies allowed.