You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
15 years ago
|
#ifndef FE_BOARD_H
|
||
|
#define FE_BOARD_H
|
||
|
|
||
|
#include "common/board.h"
|
||
|
|
||
|
|
||
|
class FEBoard : public Board
|
||
|
{
|
||
|
Q_OBJECT
|
||
|
public:
|
||
|
FEBoard(bool graphic, QWidget *parent);
|
||
|
void copy(const GenericTetris &);
|
||
|
|
||
|
void start(const GTInitData &);
|
||
|
|
||
|
uint nbPuyos() const { return _nbPuyos; }
|
||
|
uint chained() const { return _chained; }
|
||
|
uint nbChainedPuyos(uint i) const { return _chainedPuyos[i]; }
|
||
|
uint lastChained() const { return _lastChained; }
|
||
|
|
||
|
private:
|
||
|
// standard methods
|
||
|
bool afterGlue(bool doAll, bool first);
|
||
|
AfterRemoveResult afterRemove(bool doAll, bool first);
|
||
|
bool afterGift(bool first) { return !doFall(false, first, true); }
|
||
|
void removeBlock(const KGrid2D::Coord &);
|
||
|
bool toBeRemoved(const KGrid2D::Coord &) const;
|
||
|
bool toFall(const KGrid2D::Coord &) const;
|
||
|
void remove();
|
||
|
bool needRemoving();
|
||
|
void computeInfos();
|
||
|
|
||
|
void init();
|
||
|
|
||
|
// Multiplayers methods
|
||
|
uint gift();
|
||
|
bool putGift(uint);
|
||
|
|
||
|
KGrid2D::Square<int> _field;
|
||
|
QMemArray<uint> _groups, _chainedPuyos;
|
||
|
uint _nbPuyos, _chained, _giftRest, _lastChained;
|
||
|
};
|
||
|
|
||
|
#endif
|