Task3. Chess Figures - Full OOP C++ Homework
Здравейте,
За тази задача си имам освен клас за всяка фигура и един общ клас "Figure", който после всяка фигура го наследява:
class Figure {
public:
char symbol; // * Pawn // % Knight // & Bishop // # Rook // $ Queen // ! King
bool color; // true->white false->black
std::string position; //ex. G3
virtual std::string* getAvailableMoves(const Figure & otherFigures) = 0;
virtual bool moveFigure(const std::string newPosition, Figure & otherFigures) = 0;
};
Сигурно вече сте забелязали и къде ми е проблема. Имам затруднение с параметъра на функциите getAvailableMoves(otherFigures) и move(newPosition, otherFigures). Разбирам, че трябва да е array от пойнтъри като в демото от лекцията. Ама нещо нито мога да го сложа като параметър, нито после в main() да извикам функцията. Ето го main():
int main()
{
typedef Figure * FigurePtr;
FigurePtr figuresArr[32]{
new Pawn(true,"A2"),
new Pawn(true,"B2"),
new Pawn(true,"C2"),
new Pawn(true,"D2"),
new Pawn(true,"E2"),
new Pawn(true,"H2"),
new Pawn(false,"A7"),
new Pawn(false,"B7"),
new Pawn(false,"C7"),
new Pawn(false,"D7"),
new Pawn(false,"E7"),
new Pawn(false,"F7"),
new Pawn(false,"G7"),
new Pawn(false,"H7")
};
Pawn p1(false,"G7");
bool test = p1.moveFigure("G6",figuresArr);
std::cout << test;
return 0;
}
Може ли някой да ми помогне с този параметър? Какъв трябва да бъде и как се вика?
Здравей Мартин,
Благодаря ти за отговора.
Би ми било интересно да видя твоето решение, тъй като е разлчино от моето и ми е интересно да видя друг подход за имплементацията на тази задача.
Заповядай:
4-chess-figures.h
4-chess-figures.cpp
5-chess-game.h
5-chess-game.cpp
Пиши, ако имаш някакви въпроси по решенията ми, и ще се опитам да ги разясня.
Сега, като ги погледнах, виждам, че има какво да се желае по тях като OOP организация, но докато ги писах, това ми беше един от малките проблеми :)
Поздрави!
Окей, мерси.