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