Witam.
Dla rozrywki chcę trochę podłubać w C++ i natrafiłem na małe problemy podczas kodzenia gry "szachy".
// ch.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <vector>
class TFigure abstract
{
public:
char X, Y;
bool Owner;
virtual void Move(char, char) = 0;
TFigure(const bool Owner, char X, char Y)
{
this->Owner = Owner;
this->X = X;
this->Y = Y;
}
};
class TPawn: public TFigure
{
public:
virtual void Move(char X, char Y);
TPawn(const bool Owner, char X, char Y): TFigure(Owner, X, Y) {}
};
void TPawn::Move(char X, char Y)
{
}
class TBoard
{
public:
char SizeX, SizeY;
std::vector<TFigure> Fig;
};
int _tmain(int argc, _TCHAR* argv[])
{
TBoard *b = new TBoard();
for(int i=0;i<8;++i)
{
b->Fig.push_back(new TPawn(true, i, i));
}
return 0;
}
Pytania:
- Dlaczego nie mogę do typu TFigure utworzyć obiektu TPawn ? W Delphi nie miałem tego problemu....(tudzież TStrings -> TStringList)
- Jak zoorganizować promocję figur ? Należy zniszczyć obiekt danego typu i utworzyć nowy ? Czy można jakoś to sprytniej zaprogramować ?
- Jak z poziomu klasy TFigure uzyskać dostęp do SizeX i SizeY(rozmiar planszy) klasy TBoard ? Przekazanie wskaźnika do TFigure ?
- Ogólne uwagi może jakieś...