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;
}
Може ли някой да ми помогне с този параметър? Какъв трябва да бъде и как се вика?
Много благодаря за изчерпателните отговори всеки път! Много ми помагат.
Ще си го оправя както казваш, защото ми е много интересно да използвам array от пойнтъри, които сочат към различни обекти(фигури), както с овцата и паяка.
А това с долара за кралицата е станало съвсем случайно :D :D.