00001 /* 00002 * EasySok --- A(nother) sokoban game for KDE. 00003 * 00004 * Copyright (C) 2001 by Ralf Schmelter (ralfs@pc2a.chemie.uni-dortmund.de). 00005 * 00006 * This program is free software; you can redistribute it and/or modify 00007 * it under the terms of the GNU General Public License version 2 as 00008 * published by the Free Software Foundation. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00018 */ 00019 00020 00021 #ifndef EASYSOK_OPTIMIZER_INC_GUARD_H 00022 #define EASYSOK_OPTIMIZER_INC_GUARD_H 00023 00024 00025 class Map; 00026 class Movements; 00027 00028 00029 00030 00039 class Optimizer 00040 { 00041 00042 public: 00043 00048 virtual ~Optimizer(); 00049 00050 00058 virtual void optimize(Map const & map, Movements const & moves) = 0; 00059 00060 00067 virtual Movements const & moves() const = 0; 00068 00069 00074 virtual int numberOfMoves() const = 0; 00075 00076 00081 virtual int numberOfPushes() const = 0; 00082 }; 00083 00084 00085 #endif