eliot/game/history.h

78 lines
2.5 KiB
C
Raw Normal View History

/* Eliot */
/* Copyright (C) 1999 Antoine Fraboulet */
/* */
/* This file is part of Eliot. */
/* */
/* Eliot 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. */
/* */
/* Eliot 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 St, Fifth Floor, Boston, MA 02110-1301 USA */
/**
* \file history.h
* \brief Game history system
* \author Antoine Fraboulet
* \date 2005
*/
#ifndef _HISTORY_H
#define _HISTORY_H
#include <vector>
2005-12-26 16:33:15 +01:00
class Turn;
class PlayedRack;
class Round;
class History
{
public:
History();
2005-12-26 16:33:15 +01:00
virtual ~History();
2005-11-04 21:00:05 +01:00
/// get the size of the history
2005-12-26 16:33:15 +01:00
int getSize() const;
2005-11-04 21:00:05 +01:00
/// Get the (possibly incomplete) rack
2005-12-26 16:33:15 +01:00
const PlayedRack& getCurrentRack() const;
/// Set the current rack
2005-12-26 16:33:15 +01:00
void setCurrentRack(const PlayedRack &iPld);
2005-11-04 21:00:05 +01:00
/// Get the previous turn
2005-12-26 16:33:15 +01:00
const Turn& getPreviousTurn() const;
/// Get turn 'n'
const Turn& getTurn(unsigned int) const;
2005-12-26 16:33:15 +01:00
/// Update the "history" with the given round and complete the turn.
/// A new turn is created with the remaining letters in the rack
void playRound(int player, int turn, const Round& round);
/// Remove last turn
void removeLastTurn();
2005-11-04 21:00:05 +01:00
2005-12-26 16:33:15 +01:00
/// String handling
std::string toString() const;
private:
2005-12-26 16:33:15 +01:00
std::vector < Turn* > m_history;
};
#endif
2005-12-26 16:33:15 +01:00
/// Local Variables:
/// mode: hs-minor
/// c-basic-offset: 4
/// End: