📄 machipile.h
字号:
#ifndef MACHIPILE_H#define MACHIPILE_H//$Id: MachiPile.h,v 1.7 2006/06/05 21:38:20 markus Rel $// This program is free software; you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation; either version 2 of the License, or// (at your option) any later version.// This program is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License// along with this program; if not, write to the Free Software// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.#include <stdexcept>#include <CardPile.h>/**Class for piles in the Machiavelli cardgame */class MachiPile : public CardHPile { public: /**Exception indicating an error in the pile */ class PileError : public std::runtime_error { public: PileError (const std::string& what) : std::runtime_error (what) { } }; typedef enum { UNDEFINED, NUMBER, COLOUR } TYPE; MachiPile (); virtual ~MachiPile (); virtual void setTopCard (CardWidget& newCard); void setTopCard (CardWidget& newCard, bool visible) { CardHPile::setTopCard (newCard, visible); } virtual unsigned int insert (CardWidget& card, unsigned int pos); virtual CardWidget& remove (CardWidget& card); CardWidget& remove (CardWidget& card, bool visible); virtual CardWidget& remove (unsigned int pos); CardWidget& remove (unsigned int pos, bool visible); unsigned int getPosition4Card (const CardWidget& card) const; bool hasMatching3rd (ICardPile& pair, MachiPile::const_iterator& match, unsigned int& nr) const; TYPE getType () const { return type; } typedef enum { ACE, BOTH, ONE } ACEFLAG; static int cardDistance (const CardWidget& a, const CardWidget& b) { return cardDistance (a, b, BOTH); } static int cardDistance (const CardWidget& a, const CardWidget& b, ACEFLAG aceIsOne); void checkIntegrity () throw (PileError); private: MachiPile (const MachiPile& other); const MachiPile& operator= (const MachiPile& other); void analyzePile (); TYPE type;};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -