File indexing completed on 2024-04-21 04:02:09

0001 /***************************************************************************
0002 *   KBlocks, a falling blocks game by KDE                                *
0003 *   SPDX-FileCopyrightText: 2010 Zhongjie Cai <squall.leonhart.cai@gmail.com>       *
0004 *                                                                         *
0005 *   SPDX-License-Identifier: GPL-2.0-or-later
0006 ***************************************************************************/
0007 #ifndef SINGLE_GAME_INTERFACE
0008 #define SINGLE_GAME_INTERFACE
0009 
0010 #include "FieldInterface.h"
0011 #include "PieceInterface.h"
0012 
0013 
0014 class SingleGameInterface
0015 {
0016 public:
0017     SingleGameInterface()
0018         : mpField(nullptr), mPieceCount(0), mpPieceList(nullptr) {}
0019     virtual ~SingleGameInterface() {}
0020 
0021 public:
0022     virtual FieldInterface *getField() = 0;
0023 
0024     virtual int getPieceCount() = 0;
0025     virtual PieceInterface *getPiece(int) = 0;
0026 
0027     virtual bool isActive() = 0;
0028     virtual bool isGameRunning() = 0;
0029 
0030     virtual int forceUpdateGame() = 0;
0031     virtual int updateGame() = 0;
0032     virtual int continueGame() = 0;
0033 
0034     virtual bool setCurrentPiece(int, int, int) = 0;
0035 
0036     virtual bool pickGameResult(int *) = 0;
0037     virtual bool pickGameAction(int *, int *) = 0;
0038 
0039 protected:
0040     FieldInterface *mpField = nullptr;
0041 
0042     int mPieceCount;
0043     PieceInterface **mpPieceList = nullptr;
0044 };
0045 
0046 #endif //SINGLE_GAME_INTERFACE