pairgenerator.h
来自「Source code (C++) of the Amoebax game fo」· C头文件 代码 · 共 106 行
H
106 行
//// Cross-platform free Puyo-Puyo clone.// Copyright (C) 2006, 2007 Emma's Software//// 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.//#if !defined (AMOEBAX_PAIR_GENERATOR_H)#define AMOEBAX_PAIR_GENERATOR_H#include <vector>#include "Amoeba.h"namespace Amoebax{ // Forward declarations. class Grid; /// /// \class PairGenerator. /// \brief Generates pairs of amoebas. /// class PairGenerator { public: void addGrid (Grid *griddToAdd); void generate (uint8_t pairsToGenerate = 1) const; private: /// /// \struct GeneratePair /// \brief Tells to the grid which pair to generate. /// struct GeneratePair: public std::unary_function<Grid *, void> { /// The colour of the first amoeba. Amoeba::Colour firstAmoebaColour; /// The colour of the second amoeba. Amoeba::Colour secondAmoebaColour; /// /// \brief Default constructor. /// /// \param firstAmoeba The colour to set the first amoeba to. /// \param secondAmoeba The colour to set the second amoeba to. /// GeneratePair (Amoeba::Colour firstAmoeba, Amoeba::Colour secondAmoeba): firstAmoebaColour (firstAmoeba), secondAmoebaColour (secondAmoeba) { } /// /// \brief Adds a new amoeba pair to a grid. /// /// The new pair will be created using the colours given at the /// constructor and will be passed to the \a grid. The grid /// then has the ownership and those amoebas and must /// destroy it when no longer needed. /// /// \param grid The grid to add the new pair to. /// void operator() (Grid *grid) { Amoeba *firstAmoeba = 0; Amoeba *secondAmoeba = 0;#if !defined (IS_GP2X_HOST) try#endif // !IS_GP2X_HOST { firstAmoeba = new Amoeba (firstAmoebaColour); secondAmoeba = new Amoeba (secondAmoebaColour); }#if !defined (IS_GP2X_HOST) // XXX: GP2X can't even start with this try catch block. catch (std::exception e) { delete firstAmoeba; delete secondAmoeba; throw e; }#endif // !IS_GP2X_HOST grid->addNewPair (firstAmoeba, secondAmoeba); } }; /// The list of grid to add the generated pairs to. std::vector<Grid *> m_Grids; };}#endif // !AMOEBAX_PAIR_GENERATOR_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?