eliot-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Eliot-dev] Changes to eliot/game/tile.h [antoine-1]


From: eliot-dev
Subject: [Eliot-dev] Changes to eliot/game/tile.h [antoine-1]
Date: Sun, 23 Oct 2005 13:16:39 -0400

Index: eliot/game/tile.h
diff -u /dev/null eliot/game/tile.h:1.5.2.1
--- /dev/null   Sun Oct 23 17:16:39 2005
+++ eliot/game/tile.h   Sun Oct 23 17:16:24 2005
@@ -0,0 +1,83 @@
+/*****************************************************************************
+ * Copyright (C) 2005 Eliot
+ * Authors: Olivier Teuliere  <address@hidden>
+ *
+ * $Id: tile.h,v 1.5.2.1 2005/10/23 17:16:24 afrab Exp $
+ *
+ * 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 St, Fifth Floor, Boston, MA  02110-1301  USA
+ *****************************************************************************/
+
+#ifndef _TILE_H_
+#define _TILE_H_
+
+#include <list>
+
+/*************************
+ * A Tile is the internal representation
+ * used within the game library to
+ * handle letters
+ *************************/
+
+class Tile
+{
+ public:
+
+    // a lowercase character always a joker
+    // - this permits to detect joker in already played games
+    // - we need to pay attention when inserting character taken
+    //   from user input
+    
+    Tile(char c = 0);
+    virtual ~Tile() {}
+    
+    bool isEmpty()     const  { return m_dummy; }
+    bool isJoker()     const  { return m_joker; }
+    bool isVowel()     const;
+    bool isConsonant() const;
+
+    unsigned int maxNumber() const;
+    unsigned int getPoints() const;
+
+    char toChar() const;
+    int  toCode() const;
+    
+    static const Tile&       dummy()        { return m_TheDummy; }
+    static const Tile&       Joker()        { return m_TheJoker; }
+    static const std::list<Tile>& getAllTiles();
+    
+    bool operator  <(const Tile &iOther) const;
+    bool operator ==(const Tile &iOther) const;
+    bool operator !=(const Tile &iOther) const;
+    
+ private:
+    char m_char;
+    bool m_joker;
+    bool m_dummy;
+    
+    // Special tiles are declared static
+    static const Tile m_TheJoker;
+    static const Tile m_TheDummy;
+    
+    // List of available tiles
+    static std::list<Tile> m_tilesList;
+};
+
+#endif
+
+
+/// Local Variables:
+/// mode: hs-minor
+/// c-basic-offset: 4
+/// End:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]